Лучшие вопросы
Таймлайн
Чат
Перспективы

Отложенное освещение и затенение

программная техника разбиения вычислений в трехмерной графике на меньшие этапы Из Википедии, свободной энциклопедии

Отложенное освещение и затенение
Remove ads

Отложенное освещение и затенение, отложенный рендеринг (англ. deferred shading) — программная техника (методика) в трёхмерной компьютерной графике, которая обрабатывает освещение и затенение визуальной сцены. В результате работы алгоритма отложенного освещения и затенения процесс вычисления разбивается на меньшие части, которые записываются в промежуточную буферную память и объединяются потом.

Thumb
Буфер диффузного цвета
Thumb
Z буфер
Thumb
Буфер нормалей
Thumb
Финальное изображение (для рисования теней, показанных на данном изображении необходимо использовать технологии по типу теневой карты вместе с отложенным освещением).[1]

Главным отличием отложенного освещения и затенения от стандартных методов освещения является то, что эти методы немедленно записывают результат работы шейдера во кадровый буфер цвета. Реализации в современных аппаратных средствах по обработке графики имеют тенденцию использовать множественные цели рендеринга (англ. multiple render targets — MRT) для избежания избыточных трансформаций вершин. Обычно, как только построены все необходимые буферы, они затем считываются (обычно как вводная текстура) из шейдерного алгоритма (например, уравнение освещения) и объединяются для создания результата. В этом случае вычислительная сложность и полоса пропускания памяти, необходимые для рендеринга сцены, уменьшаются до видимых частей, таким образом уменьшая сложность освещаемой сцены.

Remove ads

Преимущества и недостатки

Суммиров вкратце
Перспектива

Первичным преимуществом отложенного рендеринга является совместимость с «грубым» и «ранним» тестированием Z-буфера, другие преимущества ещё не исследованы в должной степени. Эти преимущества могут включать более простое управление сложными ресурсами освещения, лёгкость управления другими сложными шейдерными ресурсами и упрощение программного конвейера визуализации.

Одним из ключевых недостатков техники отложенного рендеринга является неспособность обработать прозрачность в пределах алгоритма, хотя эта проблема является общей и для Z-буферизации; выходом из этой проблемы является задерживание и сортировка рендеринга прозрачных частей сцены[2]. Другое решение — использование вычислительных шейдеров Direct3D 11/OpenGL 4.3 для реализации алгоритма независимой от порядка прозрачности (англ. order independent transparency).

Другим довольно важным недостатком отложенного рендеринга является несовместимость со сглаживанием. Так как стадия освещения отделена от стадии геометрии, то аппаратное сглаживание не приводит к правильным результатам. Хотя первый проход, используемый при рендеринге базовых свойств (диффузная обработка, карта высот), может использовать сглаживание, к полному освещению сглаживание неприменимо. Одной из типичных методик для преодоления этого ограничения является метод выделения границ (Выделение границ) финального изображения и затем применения размытия к граням (границам)[3]. Однако этот недостаток был актуален для Direct3D 9. В более поздних версиях появилась возможность читать и писать отдельные семплы (англ. samples) MSAA-текстур (render target — в Direct3D 10, буферы глубины — в Direct3D 10.1). Это позволило разработчикам реализовывать свои алгоритмы MSAA для отложенного освещения.

Remove ads

Распространённость

Суммиров вкратце
Перспектива

Примерами игр с отложенным освещением и поддержкой MSAA являются Battlefield 3, Crysis 3, Grand Theft Auto V.

Методика отложенного рендеринга всё более часто используется в компьютерных играх, так как допускает использование неограниченного количества источников света и уменьшает сложность необходимых шейдерных инструкций.

В частности, «Advanced Technology Group», команда специалистов компании Sony Computer Entertainment, исследовала эту область и помогает разработчикам встраивать эту технологию в графические движки. PhyreEngine, бесплатный графический движок разработки Sony Computer Entertainment, имеет поддержку отложенного освещения и затенения. Примерами игр, использующих отложенный рендеринг и разработку которых поддержала Sony Computer Entertainment, являются:

К играм, использующим отложенный рендеринг, но в разработке которых Sony не принимала участие, являются:

Технология отложенного освещения и затенения используется в игровом движке CryEngine 3 разработки Crytek.

Remove ads

История

Идея отложенного освещения и затенения изначально была представлена Майклом Дирингом и его коллегами[6] в работе под названием «The triangle processor and normal vector shader: a VLSI system for high performance graphics», опубликованной в 1988 году[7]. Хотя в работе нигде не используется слово «отложенный», концепция, представленная там, только недавно нашла практическое применение в таких приложениях, как компьютерные игры[8].

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads