Эффективное использование Early Rejection Tests при визуализации мягких теней
Автор: Джо
А что тут понимать, собственно? Подумаешь, бином Ньютона...
Тоже мне - психологические бездны. В институте мы на плохом счету,
средств на экспедицию нам не дают. Эх.. набьем-ка мы наш рюкзак
всякими манометрами-дерьмометрами, проникнем в Зону нелегально...
И все здешние чудеса поверим алгеброй. Никто в мире про Зону понятия не имеет.
И тут, конечно, сенсация! Телевидение, поклонницы кипятком писают,
лавровые веники несут... появляется наш Профессор весь в белом
и объявляет: мене-мене, текел, упарсин. Ну, натурально, все разевают рты и
хором кричат: Нобелевскую ему!..
Аркадий и Борис Стругацкие. Сталкер
Данная статья ставит своей целью объяснить важность использования аппаратного отсечения фрагментов при визуализации мягких теней с использованием алгоритма Penumbra Wedges.
Область пенумбры на экране определяется теми пикселями, точки которых (с оконными координатами (x, y) и координатой глубины z) расположены внутри пенумбральных клиньев. Однако, пенумбральные клинья обычно охватывают намного больше пикселей, которые расположены вне их геометрии. Для этих пикселей нет необходимости выполнять сложный фрагментный шейдер, производящий штриховку тени. В обычных условиях, однако, фрагментный шейдер будет выполняться для всей площади экрана, которую охватывают клинья, а следовательно, производительность процесса рисования будет неудовлетворительной.
Поэтому, в идеале, фрагментный шейдер должен выполняться только в тех пикселях, которые расположены внутри клиньев, а все остальные пиксели, расположенные извне, должны отсекаться. Такое отсечение может быть выполнено с использованием двух проходов и комбинацией теста глубины и теста трафарета. Этот метод был описан авторами алгоритма Penumbra Wedges в документе "An Optimized Soft Shadow Volume Algorithm with Real-Time Performance" (в описании есть небольшая опечатка).