galerinha eu tô aqui para falar um pouco sobre a quarta entrega de vocês que vai ser realizada uma semana depois da volta às aulas né em janeiro em fevereiro perdão então vocês T as férias todas aí para implementar Até porque eu entrego um pouquinho mais parruda vale um ponto na média né junto com a essa vale um ponto a quinta vale um ponto também essa parte de iluminação é o grosso do do R tracer eu diria então eu vou tentar ser o mais breve possível aqui temo que vai ser difícil porque tem bastante teoria por
trás da da implementação Mas vamos lá primeiro a gente uma que a gente tem que fazer aqui para FS de processamento gráfico de visualização renderização não é tão importante pra gente a gente ser se designo a o que tá acontecendo na vida real certo que importa que seja visualmente Realista e não que seja de fato matematicamente realista Então o que a gente vai tá fazendo aqui é fazendo simplificações eh do o que realmente acontece na vida real que são tipo assim suficientes para criar um renderizador realista né então a gente vai estar dividindo aqui iluminação
para fins didáticos e fins de simplificação que não falei eh em dois fatores certo a gente pode dizer que a iluminação da vida real se divide em propriedades da luz e propriedades do objeto propriedade da Luz seria a cor da Luz eh se é uma luz de led se é uma luz de vidro uma lâmpada de LED uma lâmpada de vidro se onde é que tá essa luz no ambiente na cena e as propriedades do objeto são material então como é que ele reage à luz é um material metálico vai reagir diferente de um quadro
negro por óbvio né então a gente vai est levando essas duas coes em conta na hora de fazer o nosso modelo de fong que foi criado em 75 exatamente para isso para poder simular uma uma iluminação realista de forma simplificada então ele vai levar em consideração Exatamente isso as propriedades das luzes que estão na cena e as propriedades do objeto perfeito Então a gente vai est dividindo modelo em quatro pedaços Ok a iluminação ambiente certo que simula A iluminação Global O que é iluminação Global o nosso algoritmo de fong o nosso modelo de fong né
o nosso retracer ele faz várias simplificações que nem eu falei então ele não vai levar em conta raios terciários e quar ternis por exemplo o que acontece na vida real um bate numa parede que bate no chão que bate no numa outra parede num espelho que bate em outro canto então tipo assim esse raio vai batendo e refletindo e esse raio tem uma continuidade que o nosso modelo de fong não consegue levar em conta certo nosso R tracer não leva em conta por uma questão de processamento mesmo é muito Custoso fazer isso outros algoritmos mais
elaborados como P tracer photon mapping fazem isso conseguem levar em conta o que a gente chama de eliminação Global o nosso modelo de fong é um modelo de eliminação local então ele vai levar em conta com a parte da recursão esses raios secundários que a gente chama né então tipo bate num canto ele vai ver onde esse raio refletiu e vai somar essa cor a gente vai tratar disso na próxima entrega mas esses raios terciários quartenários essa interação entre objetos a luz que bate no objeto vai pro outro tudo muito complexa ele não consegue computar
Então a gente tem um pedacinho da equação de fong que se dedica exatamente a simular isso certo de uma forma muito simples né Muito muito muito muito simples que é ele vai supor que tem uma tipo assim todo ponto da cena tá sendo iluminado por uma luz igual certo isso dá a ideia de tipo iluminação ambiente que a gente chama né Isso dá ideia da iluminação Global Passa esse senso de que ele tá levando em conta esses enfim ele não tá mas dá a impressão que tá isso que importa agora vamos partes mais important aqui
primeiro a difusão a difusão é o efeito que você vê em tinta fosca em quadros negros em gis certo que é a luz bate no objeto e é refletida igualmente em todas as direções certo que nem vocês estão vendo nesse desenho aqui eu vou deixa eu achar a canetinha pronto achei e que nem vocês estão vendo nesse exemplo aqui o raio tá vindo da fonte de luz amarelinha aqui tá batendo e tá sendo distribuído igualmente esses círculo esse essa doma aqui tá tentando representar que a área tipo assim o os limites dos raios né Tipo
ele tá sendo refletido igualmente Esse é meu ponto o que é importante aqui matematicamente falando pro nosso modelo a lei dos cossenos de LT que chama tipo é relevante o nome para vocês mas a ideia toda que o ângulo de incidência desse raio de luz aqui afeta é a área de iluminação certo a área de reflexão dos R porque tipo na iluminação difusa todos os raios são são refletidos iguais para todos os lados né tipo não tem concentração em uma direção só mas a intensidade com que é refletido depende do ângulo de incidência que nem
Vocês conseguem ver nesses dois exemplos aqui tá até rabiscado porque tipo sei lá 10ma vez que eu tô gravando isso aqui perdão falei a premissa Vocês conseguem ver aqui que nesse primeiro exemplo ele vindo no mesmo ângulo da norm cer a normal tá aqui e o raio de luz tá vindo no mesmo ângulo da normal Ok então o ângulo de insciência é no caso a intensidade da reflexão difusa é proporcional ao cosseno entre a fonte de luz e a normal da superfí isso exatamente para levar em conta o ângulo de incidência né então quanto menor
menor intensidade Então nesse caso aqui o ângulo é bem pequenininho a intensidade é bem pequenininha Ness nesse caso o ângulo é bem grande 90º né junto com a normal então o ângulo de no caso então a a intensidade da da reflexão é muito alta certo então no modelo a gente vai est levando Esse aspecto de o ângulo de incidência afeta a intensidade da reflexão difusa em conta a segunda parte é a especularidade a especularidade é quando uma luz é refletida numa direção prioritária digamos assim quando tu olha uma superfície metálica tu vai ver aqueles pontinhos
de luz concentrados né isso acontece exatamente porque a superfície metálica ela faz com que ela tem essa propriedade especular muito alta e ela faz com que os raios de luz se concentrem em uma direção só Então você tem essa impressão e isso depende do ângulo de visão do de que do cara que tá vendo né do Observador isso é muito intuitivo até porque se tu pega uma esfera metálica e tu vê aquele pontinho de luz ressaltado e tu gira um pouquinho a esfera metálica tu vai ver que não tá mais lá ou seja Ela depende
do ângulo do Observador certo do ângulo divisão do Observador Então o que tá acontecendo aqui é o que tá desenhadinho aqui certo você tem esse vetor L aqui esse vetor L é exatamente o vetor que sai do ponto e vai até a luz Ok é o mesmo vetor de incidência aqui que a gente tava tratando nesse exemplo de cima esse seria o vetor L né nesses dois casos Então a gente tem a normal o vetor refletido eu me esqueci o nome da da Lei física da regra física da da equação enfim e mas o ângulo
de incidência nesse caso da luz é é o mesmo do refletido na Normal tipo aqui é teta e aqui é teta não sei se me fiz entender mas espero que sim tipo esses dois ângulos aqui são iguais então é fácil matematicamente falando chegar no no no Raio de Luz refletido certo no final o que é a especularidade como é que a gente calcula a especularidade ela é diretamente proporcional certo ao ângulo entre o raio refletido e o ângulo de visão do Observador certo da incidência do Observador raio de visão do Observador é a mesma coisa
do de cima só que com o refletido e com o raio que vai observador em vez de ser entre a normal e o ângulo de incidência da Luz certo então a gente vai levar ess em conta computacionalmente também tranquilo como é que a gente pode calcular esse R refletido matematicamente falando certo isso aqui é uma construção de álgebra aet analítica enfim mas é muito simples eh para quem não liga para para De onde veio a fórmula é essa certo o raio refletido é duas vezes a normal vezes o produto escalar entre a normal e o
raio que aponta até a luz menos o raio que aponta até a luz certo a construção disso daqui é geométrica perfeito agora vamos lá tem a parte da recursão também eu disse que eram quatro partes né Tem a parte da recursão também mas isso daí é paraa próxima entrega é basicamente a mesma coisa que a gente viu até agora adicionando refração né parte da reflexão basicamente que a gente viu até agora sendo expa entre então só constando aqui vamos lá eu V tentar esclarecer isso que parece um monstro certo fómula de não é nada mais
nada menos do que a gente discutiu até agora literalmente ela é muito literal Então vamos lá esse pedacinho final aqui que vocês estão vendo que é o KR x ir mais KT x it é a parte da recursão certo a gente vai est desconsiderando ela agora tranquilo eu vou até apagar aqui a gente fala dela na próxima entrega Tranquilo então vamos lá Primeiro de tudo a parte ambiente que eu tinha falado k x ia o que é esse k x ia o ia é a intensidade da Luz certo e o ka é referente ao material
do objeto vocês se lembram que no início eu falei que a gente tá dividindo nosso modelo leva em conta as propriedades da luz e do objeto quais são as propriedades do objeto né O que é o material do objeto tá aqui embaixo a gente tem o KD que fala como ele reage a luz difusa Você se lembra que eu falei que a intensidade da da reflexão difusa depende do ângulo de incidência da luz e da normal do cara não só isso depende do material também tipo assim e um objeto pode ter uma reflexão difusa mais
intensa ou menos intensa assim como um especular mais intensa ou menos intensa Isso é óbvio né tipo intuitivamente falando então a gente vai ter que levar esse en conta no nosso modelo aqui então no material a gente tem o KD que vai de zer a 1 certo e ele representa o qu difuso um objeto é 1 é 1% difuso é 100% difuso né e zero é que ele não tem reflexão difusa alguma KS mesma coisa só que pra especularidade né vai de zer a 1 o ka é o no ador da Luz Ambiente o que
que é o k a ideia toda da iluminação ambiente é simular iluminação Global Mas a gente pode querer dizer que um objeto é menos afetado pela iluminação Global do que o outro pessoalmente eu acho isso questionável mas não ven caso a minha opinião tipo assim eh o modelo tenta levar em conta a possibilidade de um objeto reagir a Luz Ambiente de forma diferente do outro e a para isso que tá o k aí é para tu dizer o quanto ele reage a Luz Ambiente 0 a 1 um é ele reage 100% a Luz Ambiente é
zero ele não reage nada a Luz Ambiente qualquer coisa em bit Você que sabe né é o KR o KT a gente não vai estar tratando aqui mas ele se referem a reflexão e a transmissão né a refração que também vai de zer a um e a gente tem o o coeficiente rugosidade certo eu vou vou falar um pouquinho mais dele quando eu for quando eu chegar lá na fórmula de fong mas ele afeta diretamente as especularidade certo ele vai ele não tem limite ele não vai de zero a um ele pode ir até 100
milhões se você quiser ou pode ser zero Você que sabe certo eu vou chegar lá então vamos lá é voltando né o k x o ia se refere à parte ambiente a componente ambiente da nossa fórmula de fong é a intensidade da luz que vai ser o quê vai ser o RGB dela 255 255 255 uma luz completamente branca com a intensidade máxima certo eh 25500 uma luz completamente vermelha Ok E você Vai Multiplicar PR deixa eu fazer uma distinção aqui primeiro que eu acho que eu não comentei mas é muito importante esse I aqui
eu pulei etapa certo perdão esse I aqui eu vou voltar para cá esse I aqui é a cor de cada Pixel certo até agora vocês tinham tipo a malhinha de vocês de pixels certo vocês passavam um raio por cada Pixel via se intersectar o objeto intersectou vou pintar da cor do objeto certo agora você não vai só pintar da cor do objeto você vai jogar o material do objeto e as luzes ter uma luz aqui e as informações das luzes para calcular a cor de cada Pixel Então isso é um processo que você faz para
cada Pixel o i é literalmente a cor RGB de cada píxel Então esse I vai ser algum valor RGB certo voltando vamos lá o k ve o ia k é referente a cada objeto tipo de novo isso daqui é para cada Pixel então o k o KD o KS vai mudar se naquele Pixel ele intersectou um objeto diferente né então k se refere que nem eu falei a como o objeto tipo reage a Luz Ambiente e o ia é literalmente a intensidade da Luz Ambiente pode ser 1 255 255 255 certo isso daqui já engloba
toda a parte da componente ambiente dele Certo Então já foi a primeira das quatro essa segunda parte aqui deixa eu primeiro falar do somatório na realidade o que é esse somatório que tá aqui a gente vai rodar essa segunda parte da equação de fong aqui essa parte grandona que tá entre cochete para cada ponto de luz certo então esse somatório é para cada ponto de luz então se a gente tem três luzes a luz a luz do e a luz TR aparecendo mais um B do que um l Mas enfim a luz 1 a luz
2 a luz 3 tu vai fazer isso tudo com as informações da Luz 1 certo e com as informações de objeto você interou você vai chegar no resultado tipo 2 e a vaier recalcular tudo isso com a luz dois certo e o mesmo material que você tinha usado antes porque é o mesmo objeto né aí vai dar sei lá 2 1 e 3 PR luz TR mesma coisa supor que d z zer por algum motivo No final a tua cor final é literalmente o somatório disso que vai ser 3 3 e 4 mais a componente
ambiente que a gente calculou aqui certo então isso daqui é um somatório exatamente por isso é para cada luz Tranquilo então a primeira componente desse somatório é a componente de fusa certo no O que é que se trata componente difusa primeiro a gente tem intensidade da Luz I certo esse somatório vai de I até o número de luzes que tiver M então primeira intensidade da Luz I certo vamos supor que a intensidade da Luz 1 seja uma luz branca né 255 255 255 então aqui você vai jogar o Array 255 255 255 O que é
o od o od é a cor do objeto certo literalmente então no material do objeto você também vai receber não só esses componentes todos aqui como você vai receber a componente RGB do objeto então aqui você vai literalmente jogar o RGB do objeto Você Vai Multiplicar isso pela intensidade da luz que você tá computando agora o KD do objeto que eu falei o quão difuso ele é né e o produto escalar entre a normal e esse li o que é esse Li o vetor que vai do ponto de interseção até a luz que você tá
computando naquele momento por que esse produto escalar Por que nem quando a gente viu aqui em cima certo a intensidade da reflexão difusa proporcionar o cosseno entre a fonte luz e a normal da superfície perfeito Caso vocês não se lembrem em álgebra Line a gente vê que o cosseno pode ser reescrito como um produto escalar E é exatamente isso que a gente tá fazendo então então no final aqui a gente tá multiplicando a intensidade da Luz pelo RGB do objeto pelo KD que é como ele lida com a difusão pelo cosseno entre exatamente o ângulo
de incidência da luz que é o tipo o vetor que vai do ponto até a luz esse vetor Li e a normal então isso daqui certo é a componente difusa isso daqui cobre toda a parte de difusão aqui essa segunda parte é a parte especular tranquilo parte especular mesmo esquema basicamente né você vai ter a intensidade da luz que vai ser a mesma se você tiver no mesmo objeto enfim não muda dessa daqui desse e ali para esse li certo is a mesma o KS que é o quão especular ele é e daí vem esse
pedacinho aqui mesmo esquema que eu tinha falado na especularidade a especularidade depende do ângulo entre o raio refletido certo o raio que vai o no caso o vetor que vai do ponto de interseção até a luz refletido com o vetor que vai do Observador até o ponto Tranquilo então vai ser a mesma coisa o vetor refletido o ri né porque esse vetor refletido depende da luz por isso esse Zinho aí o vetor V que é o vetor que vai até O Observador isso daqui vai ser o cosseno Alfa né Entre esses dois vetores e aqui
tá o detalhezinho isso daqui é rugosidade que eu tinha falado aqui embaixo o que é a rugosidade ela representa literalmente a rugosidade da superfície e isso afeta como você vê a especularidade certo que nem eu falei isso daí é um valor que você coloca arbitrário né de zero até infinito digamos assim se você for ver nos slides da pipeline nos slides sível eu queria eu deveria até ter botado aqui na monitoria Mas enfim se você vai ver nos slides da pipeline você vai ver que tipo assim ela afeta a concentração da especularidade né então tipo
quanto maior for o que é um enzinho maior né quanto maior for a rugosidade mais concentrada então tipo uma rugosidade menor tu vai ter tipo a especularidade numa área maior uma rugosidade maior esse círculo ficou muito errado uma rugosidade maior você vai ter as especularidade mais intensa num área menor certo vai parecer mais suave digamos assim tranquilo é fong é basicamente isso no final na implementação de vocês o que vocês tem que fazer é literalmente intersectar um objeto em vez de só pintar ele que nem vocês estavam fazendo vocês vão jogar essas informações todas sobre
ele nessa fórmula literalmente só fazer essa fórmula jogar lá o resultado dessa fórmula é que você vai pintar tá o Pixel certo comentários importantes atentar pros tipos certo tipo assim isso daqui é um Array isso daqui também isso daqui é um índ certo então cuidado só para ser coerente na hora de implementar e outra coisa a o resultado RGB isso vale para outras entregas do projeto espero que vocês já tenham tratado isso antes mas eu vou comentar aqui de novo para sim enfim vamos lá né e a qual RGB tem que ser blocada o RGB
não pode ser maior do que 255 nenhuma da comp nenhuma das componentes do RGB pode ser maiores do que 255 se você jogar nessa fórmula aqui é um somatório certo vamos supor que tu acabe com 500 300 200 isso aqui não pode tá tipo assim dependendo de como você esteja implementando o teu software vai fazer o seguinte ele vai dizer 2 começa contar do de novo então seria quant é 25 ve 2 seria 5 né vamos supor que tu coloque 510 ele vai tratar como se fosse um como zero não trata como se fosse um
255 se colocar 511 ele vai tratar como se fosse um em vez de uma cor muito intensa certo mesis rabando aqui não sei se fico confuso eu acho que simonto é tem que blocar as cores RGB que que eu quero dizer por isso bota um limite de 255 chegou no 255 não aumenta mais tranquilo o máximo é 255 se você tiver um 500 qualquer coisa acima de 255 é igual a 255 certo porque senão ou vai estourar vai ter over exposure ou então vai voltar para uma cua mais baixa vai dar errado certo bem é
isso com relação à quarta entrega tipo assim a intenção disso era ser muito curto ser assim só falar da especificação né no final eu vou cortar o vídeo vou pra especificação Mas enfim eh mas tipo assim não tem o que fazer é a parte mais teórica mesmo do do projeto é essa daqui de iluminação Eu eu espero que a próxima monitoria seja mais curta perdão por ter tomado 20 minutos do tempo de vocês foi necessário e deixa eu cortar aqui e mostrar a especificação para vocês tá vamos lá vocês já estão com Acesso aqui ao
ao notion da disciplina né mas deixa eu tentar explicitar o que tá escrito aqui é exatamente eu apresentei para vocês no nas anotações tá nessa etapa cada grupo precisa implementar o modelo de iluminação de fong sem recão então todos os objetos tem que ter os seguintes atributos para determinar o material exatamente que eu tinha citado lá tá coeficiente fuso especular ambiental reflexão transmissão e rugosidade Tranquilo reflexão e transmissão próxima entrega não precisa PR P isso agora eh aqui ele tá falando como se o KD o KS o ka o KR o KT fossem todos um
Array tridimensional né que fosse de zero a um nas três dimensões como se eh o objeto lidasse com a difusão diferente para cada componente RGB então pro vermelho ele tem um KD pro Azul ele tem outro KD não precisa implementar assim tá tipo se vocês quiserem show de bola não precisa vocês podem tratar como se o KD fosse único caso fosse o único enfim tranquilo definir as fontes de luz O que é isso falar qual a intensidade de cada luz e onde ela tá na apresentação que eu tava fazendo até agora no nas anotações eu
falei que muita coisa tipo a iluminação especular a iluminação difusa dependem de qual é esse vetor que tá indo até a luz certo depende do ângulo desse vetor que tá indo até a luz com a normal no caso da difusa ou então da reflexão desse vetor que tá indo até a luz com o vetor que tá indo até O Observador certo então você precisa ter informação de onde está a luz para você poder saber que vetor é esse que no final vai ser subtração do ponto Onde tá a luz e do ponto onde ocorreu a
interseção com o objeto certo e você precisa da intensidade também para poder jogar lá na equação de f a cor ambiente que você tem que dar que tinha falado que a cor vai iluminar tudo da cena né também é referente à luzes e aqui entar aqui tem umas fotinhas tá e iluminação difusa né tipo Vocês conseguem ver aqui que não tem concentração da reflexão em nenhuma direção né aqui é especular você vê que fica concentrado nessa bolinha aqui vocês não conseguem ver meu meu cursor né mas tipo fica concentrando uma bolinha e aqui com sombras
né aqui tá fórmula de fong que nem eu anotei lá e alguns dos parâmetros de equação de fong não foram exemplificados em nenhum objeto foi exatamente o que eu discuti lá tá o vetor que aponta da interseção até a luz o vetor normal o ponto é para você encontrar esse vetão normal depende do objeto não falei isso antes mas é importante pra esfera é só o ponto de onde ocorreu interseção menos o centro da esfera para plano você já tem PR malha de triângulos e vocês provavelmente Tipo na terceira entrega que é de malha a
gente já inclui essa parte da normal né Então você já tem o vetor de reflexão com relação à luz que eu já mandei a já mostrei para vocês a [Música] formulazione tiddo e pelo raio refratado que tipo a gente vai tratar na próxima entrega ou seja tudo que a gente discutiu lá nas anotações tá é bem simples é só implementar o que eu te escrevi lá eh que vai dar tudo certo tranquilo é perdão foram 25 minutos essa monitoria Tomou muito tempo é tipo a quarta vez que eu tô gravando isso não consegui deixar mais
curto e qualquer coisa a gente vai fazer monitoria presencial também pode mandar dúvida para mim ou para qualquer um dos outros monitores e é isso boa entrega para vocês