Войти
ПрограммированиеТермины

ShadowMapping

Один из наиболее современных способов генерации теней.

Под термином Shadow Mapping скрываются несколько разных подходов к их получению:

* 1. Подход, который называют ShadowMap(карта теней)
Подход, при котором для некоторого объекта сцены создается текстура, в которую рисуется объект, отбрасывающий тень - черным цветом, из положения источника света.
Затем требуеться проективно наложить полученную текстуру на приёмники теней(shadow receivers)

Плюсы данного подхода:
1) Полученную текстуру можно размывать, и применять к ней любую фильтрацию
Минусы:
1) Отсутствует самозатенение
2) Ограничено кол-во затеняющих объектов(shadow casters)
3) Для большого кол-ва затеняющих объектов требуеться много текстур

* 2. Индексированные карты теней
В этом подходе для одного источника света(направленного) создаёться одна текстура.
В эту текстуру рисуються объекты сцены, каждый - своим уникальным цветом.

При наложении теней, сравниваеться цвет, который находится в текстуре(текстура накладываеться проективно), и собственный цвет объекта. Если они не равны, значит объект затенён.

Плюсы:
1) Проблема ограниченного кол-ва shadow casters решена, каждый объект может отбрасывать тень
2) Требуеться только одна текстура(для направлнного источника света)
Минусы:
1) Такую карту теней нельзя размывать, это не имеет смысла для хранимой в  ней информации.
2) Остаёться проблема отсутствия самозатенения
3) Чёткие тени, альязинг

* 3. Shadow mapping
В этом подходе для одного источника света(направленного) создаёться одна текстура глубины.
В эту текстуру рисуються сцена.

Потом, при отрисовке сцены, сравниваеться глубина точки относительно источника света, и значение, которое находиться в текстуре(текстура накладываеться проективно). Если глубина точки больше, чем глубина в текстуре, то делаеться вывод, что объект затенён.
Это самый популярный метод создания теней. Для него производители видеокарт создают различные инструменты, например проективную выборку из карты теней, которая сравнит глубину с текущей, и может даже применить 2x2 PCF фильтр(на картах НВидии).

Плюсы метода:
1) Все объекты в текстуре отбрасывают тени
2) Самозатенение
3) Для напрвленного источника света требуеться только одна текстура
Минусы:
1) Сильный альязинг
2) Отсутствие мягких теней в оригинальном методе.

Для решения этих минусов были придуманы различные улучшения:

Для улучшения ситуации с альязингом, используються методы, которые выделяют больше площади текстуры под близкие видимые объекты, и меньше под дальние.
1) PSM - Perspective Shadow Mapping
2) LiSPSM - Light Space Perspective Shadow Mapping
3) TSM - Trapezoidal Shadow Mapping

Методы, разделяющие видимый объём на части, и использующие несколько текстур.
1) PSSM - Parallel Split Shadow Mapping
2) CSM - Cascaded Shadow Mapping

Методы, позволяющие добиться мягких теней.
1) VSM - Variance Shadow Map
2) Smoothies
3) PCF - Percentage Closer Filtering

Термин очень обширный, и требует исправления и дополнения

Что такое ShadowMapping?

6 декабря 2006 (Обновление: 17 мая 2007)