Из Википедии, бесплатной энциклопедии
  (Перенаправлено из отложенного освещения )
Перейти к навигации Перейти к поиску
G-буфер диффузного цвета
Z-буфер
Поверхностный нормальный G-буфер
Окончательный композитинг (для расчета теней, показанных на этом изображении, вместе с отложенным затенением необходимо использовать другие методы, такие как отображение теней , теневые щупы или теневой объем ). [1]

В области 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-буфера. Очевидная цена - необходимость визуализировать геометрию сцены дважды, а не один раз. Дополнительная стоимость заключается в том, что отложенный проход в отложенном освещении должен выводить диффузную и зеркальную освещенность отдельно, тогда как отложенный проход в отложенном затенении должен выводить только одно комбинированное значение яркости.

За счет уменьшения размера 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]

Ссылки [ править ]

  1. ^ Харгривз, Шон; Харрис, Марк (2004). «6800 лье под водой: отложенное затенение» (PDF) . Nvidia . Проверено 6 января 2021 года .
  2. ^ «Прямая визуализация против отложенной визуализации» . CS1 maint: обескураженный параметр ( ссылка )
  3. ^ а б Диринг, Майкл; Стефани Виннер; Бик Щедивы; Крис Даффи; Нил Хант (1988). «Треугольный процессор и обычный векторный шейдер: система СБИС для высокопроизводительной графики». ACM SIGGRAPH Компьютерная графика . 22 (4): 21–30. DOI : 10.1145 / 378456.378468 .
  4. О'Доннелл, Юрий (18 июля 2011 г.). «Отложенная направленная окклюзия экранного пространства» . kayru.org .
  5. ^ Кайи, Джелал Кансин. «Отложенный рендеринг в XNA 4» (PDF) . Университет Линнея . Проверено 6 января 2021 года .
  6. ^ «SDK 9.51 - Избранные образцы кода» . Nvidia . 17 января 2007 . Проверено 28 марта 2007 года . CS1 maint: обескураженный параметр ( ссылка )
  7. Энгель, Вольфганг (16 марта 2008 г.). «Light Pre-Pass Renderer» . Дневник графического программиста . Проверено 6 января 2021 года .
  8. ^ «Учебник по отложенному затенению» (PDF) . Папский католический университет Рио-де-Жанейро. Архивировано из оригинального (PDF) 6 марта 2009 года . Проверено 14 февраля 2008 года . CS1 maint: обескураженный параметр ( ссылка )
  9. ^ «MLAA: Эффективное перемещение антиалиасинга с GPU на CPU» (PDF) . Intel . Проверено 2 декабря 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  10. ^ "Морфологическое сглаживание и топологическая реконструкция" (PDF) . Университет Густава Эйфеля . Проверено 6 января 2021 года .
  11. ^ http://www.ngohq.com/images/articles/fxaa/FXAA_WhitePaper.pdf
  12. ^ Chajdas, Matthäus G .; Макгуайр, Морган; Любке, Дэвид (1 февраля 2011 г.). "Сглаживание субпиксельной реконструкции" . Nvidia . Проверено 6 января 2021 года .
  13. Андреев, Дмитрий (2011). «Сглаживание с другой точки зрения» . and.intercon.ru . Проверено 6 января 2021 года .
  14. Андреев, Дмитрий (4 марта 2011 г.). «Сглаживание с другой точки зрения (расширенные слайды GDC 2011)» . and.intercon.ru . Проверено 6 января 2021 года .
  15. ^ «Рендеринг в реальном времени · Отложенные подходы к освещению» . realtimerendering.com .
  16. ^ «Assassin's Creed III: переработанный двигатель наковальни» . www.GameInformer.com .
  17. ^ «Разработка BioShock Infinite ориентирована на PS3 и использует технологию Uncharted 2» . blorge.com . Архивировано из оригинала 3 октября 2011 года. CS1 maint: обескураженный параметр ( ссылка )
  18. ^ «Техническое интервью: Crackdown 2» . Eurogamer.net . 26 июня 2010 г.
  19. ^ guest11b095. "Немного более отложенный Cry Engine3" . slideshare.net .
  20. ^ «Мертвое пространство от Electronic Arts» . NVIDIA . Проверено 14 февраля 2008 года . CS1 maint: обескураженный параметр ( ссылка )
  21. ^ "Face-Off: Dead Space 2" . Проверено 1 февраля 2010 года . CS1 maint: обескураженный параметр ( ссылка )
  22. ^ "Face-Off: Dead Space 3" . Проверено 18 февраля 2013 года . CS1 maint: обескураженный параметр ( ссылка )
  23. ^ "Google Translate" . google.com .
  24. ^ "GregaMan, Управление блогом" . capcom-unity.com .
  25. ^ «Нормали» . Imgur .
  26. ^ "Техническое интервью: Halo: Reach" . Eurogamer.net . 11 декабря 2010 г.
  27. ^ a b "Технический анализ: двигатель FOX Metal Gear Solid 5" . Eurogamer.net . 5 апреля 2013 г.
  28. ^ «Создание Shift 2 Unleashed Статья • Страница 2 • Eurogamer.net» . Eurogamer.net . 14 мая 2011 г.
  29. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 15 сентября 2011 года . Проверено 12 июля 2011 года . CS1 maint: не рекомендуется параметр ( ссылка ) CS1 maint: заархивированная копия как заголовок ( ссылка )
  30. ^ «Эффекты и приемы StarCraft II» (PDF) . AMD . Проверено 9 июля 2012 года . CS1 maint: обескураженный параметр ( ссылка )
  31. ^ "Обслуживание CGSociety" . cgsociety.org . Архивировано из оригинального 2 -го апреля 2015 года . Проверено 12 июля 2011 года .
  32. ^ «Отложенный рендеринг« PlatinumGames Inc » . platinumgames.com . Архивировано из оригинала на 27 ноября 2010 года. CS1 maint: обескураженный параметр ( ссылка )
  33. ^ "Призрак анализа Цусимы: графическая электростанция PS4" . gamingbolt.com .
  34. ^ Силард Шимон. «Интервью Frictional Games» . playsomnia.com .
  35. ^ DICE. «Отложенное затенение на основе SPU в BATTLEFIELD 3 для Playstation 3» . slideshare.net .
  36. ^ "Valve Developer Wiki - Dota 2" . Проверено 10 апреля 2012 года . CS1 maint: обескураженный параметр ( ссылка )
  37. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 11 июля 2011 года . Проверено 12 июля 2011 года . CS1 maint: заархивированная копия как заголовок ( ссылка )
  38. ^ Шахтерские войны 2081
  39. ^ «Техническое интервью: Интервью Metro 2033 • Стр. 2 • Eurogamer.net» . Eurogamer.net . 25 февраля 2010 г.
  40. ^ "История - электрические игры овец" . Проверено 14 апреля 2011 года . CS1 maint: обескураженный параметр ( ссылка )
  41. Шишковцов, Олесь (7 марта 2005 г.). «GPU Gems 2: Глава 9. Отложенное затенение в STALKER» . Nvidia . Проверено 2 февраля 2011 года . CS1 maint: обескураженный параметр ( ссылка )
  42. ^ "Отложенное затенение в Tabula Rasa" . NVIDIA. Архивировано из оригинала 3 февраля 2009 года . Проверено 14 февраля 2008 года . CS1 maint: обескураженный параметр ( ссылка )
  43. ^ "Форумы пользователей Steam - Просмотр отдельного сообщения - Снятие нагрузки Physx с процессора ..." steampowered.com .
  44. ^ «Форумы пользователей Steam - Просмотр отдельного сообщения - Информация о рендеринге Trine 2 - сглаживание, перегрев, стерео, задержка ввода и т . Д.» . steampowered.com .
  45. ^ «CryENGINE 3 Технические характеристики» . Crytek GmbH. Архивировано из оригинального 27 марта 2009 года . Проверено 27 марта 2009 года . CS1 maint: обескураженный параметр ( ссылка )
  46. ^ "Зажигая вас в Battlefield 3" . DICE . 3 марта 2011 года Архивировано из оригинального 25 августа 2011 года . Проверено 15 сентября 2011 года . CS1 maint: обескураженный параметр ( ссылка )
  47. ^ «GameStart - Список возможностей» . Архивировано из оригинала на 2 декабря 2011 года. CS1 maint: обескураженный параметр ( ссылка )
  48. ^ "Журнал развития бесконечности - отложенное освещение" . I-Novae Studios. 3 апреля 2009 года в архив с оригинала на 26 января 2013 года . Проверено 26 января 2011 года . CS1 maint: обескураженный параметр ( ссылка )
  49. ^ «СТРОИТЬ: отложенный рендеринг» . 26 февраля 2009 . Проверено 8 апреля 2015 года . CS1 maint: обескураженный параметр ( ссылка )
  50. ^ «Разработка Torque 3D - Расширенное освещение (гибрид отложенного освещения)» . 3 марта 2009 . Проверено 2 июля 2015 года . CS1 maint: обескураженный параметр ( ссылка )
  51. ^ Восбург, Этан (9 сентября 2010). «Предварительный просмотр возможностей Unity 3 - отложенный рендеринг» . Unity Technologies . Проверено 26 января 2011 года . CS1 maint: обескураженный параметр ( ссылка )
  52. ^ «Unreal Engine 4 - Обзор рендеринга» . Эпические игры . Проверено 6 июня 2015 года . CS1 maint: обескураженный параметр ( ссылка )
  53. ^ "Vision Engine 8.2 приносит кроссплатформенность 3D-технологий" . 10 октября 2011 года Архивировано из оригинального 16 -го ноября 2012 года . Проверено 8 апреля 2015 года . CS1 maint: обескураженный параметр ( ссылка )
  54. ^ «Графические технологии Fallout 4» . Bethesda Softworks . 4 ноября 2015 года . Проверено 24 апреля 2020 года . CS1 maint: обескураженный параметр ( ссылка )
  55. ^ Сайто, Такафуми; Токичиро Такахаши (1990). «Понятная визуализация трехмерных фигур». ACM SIGGRAPH Компьютерная графика . 24 (4): 197–206. DOI : 10.1145 / 97880.97901 .
  56. ^ Geldreich, Рич. «Презентация GDC 2004 по отложенному освещению и затемнению» .
  57. ^ «Отложенное затенение» (PDF) . NVIDIA . Проверено 28 марта 2007 года . CS1 maint: обескураженный параметр ( ссылка )
  58. ^ Клинт, Джош. «Отложенный рендеринг в Leadwerks Engine» (PDF) . Leadwerks. Архивировано из оригинального (PDF) 9 декабря 2008 года. Цитировать журнал требует |journal=( помощь )CS1 maint: обескураженный параметр ( ссылка )