Parallax occlusion mapping (сокращённо POM) — программная техника (методика) в трёхмерной компьютерной графике, усовершенствованный вариант техники «parallax mapping». Parallax occlusion mapping используется для процедурного создания трёхмерного описания текстурированной поверхности с использованием карт смещения (en:Displacement mapping) вместо непосредственного генерирования новой геометрии.[1] Методику «Parallax occlusion mapping» условно можно назвать «2.5D», так как она позволяет добавлять трёхмерную сложность в текстуры, не создавая реальные трёхмерные графические структуры. В отличие от более простых методик рельефного текстурирования вроде bump mapping, normal mapping или parallax mapping, данная техника позволяет корректное определение перспективы и самозатенение в реальном времени, не требуя исполнения проходов рендеринга графического процессора для создания такого же эффекта с геометрическими вычислениями.[2]

Реализация алгоритма Parallax occlusion mapping в бенчмарке 3DMark Vantage 2008 года. Данное изображение построено при помощи двух полигонов (треугольников), расположенных на одной плоскости. Все детали — горы, террасы, низины, водоёмы, искусственные сооружения, источники света и тени — реализованы при помощи POM в пиксельном шейдере.

История создания и использование править

Первая работа, посвященная данной методике, появилась в 2004 году на «ShaderX3», её авторами были Зоя Броули (англ. Zoe Brawley) и Наталия Татарчук (англ. Natalya Tatarchuk).[1] Наталия Татарчук провела презентацию технологии на мероприятии SIGGRAPH 2005, которое проводилось в Лос-Анджелесе в конце лета 2005 года.[3] Далее техника «Parallax occlusion mapping» использовалась компанией ATI в демонстрации «Toy Shop Demo» для презентации возможностей третьей версии шейдерной модели в новейшей на то время видеокарте Radeon X1800.[4]

Первым игровым движком, в котором использовался Parallax occlusion mapping, стал CryEngine 2 от немецкого разработчика Crytek, который впервые использовался в компьютерной ПК-игре Crysis 2007 года выпуска.[5] Также эта технология очень интенсивно используется в популярном графическом бенчмарке 3DMark Vantage от компании Futuremark.[6]

Методика «Parallax occlusion mapping» может использоваться в интерактивной компьютерной графике реального времени (графические движки для компьютерных игр и другие интерактивные приложения), для офлайн-рендеринга (редакторы трёхмерной графики) и для генерации отдельных стереоскопических изображений.[7]

Описание править

Parallax Occlusion Mapping является усовершенствованной и в то же время одной из наиболее вычислительно сложных разновидностей Parallax Mapping. «Parallax Occlusion Mapping» полностью обрабатывается и исполняется на графическом процессоре (англ. GPU) видеокарты как пиксельный шейдер. Фактически представляет собой форму локального рейтрейсинга (трассировка лучей) в пиксельном шейдере. Трассировка лучей используется для определения высот и учёта видимости текселей. Иными словами, данный метод может позволить создавать еще большую глубину рельефа при небольших затратах полигонов и применении сложной геометрии. Недостаток метода — невысокая детализация силуэтов и граней. Реализовать Parallax Occlusion Mapping возможно в рамках функционала API DirectX 9 SM3 как пиксельный шейдер, однако для получения оптимальной производительности видеокарта должна обеспечивать надлежащий уровень скорости исполнения операций ветвления в пиксельном шейдере.[5]

Примечания править

  1. 1 2 Brawley, Z., and Tatarchuk, N. 2004. Parallax Occlusion Mapping: Self-Shadowing, Perspective-Correct Bump Mapping Using Reverse Height Map Tracing. In ShaderX3: Advanced Rendering with DirectX and OpenGL, Engel, W., Ed., Charles River Media, pp. 135—154. https://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion Архивная копия от 21 февраля 2015 на Wayback Machine
  2. Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows — Tatarchuk Архивировано 8 сентября 2008 года.
  3. Sketches | Conference: SIGGRAPH 2005. Дата обращения: 8 мая 2009. Архивировано 21 февраля 2015 года.
  4. ATI Radeon X1800 Preview — TrustedReviews — TrustedReviews. Дата обращения: 8 мая 2009. Архивировано 15 января 2008 года.
  5. 1 2 Данил Гридасов. i3D-Quality — Под микроскопом — Апрель-май 2008 — DX9 vs DX10 в Crysis. iXBT.com (28 мая 2008). Дата обращения: 8 мая 2009. Архивировано из оригинала 30 мая 2013 года.
  6. Алексей Берилло. Futuremark 3DMark Vantage. iXBT.com (23 мая 2008). Дата обращения: 8 мая 2009. Архивировано из оригинала 10 декабря 2011 года.
  7. Erik Benerdal. Generating stereoscopic images with parallax occlusion mapping (англ.). Scalari.net (22 апреля 2008). Дата обращения: 8 мая 2009. Архивировано из оригинала 31 марта 2012 года.

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