A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Dissertação de Mestrado Departamento de Informática - PUC-Rio Abril de 2007 Geração de Sombras em Tempo Real para Modelos CAD Vitor Barata Ribeiro Blanco.

Apresentações semelhantes


Apresentação em tema: "Dissertação de Mestrado Departamento de Informática - PUC-Rio Abril de 2007 Geração de Sombras em Tempo Real para Modelos CAD Vitor Barata Ribeiro Blanco."— Transcrição da apresentação:

1 Dissertação de Mestrado Departamento de Informática - PUC-Rio Abril de 2007 Geração de Sombras em Tempo Real para Modelos CAD Vitor Barata Ribeiro Blanco Barroso – Orientador: Professor Waldemar Celes

2 Programa  Introdução  Chamuscamento Técnicas de bias Alinhamento de amostras  Filtragem Mapas de variância Filtro PCF  Reparametrização perspectiva Caso ótimo Caso geral  Particionamento Por faces Em profundidade  Resultado final e conclusão Não alteram a amostragem da cena Alteram a amostragem da cena

3 Importância das Sombras  Esclarecimento das relações espaciais entre os objetos  Realismo  Beleza estética  Jogos: Atmosfera e informações adicionais  Visualização científica: Facilidade de compreensão do modelo

4 Exemplo sem sombras

5 Exemplo com sombras

6

7

8 Geração de Sombras  Problema de iluminação global  Rasterização não captura relações espaciais  Requisitos básicos Sombras dinâmicas Superfícies arbitrárias Tempo Real  Algoritmos Volumes de sombras [Crow77] Mapeamento de sombras [Williams78]

9 Mapeamento de Sombras  Renderizar a cena vista pela fonte de luz Armazenar z-buffer em uma textura (mapa de sombras)  Renderizar a cena vista pela câmera Transformar pixels para o espaço da luz (s,t,p,q) z mapa = acesso em s/q e t/q z pixel = p/q Fragmento iluminado se z pixel <= z mapa

10 Mapeamento de Sombras  Vantagens Algoritmo simples Adequado a qualquer primitiva Não requer análise de geometria Bom suporte em hardware Z-buffer e texturas de profundidade Teste de sombra Filtro automático (NVidia)

11 Mapeamento de Sombras  Problemas Bordas com aparência serrilhada (aliasing) Sombreamento falso, superfícies “chamuscadas”  Volumes de visão conflitantes: Amostragem não-uniforme da transformação perspectiva Baixa amostragem do mapa longe da fonte de luz Necessária alta amostragem próximo à câmera Visão da câmera Visão da fonte Figura extraída de: C. Everitt, Shadow Mapping, NVidia Corporation

12 Sombras em modelos CAD  Desafios Objetos estreitos e silhuetas complexas Objetos só com um lado (não-fechados) Elevado grau de complexidade em z Elevado custo de geometria Cena totalmente visível para câmera e fonte de luz

13 Objetivos  Investigar técnicas recentes e sua adequação a modelos CAD  Propor aprimoramentos às técnicas Amostras virtuais em programas de fragmento Parâmetro generalizado para LiSPSM Particionamento em z adaptativo  Propor um conjunto de técnicas que permitam a visualização de modelos CAD com sombras de alta qualidade em tempo real

14 Programa  Introdução  Chamuscamento Técnicas de bias Alinhamento de amostras  Filtragem Mapas de variância Filtro PCF  Reparametrização perspectiva Caso ótimo Caso geral  Particionamento Por faces Em profundidade  Resultado final e conclusão Não alteram a amostragem da cena Alteram a amostragem da cena

15 Chamuscamento

16 Chamuscamento e Bias  Origens do chamuscamento Precisão numérica Representação discreta e desalinhamento de amostras Pior caso: dueling frusta

17 Chamuscamento e Bias  Acréscimo de deslocamento generalizado [Weiskopf03] z mapa = z 1 + z bias (z 1,z 2 ) Bias constante: z bias = offset [Williams78] Second-depth: z bias = z 2 -z 1 [Wang94] Midpoint: z bias = (z 2 –z 1 ) / 2 [Woo92] Dual: z bias = min(z mid,z max ) [Weiskopf03]  Second-depth restrito a sólidos fechados  Dual produz ótimos resultados, mas usa duas passadas de geração  Bias constante requer ajuste caso-a-caso, mas é suficiente na maioria dos casos

18 Alinhamento de Amostras  Problema de reconstrução 2D Amostras do mapa de sombras? Amostras da câmera?

19 Alinhamento de Amostras  Interpolação do mapa de sombras não funciona bem

20 Alinhamento de Amostras  Reconstrução das amostras da câmera [Wang94] Considerar “amostras virtuais” da câmera sobre o plano tangente à superfície Idéia original: obter a equação do plano com o ponto e a normal Problema: utiliza programa de vértice  Proposta: utilizar apenas um programa de fragmento Fragmento atual: f 0 = (s 0,t 0,p 0,q 0 ) Amostra virtual: f v = (s v,t v,p v,q v ) Conhecemos (s v /q v ) e (t v /q v ) Queremos encontrar (p v /q v ) Variações entre fragmentos vizinhos: ddx(s,t,p,q) e ddy(s,t,p,q)

21 Alinhamento de Amostras  Amostra virtual (n x,n y ) pixels distante do fragmento atual:  Variações (s,t) após a divisão de perspectiva: Com:

22 Alinhamento de Amostras  Resolvendo o sistema para (n x,n y ) e substituindo na equação inicial:

23 Alinhamento de Amostras  Resultado: Redução do chamuscamento Ausência de artefatos

24 Programa  Introdução  Chamuscamento Técnicas de bias Alinhamento de amostras  Filtragem Mapas de variância Filtro PCF  Reparametrização perspectiva Caso ótimo Caso geral  Particionamento Por faces Em profundidade  Resultado final e conclusão Não alteram a amostragem da cena Alteram a amostragem da cena

25 Filtragem do Serrilhamento

26 Mapas de Variância Propostos por Donnelly e Lauritzen (2006) Problemas sérios de vazamento de luz devido ao elevado grau de complexidade em profundidade

27 Filtragem PCF  Idéia: Utilizar diferentes amostras do mapa de sombras Realizar vários testes de sombra com resultado binário (0,1) Filtrar os resultados dos testes  Núcleo no espaço da imagem ou do mapa de sombras?  Efeito de faixas (“banding”)

28 PCF 5x5 no espaço da imagem

29 PCF 5x5 no espaço do mapa

30 PCF 5x5 aprimorado com jitter

31 Aprimoramentos ao PCF  Amostras com jitter  Núcleo circular  Amostragem adaptativa

32 PCF não-adaptativo em baixa resolução

33 PCF adaptativo em baixa resolução Artefatos surgem em mapas de baixa resolução devido ao grande núcleo utilizado para o filtro

34 PCF não-adaptativo em boa resolução

35 PCF adaptativo em boa resolução Artefatos menos perceptíveis

36 Combinando PCF e alinhamento  Alinhar todas as amostras com o centro de cada texel é um processo caro  O principal custo está associado à determinação do centro do texel, e não à amostra virtual em si  Proposta: Gerar várias amostras da câmera sobre o plano tangente Alinhar com as amostras exatas do núcleo do filtro, e não com o centro dos texels

37 PCF desativado

38 PCF ativado

39 PCF alinhado

40 Programa  Introdução  Chamuscamento Técnicas de bias Alinhamento de amostras  Filtragem Mapas de variância Filtro PCF  Reparametrização perspectiva Caso ótimo Caso geral  Particionamento Por faces Em profundidade  Resultado final e conclusão Não alteram a amostragem da cena Alteram a amostragem da cena

41 Reparametrização

42 Métrica de Serrilhamento  Consideramos o “erro de serrilhamento” como a razão entre as áreas de uma superfície vistas por um texel do mapa de sombras e por um pixel da imagem:

43 Métrica de Serrilhamento  Idealmente, queremos m=1 m > 1  serrilhamento m < 1  super-amostragem  Dois tipos de serrilhamento Serrilhamento de perspectiva: w l /w c Serrilhamento de projeção: cos(θ c )/cos(θ l ) Potencialmente ilimitado Difícil computar Menos notável Não tratado por técnicas de reparametrização  Objetivo: minimizar o erro máximo em todo o campo de visão da câmera: L ∞ = max( | w l /w c | )

44 Reparametrização Perspectiva  Idéia: deformar a cena de modo que objetos mais próximos da câmera apareçam com maior área no mapa de sombras  Para a cena original, tudo se passa como se os texels do mapa tivessem seu tamanho alterado  Baixíssimo custo, apenas calcular e multiplicar uma transformação à matriz de visualização da cena

45 Reparametrização Perspectiva Caso Ótimo  Luz incidindo perpendicularmente à direção de visualização PSM [Stamminger02] : LiSPSM [Wimmer04] : Tradicional:

46 Reparametrização Perspectiva Efeito da Transformação  Luz incidindo perpendicularmente à direção de visualização PSM [Stamminger02] : LiSPSM [Wimmer04] : Tradicional:

47 Reparametrização Perspectiva Erros de Serrilhamento  PSM Erro mínimo em x, mas linear em z  LiSPSM Erro pequeno em x Erro mínimo em z, o máximo ocorre nos planos near e far

48 Reparametrização Perspectiva Erros de Serrilhamento  Fator de Armazenamento (S): Medida combinada de erro Calculado como o produto dos erros máximos nas direções x e z: SM LiSPSM PSM

49 Reparametrização Generalizada  Luz e câmera não perpendiculares Redução do intervalo de influência da transformação perspectiva em z No caso limite, luz e câmera paralelas, todos os pontos do eixo z no centro do volume de visão da câmera são mapeados para o mesmo texel Parametrizações convergem para o mapeamento tradicional LiSPSM: Queremos tentar manter o erro mínimo do LiSPSM quando γ < π/2. γ = π/2 γ = 0 Visão da fonte de luz

50 Reparametrização Generalizada

51  Seguindo o procedimento de Wimmer et al. (LiSPSM, 2004), temos:  O valor n’ 2 acima torna-se negativo!  Precisamos convergir para o mapeamento tradicional:

52 Reparametrização Generalizada  Fazemos a seguinte correção:

53 LiSPSM normal

54 LiSPSM Generalizado

55 Programa  Introdução  Chamuscamento Técnicas de bias Alinhamento de amostras  Filtragem Mapas de variância Filtro PCF  Reparametrização perspectiva Caso ótimo Caso geral  Particionamento Por faces Em profundidade  Resultado final e conclusão Não alteram a amostragem da cena Alteram a amostragem da cena

56 Particionamento

57 Particionamento por Faces  Com luz e câmera paralelas, nenhuma reparametrização perspectiva é boa simultaneamente para A e C  Idéia formalizada por Lloyd (2006): Gerar um mapa de sombras independente para cada face do volume de visão da câmera visto pela fonte Aplicar uma transformação perspectiva diferente a cada face

58 Particionamento por Faces  Dispensa a generalização do parâmetro LiSPSM  Ótimo resultado para luz e câmera paralelas  Custo elevado, multiplica por 4 o número de mapas de sombras e de passadas! Amenizado por frustum culling adaptado a cada partição Mesmo assim, segundo Lloyd, vale mais à pena particionar em profundidade

59 Particionamento em Profundidade  Lloyd (2006) mostra que o Fator de Armazenamento é proporcional a (f/n) Podemos reduzir o erro máximo utilizando várias partições ao longo do eixo z O erro é mínimo com partições semelhantes, ou seja, que tenham a mesma razão (f/n)

60 Particionamento em Profundidade  Aumentando o número de partições (k), o erro converge para uma situação de erro mínimo k equivale a um mapeamento logarítmico, ótimo segundo Wimmer et. al. (2004) e Lloyd et. al. (2006) Um pequeno valor de k (2 a 4) é suficiente para proporcionar uma grande redução do erro. Usamos k=2

61 Costuras  Com luz e câmera paralelas: O erro máximo, em ambas direções, ocorre no plano near de cada partição Aparecem “costuras” nas interfaces entre as partições Nessa situação, a razão α=f/n deve ser mantida pequena (recomendamos 2 a 4 )  O problema é amenizado conforme a luz passa a incidir perpendicularmente Na situação limite, o problema ainda existe mas geralmente é imperceptível.

62 Particionamento Adaptativo  Proposta: Usar o ângulo γ como interpolador linear γ = π/2  usar (f/n) do particionamento normal γ = 0  usar (f/n) = α Deve-se proceder de forma iterativa a partir do plano far mais distante:

63 Sem ZP

64 ZP 2 normal

65 ZP 2 adaptativo

66 Programa  Introdução  Chamuscamento Técnicas de bias Alinhamento de amostras  Filtragem Mapas de variância Filtro PCF  Reparametrização perspectiva Caso ótimo Caso geral  Particionamento Por faces Em profundidade  Resultado final e conclusão Não alteram a amostragem da cena Alteram a amostragem da cena

67 Resultado Final  Técnicas recomendadas para a visualização de modelos CAD: Geração com bias constante ou dual-depth Reparametrização LiSPSM generalizado Particionamento adaptativo em profundidade ZP 2 a ZP 4 Filtro PCF 3x3 a 5x5 Baseado em texels Núcleo circular com jitter Amostras virtuais Amostragem adaptativa opcional

68 Resultado Final Incidência Perpendicular Mapeamento Tradicional

69 Resultado Final Incidência Perpendicular Reparametrização LiSPSM Generalizada

70 Resultado Final Incidência Perpendicular Reparametrização Particionamento ZP 2

71 Resultado Final Incidência Perpendicular Reparametrização Particionamento ZP 2 PCF 5x5

72 Resultado Final Incidência Paralela Mapeamento Tradicional

73 Resultado Final Incidência Paralela Reparametrização LiSPSM Generalizada

74 Resultado Final Incidência Paralela Reparametrização Particionamento ZP 2

75 Resultado Final Incidência Paralela Reparametrização Particionamento ZP 2 PCF 5x5

76 Resultado Final  Eficiência: Máquinas: Core 2 Duo 2.4GHz, GeForce 8800 GTS Pentium 4 3.0GHz, GeForce 6800 GT Resolução 800x600, mapas de 2048x2048 Passadas: 1 por luz para gerar o mapa 1 de iluminação ambiente 1 por luz para renderização com sombras Ponto-de-vista restrito, ~20% da geometria da cena

77 Resultado Final  GeForce 8800  GeForce 6800 Técnica Luzes Mapeamento TradicionalTécnicas Recomendadas 1 luz dinâmica339 a 12 2 luzes dinâmicas185 a 7 Técnica Luzes Mapeamento TradicionalTécnicas Recomendadas 1 luz dinâmica4529 a 59 2 luzes dinâmicas2518 a 30

78 Conclusão  Visualização de modelos CAD com mapeamento de sombras em tempo real: Geração com bias constante ou dual-depth Reparametrização LiSPSM generalizado Particionamento adaptativo em profundidade ZP 2 a ZP 4 Filtro PCF 3x3 a 5x5 Baseado em texels Núcleo circular com jitter Amostras virtuais Amostragem adaptativa opcional  Idéias propostas: Amostras virtuais em programas de fragmento Parâmetro generalizado para LiSPSM Particionamento em z adaptativo

79 Trabalhos Futuros  Verificação da parametrização logarítmica de Lloyd et al.  Com LogSM, verificar o particionamento por faces  Técnicas para tratamento do vazamento de luz em VSMs  Geração de sombras suaves com penumbra realista em tempo real


Carregar ppt "Dissertação de Mestrado Departamento de Informática - PUC-Rio Abril de 2007 Geração de Sombras em Tempo Real para Modelos CAD Vitor Barata Ribeiro Blanco."

Apresentações semelhantes


Anúncios Google