Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg...
Transcript of Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg...
![Page 1: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/1.jpg)
Adaptive Shadow Maps
Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg
Apresentado por Claudio Esperança
![Page 2: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/2.jpg)
Sombras• Problema consiste em saber, para cada fonte de
luz, quais áreas da cena estão iluminadas• Se a fonte de luz é não pontual, algumas áreas
estarão na penumbra (soft shadows)
![Page 3: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/3.jpg)
Sombras• Se mais de uma fonte de luz são usadas, deve-se
somar as contribuições de cada uma
![Page 4: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/4.jpg)
Métodos para desenho de sombras• Determinar sombras é um problema
correlacionado com visibilidade• Métodos iluminação globais já atacam o problema
– Traçado de raios (Ray Tracing)
– Radiosidade
• Desvantagem principal– Soluções onerosas
– Não adequadas para uso em tempo real
![Page 5: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/5.jpg)
Sombras por achatamento• Apenas alguns objetos
projetam sombra sobre superfícies planas
• Basta desenhar os objetos devidamente “achatados” e transformados para serem coplanares com a superfície
• Uso muito limitado
![Page 6: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/6.jpg)
Mapas de luz• Usados em jogos• Iluminação é precomputada (radiosidade / ray-
tracing) e valores de luminosidade atribuídos a texturas adicionais
• Inadequado quando luz ou objeto se movem
![Page 7: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/7.jpg)
Volumes de sombra• Região sombreada é aproximada por um volume
poliedral em etapa de pré-processamento– Computa-se a silhueta do oclusor
– Cada aresta da silhueta gera um polígono
• Cena é desenhada com o auxílio de z-buffers estencil buffers
![Page 8: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/8.jpg)
Volumes de sombra - algoritmo• Geometria é desenhada sem a contribuição da
fonte de luz pontual• Stencil Buffer é zerado• Faces da frente do volume de sombra são
desenhadas incrementando o stencil buffer• Faces de trás do volume de sombra são
desenhadas decrementando o stencil buffer• Contribuição da fonte de luz sobre a geometria é
somada apenas nas áreas onde o stencil buffer é maior que zero
![Page 9: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/9.jpg)
Volumes de sombra - discussão• + Funciona bem quando volumes de sombra são
relativamente pouco complexos• + Trata apropriadamente a sombra projetada sobre
outros objetos• – Se a luz ou o oclusor se movimentam, o volume
de sombra tem que ser recomputado• – Computar volumes de sombra é custoso
![Page 10: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/10.jpg)
Volumes de sombra - exemplo
![Page 11: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/11.jpg)
Mapas de Sombra (Shadow Maps)• Método que trabalha no espaço da imagem• Cena é desenhada a partir do ponto de vista da luz
– z-buffer contém a distância à luz dos pontos iluminados
• Ao desenhar a cena do ponto de vista do observador, a distância de cada pixel à fonte de luz é computada e comparada com a distância correspondente armazenada no mapa de sombra– Se igual, o pixel está iluminado
– Se maior, o pixel está na sombra
![Page 12: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/12.jpg)
Mapas de Sombra• Caso em que o pixel está iluminado
Fonteluminosa
observador
plano do mapa de sombra
plano de projeção,(frame buffer)
A
B
A = distância computada
B = distância armazenada no mapa
A B
![Page 13: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/13.jpg)
Mapas de Sombra• Caso em que o pixel está na sombra
Fonteluminosa
observador
plano do mapa de sombra
plano de projeção,(frame buffer)
A
B
A = distância computada
B = distância armazenada no mapa
A >BB
![Page 14: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/14.jpg)
Mapas de Sombra por Hardware• Segal et al propuseram extensões de hardware
(SGI) baseadas em mapeamento de textura projetiva– Permitem computar
• A correspondência entre um pixel do frame buffer e um “pixel” do mapa de sombras (B)
• A distância de um fragmento de polígono (correspondente a um pixel do frame buffer) e o plano do mapa de sombras (A)
• Heidrich propôs um esquema que onde o canal alfa é usado e que permite uma adaptação em hardware mais barato (NVidia Geforce 3)
![Page 15: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/15.jpg)
Visualizando a técnica do mapa de sombras (1)
• Cena razoavelmente complexa com sombras
fonte de fonte de luz pontualluz pontual
![Page 16: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/16.jpg)
Visualizando a técnica do mapa de sombras (2)
• Compare a imagem com e sem sombras
com sombrascom sombras sem sombrassem sombras
![Page 17: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/17.jpg)
Visualizando a técnica do mapa de sombras(3)
• Cena conforme vista pela fonte de luz
Compare comCompare coma cena vista peloa cena vista peloobservadorobservador
![Page 18: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/18.jpg)
Visualizando a técnica do mapa de sombras(4)
• mapa de sombras (z-buffer) • mais claro = mais longe
Compare comCompare coma cena do ponto dea cena do ponto devista da luzvista da luz
![Page 19: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/19.jpg)
Visualizando a técnica do mapa de sombras(5)
• projetando o mapa de sombras sobre a cena(“B” no diagrama)
Compare comCompare commapa de sombrasmapa de sombrasno ponto de vistano ponto de vistada luzda luz
![Page 20: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/20.jpg)
Visualizando a técnica do mapa de sombras(6)
• Visualização da distância entre cada pixel e o plano do mapa de sombras (“A” no diagrama)
![Page 21: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/21.jpg)
Visualizando a técnica do mapa de sombras(6)
• Comparando distância da luz (A) com distância do mapa de sombras (B)
Verde é ondeVerde é ondeA e B sãoA e B são
aproximada-aproximada-mente iguaismente iguais
Não verde éNão verde éonde as onde as sombras sombras devem devem apareceraparecer
![Page 22: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/22.jpg)
Visualizando a técnica do mapa de sombras(7)
• Cena com sombras
Observe Observe como os como os
“highlights” “highlights” especulares especulares
nunca nunca aparecem em aparecem em
áreas na áreas na sombrasombra
Observe Observe como como superfícies superfícies curvas curvas sombreiam sombreiam outrasoutras
![Page 23: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/23.jpg)
Tolerância (bias)• Problema derivado da quantização das distâncias é
secundário e pode ser resolvido com tolerâncias
tolerância pequena:tolerância pequena:tudo parece estartudo parece estarsombreadosombreado
Tolerância grande:Tolerância grande:sombras ficam sombras ficam deslocadasdeslocadas
Tolerância Tolerância exataexata
![Page 24: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/24.jpg)
Problema de serrilhado (aliasing)• Principal problema dos mapas de sombra resulta
do descasamento eventual entre a resolução do mapa de sombras e a do frame buffer
![Page 25: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/25.jpg)
Mapas de sombras adaptativos• Visa resolver o problema de serrilhado• Técnica resulta da observação de que o mapa de
sombra só precisa ter alta resolução perto das fronteiras das sombras
• Um ASM (Adaptive Shadow Map) tem a forma de uma grade hierárquica onde determinadas células podem ser ou não subdivididas em grades mais finas
![Page 26: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/26.jpg)
Características dos ASMs• Adapta-se ao ponto de vista do observador
– Pode ser usado em visitas de cenas (walkthroughs)
• Pode ser calibrado para um uso limitado de memória– Evita uso excessivo de memória
• Progressivo– O resultado visual fica cada vez melhor à medida
que um dado ponto de vista se mantém
![Page 27: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/27.jpg)
Operação de refino do ASM• A escolha de uma porção (célula) da grade a ser
refinada é feita estimando-se uma razão custo/benefício• Seja
– Nrequired é o número de pixels na célula do ASM a serem obtidos com o refino
– Ncurrent é o número de pixels correntemente na célula
![Page 28: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/28.jpg)
Operação de refino do ASM
• O custo é dado por uma função linear de Nrequired
– a = custo por pixel
– b = custo fixo
• O benefício é estimado contando-se o número de pixels do frame buffer que recaem numa célula do ASM – São consideradas apenas as células que contêm
descontinuidades de distância
![Page 29: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/29.jpg)
Remoção de nós• Eventualmente, um nó decorrente do refino de
uma célula precisa ser desalocado para que outra célula possa ser
• Para tanto, escolhe-se entre os nós não utilizados no último quadro, aquele menos recentemente utilizado (LRU)
• Se este não existe, escolhe-se algum cujo benefício seja menor que aquele a ser criado
![Page 30: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/30.jpg)
Estimando área do pixel no mundo• Por software é muito custoso• Aproximação usando mip-mapping (hardware)• Mip-map sintético é construído:
– textura mip-map mais fina tem 1 em cada texel– 2a textura mip-map mais fina tem 2 em cada texel– etc.
• Coordenadas de textura de cada polígono são geradas de forma a ter um número constante de texels por unidade de área
• Usado apenas o canal alfa da textura – a cor de textura é branca• Toda a cena é desenhada com essa textura e o frame-buffer é
lido de volta– Cada pixel tem agora uma medida da área da cena coberta
(filtrada trilinearmente, inclusive)
![Page 31: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/31.jpg)
Teste de profundidade x Teste de id de polígono
• Uma otimização proposta por Hourcade para aliviar o problema de tolerância consiste em testar qual polígono está sombreado num pixel do ponto de vista da luz, ao invés de testar a distância
• Aparentemente, os autores codificam os IDs dos polígonos na cor usada para desenhá-los– Quando o frame-buffer é lido de volta durante a
fase de determinação da área coberta por um pixel, a cor do pixel lido indica o id do polígono
– Apenas um passo de leitura do frame-buffer é necessário para fazer as duas coisas
![Page 32: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/32.jpg)
Teste de profundidade x Teste de id de polígono
• O teste de id é feito primeiro. Se este falha (indicando pixel na sombra), o teste de profundidade é feito
• Método híbrido produz melhores resultados que usar exclusivamente um dos métodos– Teste de id tem problemas nas arestas entre
polígonos
– Teste de profundidade tem problemas relativos à escolha de tolerâncias
![Page 33: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/33.jpg)
Resultados
![Page 34: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/34.jpg)
Resultados
![Page 35: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/35.jpg)
Resultados
![Page 36: Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança.](https://reader036.fdocuments.us/reader036/viewer/2022070311/552fc10b497959413d8c17fd/html5/thumbnails/36.jpg)
Bibliografia• Lance Williams, “Casting Curved Shadows on Curved
Surfaces,” SIGGRAPH 78
• William Reeves, David Salesin, and Robert Cook (Pixar), “Rendering antialiased shadows with depth maps,” SIGGRAPH 87
• Mark Segal, et. al. (SGI), “Fast Shadows and Lighting Effects Using Texture Mapping,” SIGGRAPH 92
• Wolfgang Heidrich “High-quality Shading and Lighting for Hardware-accelerated Rendering” Tese de doutorado – Universidade Técnica de Erlagen – 1999
• Apresentação de Mark Kilgard (NVidia) no CEDEC 2001
• Outras no paper