250 likes | 394 Views
Departamento de Informática. Ambient Occlusion. Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass. Allan Carlos Avelino Rocha. Departamento de Informática. Introdução. Motivação:. Iluminação Global Tradicional. Não provoca adequado efeito Realístico.
E N D
Departamento de Informática Ambient Occlusion Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass Allan Carlos Avelino Rocha
Departamento de Informática Introdução Motivação: • Iluminação Global Tradicional • Não provoca adequado efeito Realístico • Irradiação constante e adirecional
Departamento de Informática Introdução Motivação: • Ambient Environment • Efeito mais realístico • Ambient Occlusion Método de shading usado para ajudar a adicionar realismo a modelos de reflexão local, tendo em conta a atenuação da luz devido a oclusão.
Departamento de Informática Introdução Ambient Occlusion • Primeiro apresentado por Zhukov, Iones e Kronin em “An ambient light illumination model” , em 1998. • Landis and Christensen, em “RenderMan in Production”, em 2002.
Departamento de Informática Introdução Cinema:
Departamento de Informática Introdução
Departamento de Informática Introdução Visualização Científica
Departamento de Informática Ambient Occlusion Definição:Ambient occlusion refere-se a atenuação da luz ambiente devido a oclusão de uma geometria próxima: onde, Visibilidade de um ponto p ao longo do hemisfério .
Departamento de Informática Ambient Occlusion • Gems 1 – “Ambient Occlusion” desenvolvido por Matt Pharr e Simon Green, 2004. Informação necessária • Acessibilidade do ponto • Média da direção unoccluded (bent normal) ,
Departamento de Informática Ambient Occlusion Abordagem inside-out X outside-in Inside-out
Departamento de Informática Ambient Occlusion Outside-in • Menor custo computacional • Obtém bons resultados quando comparado ao ray tracing • Pode ser mapeada para implementação em Gpu ,
Departamento de Informática Ambient Occlusion Shadow Mapping glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glCullFace(GL_BACK); gluLookAt(eyex,eyey,eyez, atx,aty,atz, upx,upy,upz); bunny->Draw(); glReadPixels(0,0,width,height,GL_DEPTH_COMPONENT,GL_FLOAT,shadowMap);
Departamento de Informática Ambient Occlusion Shadow Map - bunny ,
Departamento de Informática Ambient Occlusion Algoritmo
Departamento de Informática Ambient Occlusion Textura Projetiva • Projeção de imagens sobre superfícies Exemplo: projetor de slides
Departamento de Informática Ambient Occlusion Projeção de um ponto Montando a matriz de projeção • Recuperar as matrizes ModelView e Projection glGetFloatv(GL_MODELVIEW_MATRIX, lightViewMatrix); glGetFloatv(GL_PROJECTION_MATRIX, lightProjectionMatrix); • Alinhamento do plano de projeção do espaço de Clipping para o espaço de Textura Espaco de clipping varia de [-1,1] Espaco de textura varia de [0, 1]
Departamento de Informática Ambient Occlusion Projeção de um ponto Montando a matriz de projeção • Correção Então tem-se que a matriz de projeção é dada por
Departamento de Informática Ambient Occlusion Projeção de um ponto temos: Aplicando a matriz a um ponto onde é ponto projetado no espaço de textura. Feito isso para obter o ponto em coordenadas cartesianas basta fazer: P(s/q,t/q,r/q,1). • s/q e t/q posição x,y de um texel • r/q distância do ponto ao plano de projeção
Departamento de Informática Ambient Occlusion Implementação VECTOR4D point(x,y,z,w); VECTOR4D result = textureMatrix*point; double s = result.GetX()/result.GetW(); double t = result.GetY()/result.GetW(); double p = result.GetZ()/result.GetW(); int newx = width*s; int newy = height*t; float depth = bunny->shadowMap[index(newx,newy,width)]; if ( p <= depth+1e-3){ . . .
Departamento de Informática Ambient Occlusion Resultados na implementação
Departamento de Informática Ambient Occlusion Outros resultados
Departamento de Informática Ambient Occlusion Matt Phar Ambient occlusion Simples difuse shading model Simples difuse shading model
Departamento de Informática Ambient Occlusion
Departamento de Informática Ambient Occlusion
Departamento de Informática Ambient Occlusion