Shadow map

Origem: Wikipédia, a enciclopédia livre.

Shadow map ou Mapeamento de sombra é uma técnica para criar sombras adicionada em imagens 3D produzidas por computação gráfica. Esse conceito foi introduzido por Lance Williams em 1978, em um paper com o título "Casting curved shadows on curved surfaces". Desde então vem sendo usada em cenas pré-renderizadas ou tempo-real em diversos consoles ou jogos de PC. As Sombras são criadas testando quando um pixel está visível a partir fonte de luz comparando isso com o z-buffer ou com a visão de profundidade da imagem segundo a fonte de luz, guardada na form de textura.


Princípio da sombra e do mapeamento de sombra(shadow map)[editar | editar código-fonte]

Se for olhado de fora da fonte de luz, todos os objetos que você veria apareceriam iluminados. Qualquer coisa atrás desses objetos, portanto, estariam na sombra. Esse é o princípio básico usado para criar o mapeamento da sombra(shadow map). A visão que temos da parte iluminada é renderizada, guardando a profundidade de cada superfície que é vista(o shadow map). Depois, as cenas regulares são renderizadas comparando a profundidade de cada pixel desenhado(como se fosse visto pela luz e não apenas pelo vista) para esse mapeamento de profundidade.


Conceito[editar | editar código-fonte]

Com a técnica shadow map cria-se uma imagem vista da posição da luz que se deseja projetar a sombra. Ao contrário de uma imagem qualquer, cujos pixels armazenam cores, a imagem gerada armazena as distancias dos respectivos pixels em relação à luz.

Depois de criada essa imagem o processo de aplicar a sombra consiste em renderizar a cena vista da posição da câmera, e para cada pixel criado, o mesmo é transformado para a visão da luz. Então é feita uma comparação da distancia desse pixel com a luz e o valor armazenado no shadow map. Se a distância pixel-luz for maior que o valor armazenado no shadow map então o pixel está sombreado, pois existe um outro pixel com uma distância menor em relação a luz na frente dele projetando uma sombra; caso contrário, o pixel estará iluminado.

Ícone de esboço Este artigo sobre computação gráfica é um esboço. Você pode ajudar a Wikipédia expandindo-o.