Qual é o estado da arte em termos de renderização de sombra? Meu objetivo é o OpenGL 3.2, usando um pipeline de renderização diferido, se isso importa.
Faz anos desde que examinei a renderização de sombra e, na época, havia inúmeras técnicas disponíveis, desde estênceis até os vários métodos de mapeamento de sombra. Naquele momento, as sombras de renderização exigiam passes de renderização separados, controlados pela CPU. Mas, recentemente, vi uma demonstração em que uma cena foi renderizada inteiramente na GPU, incluindo sombras. Não tenho idéia de como isso seria realizado, ou se é algo razoável de se fazer (além de uma demonstração de tecnologia).
Dada a grande quantidade de informações antigas na Internet, eu gostaria de aprender quais métodos as pessoas estão usando hoje em dia e quanto delas podem ser enviadas para a GPU (supondo que minha versão OpenGL de destino a suporte).
Respostas:
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/ fornece uma boa visão geral sobre o básico. http://en.wikipedia.org/wiki/Shadow_mapping vincula-se a vários trabalhos de pesquisa que descrevem diferentes melhorias e otimizações.
Os volumes sombrios têm sido "a coisa" há alguns anos atrás. http://en.wikipedia.org/wiki/Shadow_volume descreve bem a técnica.
Recentemente, as abordagens baseadas em rastreamento de raios e rastreamento de caminho foram usadas para raios / sombras (que já existiam antes, mas não o hardware para utilizá-las). No entanto, as otimizações usadas (por exemplo, renderização monte carlo com iterações limitadas) tendem a levar a ruído / artefatos no movimento da câmera (para um exemplo do efeito, consulte por exemplo http://www.youtube.com/watch?v=FJLy- ci-RyY ).
fonte