ПрограммированиеТерминыГрафика

Deferred Shading (Отложенное освещение)

Deferred Shading (отложенное освещение) — освещение и затенение, просчитанные специальным методом отложенного просчёта (deferred render), при котором освещение сцены накладывается в пост-процессе, после рендера сцены.

Deferred Shading — один из методов просчёта освещения, удачно применяемый при большом количестве источников света в кадре.

Суть алгоритма в том, что вначале рисуется геометрия в диффузном цвете, но без освещения, и только позже накладывается освещение как 2Д пост-эффект.

При отложенном ренедере для каждого пикселя, кроме диффузного цвета геометрии, необходимо дополнительно получить другие параметры, такие как нормаль, позиция и параметры материала, которые позже будут использоваться при просчёте освещения. На этом шаге может пригодиться такая возможность новых видеокарт, как рендер в несколько текстур за проход (MRT — multiple render targets).

Преимущества метода отложенного освещения:
•  Геометрия рисуется один раз.
•  Освещаем каждый видимый пиксель ровно один раз.
•  Легко добавлять новые типы световых шейдеров.
•  Много небольших источников света рисуются столько же, сколько пара больших.
•  Позволяет отказаться от лайтмапов, что ускоряет разработку уровней.

Недостатки Deferred Shading:
•  Метод плох при большом количестве данных, необходимых для освещения (Сферические гармоники, Self-shadowed bump реализовать затруднительно).
•  Большая проблема — это объекты с альфа-блендингом, которые не могут быть просчитаны в этом методе на DirectX 9 железе.
•  Довольно много уходит видеопамяти на текстуры с информацией о геометрии. (G-buffer).
•  Невозможность аппаратного полноэкранного сглаживания на DirectX 9 железе.
•  Проблемы с реализацией большого количества разнообразных материалов.

Простое решение в данном случае — просто не применять освещение для таких объектов, и рисовать их после того, как отложенное освещение просчитано.
•  Приходится использовать одну модель освещения на всей сцене.
•  Плохой подход для старых карт.

Полезные ссылки:
http://www.talula.demon.co.uk/DeferredShading.pdf (GDC2004 - преимущества и недостатки, немного о реализации)
http://www710.univ-lyon1.fr/~jciehl/Public/educ/GAMA/2007/Deferre… GAMES2005.pdf (Более подробно рассказывается о реализации)

Что такое Deferred Shading (Отложенное освещение)?

#post-process, #render, #shading, #освещение

11 мая 2008 (Обновление: 14 июня 2010)

Комментарии [35]