Interested Article - Отложенное освещение и затенение
- 2021-10-15
- 1
Отложенное освещение и затенение , отложенный рендеринг ( англ. deferred shading ) — программная техника (методика) в трёхмерной компьютерной графике , которая обрабатывает освещение и затенение визуальной сцены. В результате работы алгоритма отложенного освещения и затенения процесс вычисления разбивается на меньшие части, которые записываются в промежуточную буферную память и объединяются потом.
Главным отличием отложенного освещения и затенения от стандартных методов освещения является то, что эти методы немедленно записывают результат работы шейдера во кадровый буфер цвета. Реализации в современных аппаратных средствах по обработке графики имеют тенденцию использовать множественные цели рендеринга ( англ. multiple render targets — MRT ) для избежания избыточных трансформаций вершин. Обычно, как только построены все необходимые буферы, они затем считываются (обычно как вводная текстура) из шейдерного алгоритма (например, уравнение освещения) и объединяются для создания результата. В этом случае вычислительная сложность и полоса пропускания памяти, необходимые для рендеринга сцены, уменьшаются до видимых частей, таким образом уменьшая сложность освещаемой сцены.
Преимущества и недостатки
Первичным преимуществом отложенного рендеринга является совместимость с «грубым» и «ранним» тестированием Z-буфера , другие преимущества ещё не исследованы в должной степени. Эти преимущества могут включать более простое управление сложными ресурсами освещения, лёгкость управления другими сложными шейдерными ресурсами и упрощение программного конвейера визуализации .
Одним из ключевых недостатков техники отложенного рендеринга является неспособность обработать прозрачность в пределах алгоритма, хотя эта проблема является общей и для Z-буферизации ; выходом из этой проблемы является задерживание и сортировка рендеринга прозрачных частей сцены . Другое решение — использование вычислительных шейдеров Direct3D 11 / OpenGL 4.3 для реализации алгоритма независимой от порядка прозрачности ( англ. order independent transparency ).
Другим довольно важным недостатком отложенного рендеринга является несовместимость со сглаживанием . Так как стадия освещения отделена от стадии геометрии, то аппаратное сглаживание не приводит к правильным результатам. Хотя первый проход, используемый при рендеринге базовых свойств (диффузная обработка, карта высот), может использовать сглаживание, к полному освещению сглаживание неприменимо. Одной из типичных методик для преодоления этого ограничения является метод выделения границ ( ) финального изображения и затем применения размытия к граням (границам) . Однако этот недостаток был актуален для Direct3D 9 . В более поздних версиях появилась возможность читать и писать отдельные семплы ( англ. samples ) MSAA-текстур ( — в Direct3D 10 , буферы глубины — в Direct3D 10.1). Это позволило разработчикам реализовывать свои алгоритмы MSAA для отложенного освещения.
Распространённость
Примерами игр с отложенным освещением и поддержкой MSAA являются Battlefield 3 , Crysis 3 , Grand Theft Auto V.
Методика отложенного рендеринга всё более часто используется в компьютерных играх, так как допускает использование неограниченного количества источников света и уменьшает сложность необходимых шейдерных инструкций.
В частности, «Advanced Technology Group», команда специалистов компании Sony Computer Entertainment , исследовала эту область и помогает разработчикам встраивать эту технологию в графические движки . PhyreEngine , бесплатный графический движок разработки Sony Computer Entertainment, имеет поддержку отложенного освещения и затенения. Примерами игр, использующих отложенный рендеринг и разработку которых поддержала Sony Computer Entertainment, являются:
- Killzone 2 разработки Guerrilla Games
- LittleBigPlanet разработки Media Molecule
- inFamous разработки Sucker Punch Productions .
К играм, использующим отложенный рендеринг, но в разработке которых Sony не принимала участие, являются:
- Cерия игр S.T.A.L.K.E.R. разработки GSC Game World
- Cерия игр Dead Space разработки Electronic Arts
- Tabula Rasa разработки NCSoft .
Технология отложенного освещения и затенения используется в игровом движке CryEngine 3 разработки Crytek .
История
Идея отложенного освещения и затенения изначально была представлена и его коллегами в работе под названием «The triangle processor and normal vector shader: a VLSI system for high performance graphics» , опубликованной в 1988 году . Хотя в работе нигде не используется слово «отложенный», концепция, представленная там, только недавно нашла практическое применение в таких приложениях, как компьютерные игры .
Примечания
- Hargreaves, Shawn; Harris, Mark . Nvidia (2004). Дата обращения: 6 января 2021. 22 ноября 2009 года.
- . NVIDIA (17 января 2007). Дата обращения: 28 марта 2007. 29 марта 2012 года.
- . Pontifical Catholic University of Rio de Janeiro. Дата обращения: 14 февраля 2008. Архивировано из 29 марта 2012 года.
- . NVIDIA. Дата обращения: 14 февраля 2008. 29 марта 2012 года.
- . NVIDIA. Дата обращения: 14 февраля 2008. Архивировано из 29 марта 2012 года.
- Deering, Michael; Stephanie Winner, Bic Schediwy, Chris Duffy, Neil Hunt. The triangle processor and normal vector shader: a VLSI system for high performance graphics (англ.) // ACM SIGGRAPH Computer Graphics : journal. — ACM Press. — Vol. 22 , no. 4 . — P. 21—30 .
- (PDF). NVIDIA. Дата обращения: 28 марта 2007. 29 марта 2012 года.
- Klint, Josh. . — Leadwerks. 9 декабря 2008 года.
Ссылки
- Каталин Зима. . Ziggyware (27 декабря 2007). — Статья, детально описывающая метод отложенного освещения и затенения, содержащая пояснения и примеры программного кода. Дата обращения: 1 июля 2009. Архивировано из 19 мая 2012 года.
- Боресков Алексей Викторович. . steps3D (2008). Дата обращения: 1 апреля 2009.
- . GameDev.ru (11 мая 2008). — Короткое определение алгоритма, его преимущества, недостатки и особенности. Дата обращения: 1 июля 2009.
- Rama Hoeztlein. (англ.) . rchoetzlein.com. Дата обращения: 1 июля 2009. 29 марта 2012 года.
- 2021-10-15
- 1