Shadow Mapping.

Slides:



Advertisements
Apresentações semelhantes
Bacharelado de Informática PUC-Rio Prof. Rodrigo Toledo
Advertisements

Traçado de raios em tempo real Paulo Ivson
Z-Buffer Método que opera no espaço da imagem
DCA-0114 Computação Gráfica
Análise de Imagem (Martine Joly)
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
Modelos de ILuminação Alex F. V. Machado.
COMPUTAÇÃO GRÁFICA.
Mapeamento de Texturas e Visualização de Terreno
Introdução à Computação Gráfica Recorte
Introdução à Computação Gráfica Colorização
Adaptive Shadow Maps Randima Fernando Sebastian Fernandez Kavita Bala
Non-Photorealistic Rendering
Iluminação e Sombreamento
Ismael Andrade Pimentel
04/07/07 RTDistribuído César Palomo 1 Fundamentos de CG Prof Marcelo Gattass 2007-s01 Trabalho 3 – Ray Tracing Distribuído César Palomo.
Mapeamento de texturas com redução de aliasing Lorenzo Ridolfi
Parallax Mapping Rodrigo Martins FCG 2005/1.
INF 1366 – Computação Gráfica Interativa Grafos de Cena
INF 2063 Tópicos em CG II Visualização de Modelos Massivos Peter Dam.
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Rendering e Rasterização
Ray Tracing.
PSI-2652: Processamento, Síntese e Análise de Imagens II Rodrigo Debczynski Fernandes – n°USP Prof. Marcio Lobo.
Visible-Surface Ray Tracing
An Improved Illumination Model for Shaded Display
Computação Gráfica Pipeline Gráfico.
Prof. Leandro da Silva Taddeo
“LOCALIZAÇÃO DE ROBÔS E MAPEAMENTO DO AMBIENTE USANDO KINECT®”
Visibilidade em Computação Gráfica
Fundamentos da Computação Gráfica Thiago Marques Toledo
Visão Computacional Shape from Shading
Cartografia II G 6; G 7 e G 8 Jeferson C. de Souza.
INTRODUÇÃO À ÓPTICA Prof. Fred Moura.
Reinventando o estilo 2D Proposta: enxergar os gráficos 2D como um estilo e não como limitação técnica. Objetivo: buscar formas de inovar e reinventar.
Computação Gráfica – Visibilidade
Dissertação de Mestrado
Ambient Occlusion Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass Allan Carlos Avelino Rocha Departamento de Informática.
Modelagem Numérica de Terreno
Renderização em Tempo Real
Image Based Cartoon Style Rendering Jeronimo Silvério Venetillo Fabio Issao Nakamura.
1 Imperfeições Naturais: Acúmulo de Poeira Baseado na Superfície de Exposição dos Objetos Andamento do Projeto Computação Gráfica /1 José Torres.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Helder Geovane Gomes de Lima
Ray Tracing Estocástico e Distribuido Aruquia Barbosa.
Problemas NP-completos e Programação Dinâmica
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
IA725 – Computação Gráfica I Mapeamento de textura 27/05/2008
Texturas em Jogos IA 725 – Computação Gráfica
Introdução à Computação Gráfica Texturas
Teste.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Apresentação 2 Aumento do realismo : texturas e sombras, evolução dos modelos de reflexões locais.
DESENHO DE OBSERVAÇÃO.
Ray Tracing Autor: Osvaldo Ramos Tsan Hu Orientador: Prof. Marcio Lobo.
Luz.
Simulação de Iluminação Volumétrica
Desenho Técnicas de desenho.
1/6/2016 Computação Gráfica
Introdução à Computação Gráfica Ray Tracing Claudio Esperança Paulo Roma Cavalcanti.
Prof. Márcia. GLOBO Representação correta Sem distorções Respeita a forma da Terra Dificuldade de visualização e transporte.
Teste.
Teste.
Teste.
Teste Teste contabil.
Teste\. testes.
Quanto ao tema (assunto, documento ou arte)
APRESENTAÇÃO. Teste 1 Teste 2 Teste 3.
Apresentação teste 2019.
Transcrição da apresentação:

Shadow Mapping

Sombras em superfícies curvas Shadow map Aliasing Suporte em hardware Mais eficiente Shadow volume “Hard-shadow” Ideal para sombras em regiões grandes

Shadow map Algoritmo “Renderiza” cena do ponto de vista da fonte de luz Usa Z-buffer como textura: shadow map Texel: distância da fonte ao objeto mais próximo Renderiza cena aplicando shadow map Textura projetiva do ponto de vista da fonte de luz Teste de sombra If r <= texel then “iluminado” else “sombra” end texel texel = r r

Shadow map Suporte em hardware Com Cg, se textura é um shadow map Função tex2Dproj Valor de retorno {c,c,c,1}, com c valendo zero ou um Pode-se aplicar filtro: 0 <= c <= 1 Diminui aliasing Pode-se programar filtros melhores Percentage-closer filter Técnicas de dithering 1 c = 0.75 1 1

Shadow map Shadow map não depende do observador Sempre válido para objetos e fontes estáticos Idéias Reaproveitamento do shadow map Explorar coerência quadro a quadro Dois shadow maps Um para objetos estáticos Um para objetos dinâmicos (atualizada frequentemente)

Shadow map Problemas Self-shadows Imprecisão numérica Soluções r  texel Soluções Melhorar ajuste do “volume de visão” da fonte de luz Usar offset na geração do mapa Usar mapa de ID em vez de mapa de profundidade Gerar mapa com back-faces

Aliasing Percentage Closer Filter Grid regular “Banding effects” for (int i=0; i<NSAMPLES; i++) { sm.xy = offsets[i] * fsize + smPos; shadow += tex2DProj(shadowMap,sm) / NSAMPLES; }

Eliminando “banding effects” Jittered grid Domínio circular Preservando áreas x = x1/2 cos(2u) y = y1/2 cos(2u)

Eliminando “banding effects” Múltiplos offsets Pixels vizinhos com offsets diferentes Textura 3D de RGBA Dois offsets (2 pares x,y) por texel t = frag.y r = offset s = frag.x

Melhorando desempenho Uso de “branching” no shader Menos amostras para determinar penumbra Fragmentos próximos com mesmo branching -- Testa se em penumbra for (int i=0; i<4; i++) { vec4 offset = tex3D(jitter,jcoord); jcoord.z += 1.0 / SAMPLES_COUNT_DIV2; sm.xy = offset.xy * fsize + smPos; shadow += tex2DProj(shadowMap,sm) / 8; sm.xy = offset.zw * fsize + smPos; } ... if ((shadow-1)*shadow != 0) { -- Em penumbra

Melhorando desempenho Se mapa gerado com “back face” Não incorpora erros na imagem, mas... “Self-shadow” degrada desempenho Correção: if ((shadow-1) * shadow * NdotL != 0) { -- Em penumbra }

Perspective shadow map

Perspective shadow map Problemas de aliasing Projeção de visualização pode expandir sombra Enquanto no mapa aparece pequeno ds ds : limitado pela resolução do mapa rs/ri : se pequeno e constante, diminui aliasing de perspectiva βi/βs : difícil eliminação, pois a luz pode tangenciar a superfície (aliasing de perspectiva) βs di βi ri

Perspective shadow map Mapa de sombras com Resolução alta para objetos próximos Resolução baixa para objetos distantes Objetivo Diminuir aliasing de perspectiva Idéia Gerar mapa no espaço após perspectiva

Perspective shadow map Exemplo: árvores vistas da esquerda Espaço do olho Árvores de mesmo tamanho Espaço após perspectiva Árvores próximas maiores

Perspective shadow map Geração do mapa Transforma cena para espaço de clip “Renderiza” mapa com fonte de luz transformada No exemplo anterior: rs/ri = cte

Perspective shadow map Transformação da fonte de luz Luz direcional: {x,y,z,0} Luz pontual: {x,y,z,1} Transformação perspectiva PP x z (f+n)/(f-n) f 1 -1

Perspective shadow map Transformação perspectiva Ponto no infinito Ponto finito com z = (f+n)/(f-n) Ponto finito Pode se transformar em ponto no infinito Se no plano z=0 Transformação da fonte de luz Luz direcional Permanece direcional se pw=0 Acontece se: {x,y,0,0}  {px,py,0,0} Luz local Pode se transformar em luz direcional Luz no plano do observador Melhor ganho do PSM

Perspective shadow map Self-shadow é acentuado PSM depende da posição do observador Frustum da fonte pode cruzar plano z=0 Cruza infinito após transformação Frustum de interesse M = convex hull (V + l) M contém todos os raios de luz que interceptam objetos da cena H = M  BV  L Se H cruza plano z=0 Afasta observador para gerar PSM Tende a se aproximar do PS