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)