В области 3D компьютерной графики , отложенные затенения являются экранным пространством затенения метод , который выполняется на втором рендеринге прохода, после того , как вершинные и пиксельные шейдеры оказаны. [2] Впервые он был предложен Майклом Дирингом в 1988 году. [3]
На первом проходе отложенного шейдера собираются только данные, необходимые для вычисления затенения. Позиции, нормали и материалы для каждой поверхности визуализируются в буфер геометрии ( G-буфер ) с использованием « визуализации в текстуру ». После этого пиксельный шейдер вычисляет прямое и непрямое освещение в каждом пикселе, используя информацию о буферах текстуры в пространстве экрана .
Направленную окклюзию экранного пространства [4] можно сделать частью конвейера отложенного затенения, чтобы придать направленность теням и взаимным отражениям.
Преимущества
Основным преимуществом отложенного затенения является отделение геометрии сцены от освещения. Требуется только один проход геометрии, и каждый источник света рассчитывается только для тех пикселей, на которые он влияет. Это дает возможность визуализировать множество источников света в сцене без значительного снижения производительности. [5] У этого подхода есть и другие преимущества. Эти преимущества могут включать более простое управление сложными ресурсами освещения, простоту управления другими сложными ресурсами шейдера и упрощение программного конвейера рендеринга.
Недостатки
Одним из ключевых недостатков отложенного рендеринга является неспособность обрабатывать прозрачность в рамках алгоритма, хотя эта проблема является общей для сцен с Z-буферизацией и обычно решается путем задержки и сортировки рендеринга прозрачных частей сцены. [6] Пилинг глубины можно использовать для достижения прозрачности, не зависящей от порядка при отложенном рендеринге, но за счет дополнительных пакетов и размера g-буфера. Современное оборудование, поддерживающее DirectX 10 и более поздние версии, часто способно выполнять пакетные операции достаточно быстро, чтобы поддерживать интерактивную частоту кадров. Когда желательна прозрачность, не зависящая от порядка (обычно для потребительских приложений), отложенное затенение не менее эффективно, чем прямое затенение с использованием той же техники.
Еще один серьезный недостаток - сложность использования нескольких материалов. Можно использовать много разных материалов, но для этого требуется, чтобы в G-буфере хранится больше данных, который и без того достаточно велик и занимает большую часть полосы пропускания памяти. [7]
Еще один недостаток заключается в том, что из-за отделения этапа освещения от геометрического этапа аппаратное сглаживание больше не дает правильных результатов, поскольку интерполированные подвыборки могут привести к бессмысленным атрибутам положения, нормали и касательной. Одним из обычных методов преодоления этого ограничения является использование обнаружения краев на конечном изображении с последующим применением размытия по краям [8], однако недавно были разработаны более продвинутые методы постобработки сглаживания краев, такие как MLAA [9] [ 10] (используется , среди прочего, в Killzone 3 и Dragon Age II ), FXAA [11] (используется в Crysis 2 , FEAR 3 , Duke Nukem Forever ), SRAA , [12] DLAA [13] (используется в Star Wars: The Force Unleashed II ) и post MSAA (используется в Crysis 2 в качестве решения сглаживания по умолчанию). Хотя это не метод сглаживания краев, временное сглаживание (используемое в Halo Reach и Unreal Engine ) также может помочь придать краям более гладкий вид. [14] DirectX 10 представил функции, позволяющие шейдерам получать доступ к отдельным семплам в целевых объектах рендеринга с множественной выборкой (и буферах глубины в версии 10.1), предоставляя пользователям этого API доступ к аппаратному сглаживанию при отложенном затенении. Эти функции также позволяют им правильно применять сопоставление яркости HDR к краям со сглаживанием, где в более ранних версиях API любые преимущества сглаживания могли быть потеряны.
Отложенное освещение
Отложенное освещение (также известное как Light Pre-Pass) - это модификация отложенного затенения. [15] В этом методе используется три прохода вместо двух при отложенном затенении. При первом проходе по геометрии сцены в буфер цвета записываются только нормали и коэффициент зеркального рассеяния. Затем «отложенный» проход для экранного пространства накапливает данные о диффузном и зеркальном освещении отдельно, поэтому последний проход должен быть выполнен по геометрии сцены для вывода окончательного изображения с попиксельным затенением. Очевидным преимуществом отложенного освещения является резкое уменьшение размера G-буфера. Очевидная цена - необходимость визуализировать геометрию сцены дважды, а не один раз. Дополнительная стоимость заключается в том, что отложенный проход в отложенном освещении должен выводить диффузную и зеркальную освещенность отдельно, тогда как отложенный проход в отложенном затенении должен выводить только одно комбинированное значение яркости.
За счет уменьшения размера G-буфера этот метод может частично преодолеть один серьезный недостаток отложенного затенения - множественность материалов. Еще одна проблема, которую можно решить, - это MSAA. Отложенное освещение можно использовать с MSAA на оборудовании DirectX 9. [ необходима цитата ]
Отложенное освещение в коммерческих играх
Использование этой техники в видеоиграх расширилось из-за контроля, который она дает с точки зрения использования большого количества динамических источников света и уменьшения сложности требуемых инструкций шейдера. Вот несколько примеров игр с отложенным освещением:
- Алан Уэйк
- Assassin's Creed III [16]
- BioShock Infinite [17]
- Размытие
- Brink
- Разгон и разгон 2 [18]
- Crysis 2 [19]
- Dead Space , [20] Dead Space 2 [21] и Dead Space 3 [22]
- Deus Ex: Human Revolution [23]
- Догма Дракона [24]
- Войны гильдий 2 [25]
- Halo: Reach [26]
- inFamous и inFamous 2
- Маленькая большая планета
- Metal Gear Solid V: Ground Zeroes
- Metal Gear Solid V: Призрачная боль [27]
- Смена 2 НЕОБХОДИМА [28]
- Red Dead Redemption
- Серия сопротивления [29]
- Рошар
- StarCraft II [30]
- Uncharted и Uncharted 2 [31]
- Победить [32]
- Призрак Цусимы [33]
Отложенное затенение в коммерческих играх
По сравнению с отсроченным освещением, этот метод не очень популярен [ править ] в связи с высокими требованиями размера памяти и пропускной способностью, особенно на седьмых консолях поколения , где графический объем памяти и пропускная способность ограничены и часто узкие места.
- Амнезия: Темное происхождение [34]
- Поле битвы 3 [35]
- Dota 2 [36]
- Подземелья
- Цифровой боевой симулятор (DCS) World 2.5
- Grand Theft Auto IV
- Killzone 2 и Killzone 3 [37]
- Мафия II
- Шахтерские войны 2081 [38]
- Метро 2033 [39]
- Рифт
- Шрек [40]
- Splinter Cell: Conviction
- Серия игр STALKER : Shadow of Chernobyl , Clear Sky и Call of Pripyat [41]
- Табула Раса [42]
- Трина [43]
- Трина 2 [44]
- Вива Пиньята
Игровые движки с отложенным затенением или методами рендеринга
- НаковальняСледующий
- Chrome Engine
- CryEngine 3 [45]
- Fox Engine [27]
- Обморожение 2 [46]
- GameStart [47]
- Haemimont Games Engine (HGE)
- I-Novae [48]
- Leadwerks
- MT Framework
- Продвинутый игровой движок Rockstar [49]
- Крутящий момент 3D [50]
- Единство [51]
- Unreal Engine 4 [52]
- Видение [53]
- Механизм создания для Fallout 4 и Skyrim SE [54]
- Mafia Engine (ранняя версия Illusion Engine) из Mafia III и Mafia: Definitive Edition
История
Идея отложенного затенения была первоначально представлена Майклом Дирингом и его коллегами в статье [3], опубликованной в 1988 году под названием «Процессор треугольников и нормальный векторный шейдер: система СБИС для высокопроизводительной графики» . Хотя в статье никогда не используется слово «отложенный», вводится ключевое понятие; каждый пиксель затеняется только один раз после разрешения глубины. Отложенное затенение в том виде, в каком мы его знаем сегодня, с использованием G-буферов, было представлено в статье Сайто и Такахаши в 1990 году [55], хотя они тоже не используют слово «отложенный». Первой видеоигрой с отложенным затенением была Shrek , игра для Xbox, выпущенная в 2001 году. [56] Примерно в 2004 году начали появляться реализации на обычном графическом оборудовании. [57] Позже этот метод приобрел популярность в таких приложениях, как видеоигры , и наконец стал широко распространенным в период с 2008 по 2010 год. [58]
Рекомендации
- ^ Харгривз, Шон; Харрис, Марк (2004). «6800 лье под водой: отложенное затенение» (PDF) . Nvidia . Проверено 6 января 2021 года .
- ^ «Прямая визуализация против отложенной визуализации» .
- ^ а б Диринг, Майкл; Стефани Виннер; Бик Щедивы; Крис Даффи; Нил Хант (1988). «Треугольный процессор и обычный векторный шейдер: система СБИС для высокопроизводительной графики». ACM SIGGRAPH Компьютерная графика . 22 (4): 21–30. DOI : 10.1145 / 378456.378468 .
- ^ О'Доннелл, Юрий (18 июля 2011 г.). «Отложенная направленная окклюзия экранного пространства» . kayru.org .
- ^ Кайи, Джелал Кансин. «Отложенный рендеринг в XNA 4» (PDF) . Университет Линнея . Проверено 6 января 2021 года .
- ^ «SDK 9.51 - Избранные образцы кода» . Nvidia . 17 января 2007 . Проверено 28 марта 2007 года .
- ^ Энгель, Вольфганг (16 марта 2008 г.). «Light Pre-Pass Renderer» . Дневник графического программиста . Проверено 6 января 2021 года .
- ^ «Учебник по отложенному затенению» (PDF) . Папский католический университет Рио-де-Жанейро. Архивировано из оригинального (PDF) 6 марта 2009 года . Проверено 14 февраля 2008 года .
- ^ «MLAA: эффективное сглаживание с GPU на CPU» (PDF) . Intel . Проверено 2 декабря 2018 года .
- ^ «Морфологическое сглаживание и топологическая реконструкция» (PDF) . Университет Густава Эйфеля . Проверено 6 января 2021 года .
- ^ http://www.ngohq.com/images/articles/fxaa/FXAA_WhitePaper.pdf
- ^ Chajdas, Matthäus G .; Макгуайр, Морган; Любке, Дэвид (1 февраля 2011 г.). "Сглаживание субпиксельной реконструкции" . Nvidia . Проверено 6 января 2021 года .
- ^ Андреев, Дмитрий (2011). «Сглаживание с другой точки зрения» . and.intercon.ru . Проверено 6 января 2021 года .
- ^ Андреев, Дмитрий (4 марта 2011 г.). «Сглаживание с другой точки зрения (расширенные слайды GDC 2011)» . and.intercon.ru . Проверено 6 января 2021 года .
- ^ «Рендеринг в реальном времени · Отложенные подходы к освещению» . realtimerendering.com .
- ^ «Assassin's Creed III: переработанный двигатель наковальни» . www.GameInformer.com .
- ^ «Разработка BioShock Infinite ориентирована на PS3 и использует технологию Uncharted 2» . blorge.com . Архивировано из оригинала 3 октября 2011 года.
- ^ «Техническое интервью: Crackdown 2» . Eurogamer.net . 26 июня 2010 г.
- ^ guest11b095. "Немного более отложенный Cry Engine3" . slideshare.net .
- ^ «Мертвое пространство от Electronic Arts» . NVIDIA . Проверено 14 февраля 2008 года .
- ^ «Face-Off: Dead Space 2» . Проверено 1 февраля 2010 года .
- ^ «Face-Off: Dead Space 3» . Проверено 18 февраля 2013 года .
- ^ «Переводчик Google» . google.com .
- ^ «GregaMan, Управление блогом» . capcom-unity.com .
- ^ «Нормали» . Imgur .
- ^ «Техническое интервью: Halo: Reach» . Eurogamer.net . 11 декабря 2010 г.
- ^ а б «Технический анализ: двигатель FOX из Metal Gear Solid 5» . Eurogamer.net . 5 апреля 2013 г.
- ^ «Статья о создании Shift 2 Unleashed • Страница 2 • Eurogamer.net» . Eurogamer.net . 14 мая 2011 г.
- ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 15 сентября 2011 года . Проверено 12 июля 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ «Эффекты и приемы StarCraft II» (PDF) . AMD . Проверено 9 июля 2012 года .
- ^ «CGSociety Maintenance» . cgsociety.org . Архивировано из оригинального 2 -го апреля 2015 года . Проверено 12 июля 2011 года .
- ^ «Отложенный рендеринг« PlatinumGames Inc » . platinumgames.com . Архивировано из оригинала на 27 ноября 2010 года.
- ^ «Призрак анализа Цусимы: мощная графика для PS4» . gamingbolt.com .
- ^ Силард Шимон. «Интервью Frictional Games» . playsomnia.com .
- ^ ИГРАЛЬНАЯ КОСТЬ. «Отложенное затенение на основе SPU в BATTLEFIELD 3 для Playstation 3» . slideshare.net .
- ^ "Valve Developer Wiki - Dota 2" . Проверено 10 апреля 2012 года .
- ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 11 июля 2011 года . Проверено 12 июля 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ Шахтерские войны 2081
- ^ «Техническое интервью: Интервью Metro 2033 • Стр. 2 • Eurogamer.net» . Eurogamer.net . 25 февраля 2010 г.
- ^ «История - Игры с электрическими овцами» . Проверено 14 апреля 2011 года .
- ^ Шишковцов, Олесь (7 марта 2005 г.). «GPU Gems 2: Глава 9. Отложенное затенение в STALKER» . Nvidia . Проверено 2 февраля 2011 года .
- ^ «Отложенное затенение в Tabula Rasa» . NVIDIA. Архивировано из оригинала 3 февраля 2009 года . Проверено 14 февраля 2008 года .
- ^ «Форумы пользователей Steam - Просмотр отдельного сообщения - Снятие нагрузки Physx с процессора ...» steampowered.com .
- ^ «Форумы пользователей Steam - просмотр отдельного сообщения - информация о рендеринге Trine 2 - сглаживание, перегрев, стерео, задержка ввода и т . Д.» . steampowered.com .
- ^ «CryENGINE 3 Технические характеристики» . Crytek GmbH. Архивировано из оригинального 27 марта 2009 года . Проверено 27 марта 2009 года .
- ^ «Зажигая вас в Battlefield 3» . DICE . 3 марта 2011 года Архивировано из оригинального 25 августа 2011 года . Проверено 15 сентября 2011 года .
- ^ «GameStart - Список возможностей» . Архивировано из оригинала на 2 декабря 2011 года.
- ^ "Журнал Infinity Development - Отложенное освещение" . I-Novae Studios. 3 апреля 2009 года в архив с оригинала на 26 января 2013 года . Проверено 26 января 2011 года .
- ^ «СТРОИТЬ: отложенный рендеринг» . 26 февраля 2009 . Проверено 8 апреля 2015 года .
- ^ «Torque 3D Development - Advanced Lighting (гибрид отложенного освещения)» . 3 марта 2009 . Проверено 2 июля 2015 года .
- ^ Восбург, Итан (9 сентября 2010 г.). «Предварительный просмотр возможностей Unity 3 - отложенный рендеринг» . Unity Technologies . Проверено 26 января 2011 года .
- ^ «Unreal Engine 4 - Обзор рендеринга» . Эпические игры . Проверено 6 июня 2015 года .
- ^ «Vision Engine 8.2 обеспечивает кроссплатформенность 3D-технологий» . 10 октября 2011 года Архивировано из оригинального 16 -го ноября 2012 года . Проверено 8 апреля 2015 года .
- ^ «Графические технологии Fallout 4» . Bethesda Softworks . 4 ноября 2015 года . Проверено 24 апреля 2020 года .
- ^ Сайто, Такафуми; Токичиро Такахаши (1990). «Понятная визуализация трехмерных фигур». ACM SIGGRAPH Компьютерная графика . 24 (4): 197–206. DOI : 10.1145 / 97880.97901 .
- ^ Гельдрайх, Рич. «Презентация GDC 2004 по отложенному освещению и затемнению» .
- ^ «Отложенное затенение» (PDF) . NVIDIA . Проверено 28 марта 2007 года .
- ^ Клинт, Джош. «Отложенный рендеринг в Leadwerks Engine» (PDF) . Leadwerks. Архивировано из оригинального (PDF) 9 декабря 2008 года. Цитировать журнал требует
|journal=
( помощь )