IT-словарь › Программирование › Теневой объём (shadow volume)

Теневой объём (shadow volume)

Программирование Svenska → Обновлено: 2026-10-24

Тени как геометрия: рёбра силуэта выдавливаются от источника света в замкнутые объёмы, а трафаретный буфер подсчитывает, какие пиксели оказались внутри.

Метод описал Фрэнк Кроу в 1977 году. Находят рёбра силуэта объекта с точки зрения источника света, вытягивают их в бесконечность, получая объём, и рисуют его в трафаретный буфер: каждый раз, когда луч к пикселю входит в объём, счётчик растёт, при выходе — убывает. Ненулевая сумма означает, что пиксель в тени. Результат — предельно резкие, пиксельно точные тени, не зависящие от разрешения.

Наивная версия ломалась, когда камера оказывалась внутри объёма. Приём «depth-fail» Джона Кармака (независимо открытый и другими) считал со стороны дальней плоскости и решил проблему; на этой технике держался Doom 3 (2004). Но нагрузка на филлрейт чудовищна, а геометрия обязана быть замкнутой, поэтому карты теней в итоге победили простой дешевизной.

← Назад к словарю