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

Поделись знанием:
Перейти к: навигация, поиск

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

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

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

Другим довольно важным недостатком отложенного рендеринга является несовместимость со сглаживанием. Так как стадия освещения отделена от стадии геометрии, то аппаратный анти-алиасинг не приводит к правильным результатам. Хотя первый проход, используемый при рендеринге базовых свойств (диффузная обработка, карта высот), может использовать сглаживание, к полному освещению сглаживание неприменимо. Одной из типичных методик для преодоления этого ограничения является метод выделения границ (en:edge detection) финального изображения и затем применения размытия к граням (границам)[2]. Однако этот недостаток был актуален для Direct3D 9. В более поздних версиях появилась возможность читать и писать отдельные семплы MSAA-текстур (Render targets — в 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 не принимала участие, являются серия игр S.T.A.L.K.E.R. разработки GSC Game World, Dead Space разработки Electronic Arts[3] и Tabula Rasa разработки NCSoft[4]. Технология отложенного освещения и затенения используется в игровом движке CryEngine 3 разработки Crytek.



История

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

Напишите отзыв о статье "Отложенное освещение и затенение"

Примечания

  1. [download.nvidia.com/developer/SDK/Individual_Samples/featured_samples.html NVIDIA SDK 9.51 - Featured Code Samples]. NVIDIA (17 января 2007). Проверено 28 марта 2007. [www.webcitation.org/66VtDkuKt Архивировано из первоисточника 29 марта 2012].
  2. [www710.univ-lyon1.fr/~jciehl/Public/educ/GAMA/2007/Deferred_Shading_Tutorial_SBGAMES2005.pdf Deferred shading tutorial]. Pontifical Catholic University of Rio de Janeiro. Проверено 14 февраля 2008. [www.webcitation.org/66VtFZDtm Архивировано из первоисточника 29 марта 2012].
  3. [nzone.com/object/nzone_deadspace_feature.html Dead Space by Electronic Arts]. NVIDIA. Проверено 14 февраля 2008. [www.webcitation.org/66VtG9m9x Архивировано из первоисточника 29 марта 2012].
  4. [developer.nvidia.com/GPUGems3/gpugems3_ch19.html Deferred shading in Tabula Rasa]. NVIDIA. Проверено 14 февраля 2008. [www.webcitation.org/66VtLCjon Архивировано из первоисточника 29 марта 2012].
  5. 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 (ACM Press) 22 (4): 21–30.
  6. [download.nvidia.com/developer/presentations/2004/6800_Leagues/6800_Leagues_Deferred_Shading.pdf Deferred Shading] (PDF). NVIDIA. Проверено 28 марта 2007. [www.webcitation.org/66VtLibCl Архивировано из первоисточника 29 марта 2012].
  7. Klint, Josh. «[www.leadwerks.com/files/Deferred_Rendering_in_Leadwerks_Engine.pdf Deferred Rendering in Leadwerks Engine]».

Ссылки

  • Каталин Зима. [ru.ziggyware.com/readarticle.php?article_id=16 Отложенное затенение в XNA Реализация визуализации с отложенным затенением в XNA GS 2.0]. Ziggyware (27 декабря 2007 года). — Статья, детально описывающая метод отложенного освещения и затенения, содержащая пояснения и примеры программного кода. Проверено 1 июля 2009. [www.webcitation.org/67m6weYoz Архивировано из первоисточника 19 мая 2012].
  • Боресков Алексей Викторович. [www.steps3d.narod.ru/tutorials/ds-tutorial.html Deferred Shading]. steps3D (2008). Проверено 1 апреля 2009. [www.webcitation.org/66VtMVsqG Архивировано из первоисточника 29 марта 2012].
  • [www.gamedev.ru/terms/DeferredShading Deferred Shading (Отложенное освещение)]. GameDev.ru (11 мая 2008 года). — Короткое определение алгоритма, его преимущества, недостатки и особенности. Проверено 1 июля 2009. [www.webcitation.org/66VtP0Uqe Архивировано из первоисточника 29 марта 2012].
  • Rama Hoeztlein. [www.rchoetzlein.com/eng/graphics/shading.htm Deferred Shading for Multiple Real-Time Soft Shadows] (англ.). rchoetzlein.com. Проверено 1 июля 2009. [www.webcitation.org/66VtPfxrl Архивировано из первоисточника 29 марта 2012].

Отрывок, характеризующий Отложенное освещение и затенение



В противоположность Кутузову, в то же время, в событии еще более важнейшем, чем отступление армии без боя, в оставлении Москвы и сожжении ее, Растопчин, представляющийся нам руководителем этого события, действовал совершенно иначе.
Событие это – оставление Москвы и сожжение ее – было так же неизбежно, как и отступление войск без боя за Москву после Бородинского сражения.
Каждый русский человек, не на основании умозаключений, а на основании того чувства, которое лежит в нас и лежало в наших отцах, мог бы предсказать то, что совершилось.
Начиная от Смоленска, во всех городах и деревнях русской земли, без участия графа Растопчина и его афиш, происходило то же самое, что произошло в Москве. Народ с беспечностью ждал неприятеля, не бунтовал, не волновался, никого не раздирал на куски, а спокойно ждал своей судьбы, чувствуя в себе силы в самую трудную минуту найти то, что должно было сделать. И как только неприятель подходил, богатейшие элементы населения уходили, оставляя свое имущество; беднейшие оставались и зажигали и истребляли то, что осталось.
Сознание того, что это так будет, и всегда так будет, лежало и лежит в душе русского человека. И сознание это и, более того, предчувствие того, что Москва будет взята, лежало в русском московском обществе 12 го года. Те, которые стали выезжать из Москвы еще в июле и начале августа, показали, что они ждали этого. Те, которые выезжали с тем, что они могли захватить, оставляя дома и половину имущества, действовали так вследствие того скрытого (latent) патриотизма, который выражается не фразами, не убийством детей для спасения отечества и т. п. неестественными действиями, а который выражается незаметно, просто, органически и потому производит всегда самые сильные результаты.
«Стыдно бежать от опасности; только трусы бегут из Москвы», – говорили им. Растопчин в своих афишках внушал им, что уезжать из Москвы было позорно. Им совестно было получать наименование трусов, совестно было ехать, но они все таки ехали, зная, что так надо было. Зачем они ехали? Нельзя предположить, чтобы Растопчин напугал их ужасами, которые производил Наполеон в покоренных землях. Уезжали, и первые уехали богатые, образованные люди, знавшие очень хорошо, что Вена и Берлин остались целы и что там, во время занятия их Наполеоном, жители весело проводили время с обворожительными французами, которых так любили тогда русские мужчины и в особенности дамы.
Они ехали потому, что для русских людей не могло быть вопроса: хорошо ли или дурно будет под управлением французов в Москве. Под управлением французов нельзя было быть: это было хуже всего. Они уезжали и до Бородинского сражения, и еще быстрее после Бородинского сражения, невзирая на воззвания к защите, несмотря на заявления главнокомандующего Москвы о намерении его поднять Иверскую и идти драться, и на воздушные шары, которые должны были погубить французов, и несмотря на весь тот вздор, о котором нисал Растопчин в своих афишах. Они знали, что войско должно драться, и что ежели оно не может, то с барышнями и дворовыми людьми нельзя идти на Три Горы воевать с Наполеоном, а что надо уезжать, как ни жалко оставлять на погибель свое имущество. Они уезжали и не думали о величественном значении этой громадной, богатой столицы, оставленной жителями и, очевидно, сожженной (большой покинутый деревянный город необходимо должен был сгореть); они уезжали каждый для себя, а вместе с тем только вследствие того, что они уехали, и совершилось то величественное событие, которое навсегда останется лучшей славой русского народа. Та барыня, которая еще в июне месяце с своими арапами и шутихами поднималась из Москвы в саратовскую деревню, с смутным сознанием того, что она Бонапарту не слуга, и со страхом, чтобы ее не остановили по приказанию графа Растопчина, делала просто и истинно то великое дело, которое спасло Россию. Граф же Растопчин, который то стыдил тех, которые уезжали, то вывозил присутственные места, то выдавал никуда не годное оружие пьяному сброду, то поднимал образа, то запрещал Августину вывозить мощи и иконы, то захватывал все частные подводы, бывшие в Москве, то на ста тридцати шести подводах увозил делаемый Леппихом воздушный шар, то намекал на то, что он сожжет Москву, то рассказывал, как он сжег свой дом и написал прокламацию французам, где торжественно упрекал их, что они разорили его детский приют; то принимал славу сожжения Москвы, то отрекался от нее, то приказывал народу ловить всех шпионов и приводить к нему, то упрекал за это народ, то высылал всех французов из Москвы, то оставлял в городе г жу Обер Шальме, составлявшую центр всего французского московского населения, а без особой вины приказывал схватить и увезти в ссылку старого почтенного почт директора Ключарева; то сбирал народ на Три Горы, чтобы драться с французами, то, чтобы отделаться от этого народа, отдавал ему на убийство человека и сам уезжал в задние ворота; то говорил, что он не переживет несчастия Москвы, то писал в альбомы по французски стихи о своем участии в этом деле, – этот человек не понимал значения совершающегося события, а хотел только что то сделать сам, удивить кого то, что то совершить патриотически геройское и, как мальчик, резвился над величавым и неизбежным событием оставления и сожжения Москвы и старался своей маленькой рукой то поощрять, то задерживать течение громадного, уносившего его вместе с собой, народного потока.


Элен, возвратившись вместе с двором из Вильны в Петербург, находилась в затруднительном положении.
В Петербурге Элен пользовалась особым покровительством вельможи, занимавшего одну из высших должностей в государстве. В Вильне же она сблизилась с молодым иностранным принцем. Когда она возвратилась в Петербург, принц и вельможа были оба в Петербурге, оба заявляли свои права, и для Элен представилась новая еще в ее карьере задача: сохранить свою близость отношений с обоими, не оскорбив ни одного.
То, что показалось бы трудным и даже невозможным для другой женщины, ни разу не заставило задуматься графиню Безухову, недаром, видно, пользовавшуюся репутацией умнейшей женщины. Ежели бы она стала скрывать свои поступки, выпутываться хитростью из неловкого положения, она бы этим самым испортила свое дело, сознав себя виноватою; но Элен, напротив, сразу, как истинно великий человек, который может все то, что хочет, поставила себя в положение правоты, в которую она искренно верила, а всех других в положение виноватости.