Я пытаюсь сделать некоторое отображение теней в моей сцене. Это уже тяжело на счет треугольника, вызовов отрисовки и скорости заполнения карты теней, поэтому я хочу сделать это за один проход и отбраковать лицевые грани. Я также отбраковываю лицевые грани, чтобы избежать теневого шума / прыщей с помощью ПК-СС. Моя проблема в том, что у меня иногда бывают легкие утечки по краям, вызванные тем, что некоторые модели являются «неполными», то есть не полностью закрыты. (См. Прилагаемое изображение).
Я думаю, что я мог бы обойти это с помощью второго прохода, где я мог бы, например, усреднить образцы тени до половины суммы глубины передней и задней поверхности. Но я надеюсь на хитрость, которая в идеале:
- пропускает глубину записи для лицевых граней
- если лицо дальше текущего образца тени, чем ничего не делать (как обычно)
- если лицо находится спереди и ближе к текущему образцу тени, то «пометить» или «установить» этот пиксель в шаблонном или цветном буфере
- , если лицо вернулось и ближе, чем текущий образец тени,«очистить» этот пиксель в трафаретном или цветном буфере
Я, конечно, открыт для других идей, но я бы предпочел обойтись без цветового буфера, поскольку известно, что рендеринг только по Z намного быстрее.