O que é Iluminação? • Fenômeno físico resultante da interação de fótons com uma superfície Motivação Modelos de iluminação Conceitos de Raios de Luz luz visão reflexo Forward Raytracing Problema do Forward Raytracing Backward Raytracing Traçamento de Raios Traçamento de Raios Interseção do Raio com um objeto Interseção Raio com esfera Raio: R(t) = R0 + t * Rd , t > 0 Com R0 = [X0, Y0, Z0] e Rd = [Xd, Yd, Zd] X = X0 + Xd * t Y = Y0 + Yd * t Z = Z0 + Zd * t Esfera: Sc = [xc, yc, zc] S: (xs - xc)2 + (ys - yc)2 + (zs - zc)2 = Raio2 Interseção Raio com esfera Substituindo a equação do raio na equação da esfera: (X0 + Xd*t - Xc)2 + (Y0 + Yd*t - Yc)2 + (Z0 + Zd*t - Zc)2 = Raio2 Desenvolvendo a equação e juntando as constantes: Teremos uma equação da forma: At2 + Bt + C Onde A = Xd2 + Yd2 + Zd2 B = 2*(Xd * (X0 - Xc) + Yd * (Y0 - Yc) + Zd * (Z0 - Zc)) C = (X0 - Xc)2 + (Y0 - Yc)2 + (Z0 - Zc)2 – Raio2 Para que de fato a equação resulte numa interseção: At2 + Bt + C = 0 Interseção Raio com esfera -Se as raizes t0 e t1 forem números complexos: não há raízes reais e portanto não há interseção -Se t0 = t1 : houve tangencia da reta e a esfera -Se t0 e t1 forem distintas e reais: houve interseção. Deve-se calcular qual o ponto mais próximo do observador. Exercício: Interseção Raio com plano Equação do Plano: Ax + By + Cz = d Determine a equação para interseção com o raio: R(t) = R0 + t * Rd , t > 0 Com R0 = [X0, Y0, Z0] e Rd = [Xd, Yd, Zd] X = X0 + Xd * t Y = Y0 + Yd * t Z = Z0 + Zd * t Iluminação -Se houver iluminação? Componentes da Iluminação – Ambiente 16 Componentes da Iluminação – Ambiente Componentes da Iluminação – Radiosidade Componentes da Iluminação – Radiosidade 19 Componentes da Iluminação – Ambiente Cora= materia . Ia Normal de uma Superfície N Modelo Phong - Difuso q N L q cos q Iluminação Iluminação cos q = L . N Componentes da Iluminação – Difuso Cord = Material . cos q cos q = N . L Cord = K . (N . L) Componentes da Iluminação – Especular Luz (L) Observador ( O ) Normal (N) b Reflexo (R) Componentes da Iluminação – Especular n=2 n=5 Core = Material . (cos b)n cos b = O . R Core = K . (N . L)n n = 30 Modelo Phong q N L q Iluminação cos q Iluminação cos q = L . N Itotal = Iambiente + Idifusa + Iespecular Iluminação Reflexo e Refração Recursividade do Ray Tracing Recursividade do Ray Tracing L N P Transmissão Reflexo Recursividade do Ray Tracing Itotal = IPhong( P ) + Raytracing (Reflexo) + Raytracing (Transmissão) Implementação do Ray Tracing Ray_Tracing (VETOR) Para cada Pixel da Imagem OBJETO_MAIS_PRÓXIMO = NENHUM DISTANCIA_MINIMA = INFINITO Crie um raio do observador ao pixel Para cada Objeto da Cena Se o raio tem interseção com este objeto Se DISTANCIA_MINIMA < distancia (camera até este objeto) OBJETO_MAIS_PRÓXIMO = este objeto Se OBJETO_MAIS_PRÓXIMO == NENHUM Pixel = COR_DE_FUNDO Senão REFLEXO = Calcula_Reflexo (OBJETO_MAIS_PRÓXIMO, LUZ) TRANSMISSÃO = Calcula_Transmissão (OBJETO_MAIS_PRÓXIMO, N) Pixel = Phong(OBJETO) + Ray_Tracing (REFLEXO) + Ray_Tracing (TRANSMISSÃO) Iluminação por polígonos N 1 cálculo de iluminação por polígono Iluminação por vértice N3 N2 N4 4 cálculos de iluminação por polígono N1 Iluminação por vértice Iluminação por pixel n cálculos de iluminação por polígono Projeção Projeção Ortográfica Assumindo que os vértices estão em coordenadas de eye space A matriz não possui inversa, pois a determinante é nula. Assim, esta é uma transformação sem “volta” Projeção pz p Z= -d q x qx z qx px -d = pz qx = -d px pz px Exercício: Encontre a matriz de Projeção Perspectiva Projeção Perspectiva