ShadowMapping
Один из наиболее современных способов генерации теней.
Под термином Shadow Mapping скрываются несколько разных подходов к их получению:
Затем требуеться проективно наложить полученную текстуру на приёмники теней(shadow receivers)
Плюсы данного подхода:
1) Полученную текстуру можно размывать, и применять к ней любую фильтрацию
Минусы:
1) Отсутствует самозатенение
2) Ограничено кол-во затеняющих объектов(shadow casters)
3) Для большого кол-ва затеняющих объектов требуеться много текстур
В эту текстуру рисуються объекты сцены, каждый - своим уникальным цветом.
При наложении теней, сравниваеться цвет, который находится в текстуре(текстура накладываеться проективно), и собственный цвет объекта. Если они не равны, значит объект затенён.
Плюсы:
1) Проблема ограниченного кол-ва shadow casters решена, каждый объект может отбрасывать тень
2) Требуеться только одна текстура(для направлнного источника света)
Минусы:
1) Такую карту теней нельзя размывать, это не имеет смысла для хранимой в ней информации.
2) Остаёться проблема отсутствия самозатенения
3) Чёткие тени, альязинг
В эту текстуру рисуються сцена.
Потом, при отрисовке сцены, сравниваеться глубина точки относительно источника света, и значение, которое находиться в текстуре(текстура накладываеться проективно). Если глубина точки больше, чем глубина в текстуре, то делаеться вывод, что объект затенён.
Это самый популярный метод создания теней. Для него производители видеокарт создают различные инструменты, например проективную выборку из карты теней, которая сравнит глубину с текущей, и может даже применить 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)