Каково современное состояние с точки зрения рендеринга теней? Моя цель - OpenGL 3.2, использующая конвейер отложенного рендеринга, если это имеет значение.
Прошло много лет с тех пор, как я изучал рендеринг теней, и в то время было доступно множество техник, от трафаретов до различных методов отображения теней. В то время рендеринг теней требовал отдельных проходов рендеринга, контролируемых процессором. Но недавно я увидел демо-версию, где сцена полностью воспроизводилась на GPU, включая тени. Я понятия не имею, как это было бы достигнуто, или если это даже разумно сделать (кроме технической демонстрации).
Учитывая большое количество старой информации в интернете, я хотел бы узнать, какие методы люди используют в наши дни, и какую часть можно отправить в GPU (при условии, что моя целевая версия OpenGL поддерживает это).
Ответы:
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/ дает хороший обзор основ. http://en.wikipedia.org/wiki/Shadow_mapping ссылки на множество исследовательских работ, описывающих различные улучшения и оптимизации.
Объемы теней были «предметом» несколько лет назад. http://en.wikipedia.org/wiki/Shadow_volume хорошо описывает технику.
В последнее время подходы, основанные на трассировке лучей и трассировке путей, использовались для освещения / затенения (которые были раньше, но не аппаратное обеспечение для их использования). Тем не менее, используемые оптимизации (например, рендеринг Монте-Карло с ограниченными итерациями), как правило, приводят к шуму / артефактам при движении камеры (пример эффекта см., Например, http://www.youtube.com/watch?v=FJLy- ci-RyY ).
источник