Parallax Mapping Rodrigo Martins FCG 2005/1
Motivação Renderização de superficies irregulares com maior qualidade. Simples adição de vértices aumenta a complexidade de modelos e dados enviados para placa gráfica. Diminuição de desempenho
Técnicas base Emboss bump mapping (Dot3) Bump mapping Displacement mapping Virtual Displacement mapping Parallax Mapping
Bump Mapping Superfície lisa Superfície Irregular Superfície lisa renderizada com normais perturbadas
Bump mapping As normais perturbadas são armazenadas em texturas 2d (normal maps) Mapa de normais pode ser calculado em tempo real Técnicas mais avançadas utilizam height maps para oclusão, ou informações sobre a superficie
Normal map Domínio de normais [-1..1] Mapeia para [0..1] ou [0..255] na imagem Pixel = 0.5 + 0.5 * N N = 2*(P - 0.5)
Bump Mapping Utilização de per pixel lighting Componente difusa: (N dot L) Componente especular: (N dot H)n
Espaço tangente O espaço tangente é de grande importância ao se utilizar técnicas que utilizam calculos de iluminação baseado em texturas. Espaço tangente é o espaço vetorial onde são definidas as coordenadas de textura base (u,v) de um objeto. Transformar eye vector e light vector para espaço tangente
Espaço Tangente Binormal Tangente Normal
Espaço Tangente Rotação para espaço Tangente
Bump Mapping Não resolve todas os problemas. Texturas são projetadas como se representassem objetos planos. Planaridade da geometria é facilmente perceptivel sob determinados angulos de visão.
Displacement mapping Técnicas que para atingirem um maior grau de realismo, deformam superfícies. Técnicas caras, e que em algum conflitam com as tendências do hardware gráfico atual.
Parallax mapping Corrige as coordenadas de textura de forma a simular superfícies irregulares. T T1 Superficie simulada Polígono redenderizado eyeVec
Parallax mapping T1 = T + h’ (eyeVec{x,y} / eyeVec{z} ) Superficie simulada H’ h T1 Polígono redenderizado T T1 = T + h’ (eyeVec{x,y} / eyeVec{z} ) h´ simula propriedades físicas da superfície h´ = h x escala + bias
Limite de offset Offset depende do ângulo de visão. Impede artefatos indesejados em angulos rasos de visão. Offset máximo definido como o valor de h
Limite de Offset T1 = T + h’ (eyeVec{x,y} ) T T1 H H’ Superficie simulada H’ h T1 Polígono redenderizado T T1 = T + h’ (eyeVec{x,y} )
Screenshot
Conclusões Melhora significativa na representação de superfícies irregulares. Não adiciona termo de oclusão Melhorias permitem oclusão e geração de sombras.
Referências Blinn, “Simulation of Wrinkled Surfaces”, SIGGRAPH 78. Kaneko, “Detailed Shape Representation with Parallax mapping”, ICAT 2001. Oliveira, “Relief Texture Mapping”, SIGGRAPH 2000. Welsh, “Parallax Mapping with Offset Limiting”, Infiscape.