Объёмные лучи

Объёмные лучи
Фотография: Пример сумеречных лучей, которые возникают во время заката
Фотография: Пример эффекта Тиндаля, когда солнечные лучи проходят через туман.
Компьютерная графика: лесная местность в анимационном фильме «Big Buck Bunny», отчётливо видно объёмные лучи.
Компьютерная графика: объёмные лучи в компьютерной игре «Crysis», которая использует игровой движок «CryEngine 2».

Объёмные лучи — программная методика (техника) в трёхмерной компьютерной графике, предназначенная для создания эффекта трёхмерных лучей света, проходящих через окружение трёхмерной сцены.[1] В реальном мире эффект трёхмерных лучей представлен так называемым оптическим эффектом Тиндаля, когда лучи света проходят через облако газа, дыма, пыли, аэрозоля или пара в затёмненном пространстве. При прохождении света через такую среду лучи света «подствечивают» частички пыли или жидкости, которые распылены в воздухе, в результате чего можно увидеть эффект «объёмных лучей». Ещё одним проявлением подобного оптического эффекта являются сумеречные и противосумеречные лучи. Программная методика объёмных лучей предназначена для моделирования всех вышеописанных оптических эффектов в трёхмерной среде. Она широко используется в кинематографе и трёхмерном моделировании и рендеринге, а также в интерактивных приложениях компьютерной графики, включая компьютерные игры.

Принцип работы

Объемное освещение требует наличия двух компонентов: теневой карты (англ. shadow map) освещаемого пространства и буфер глубины. Начиная с самой близкой к виртуальной камере плоскости, вся сцена трассируется и значения выборок (семплов) записываются в буфер ввода. Для каждого семпла проводится определение: освещается ли он светом из нужного источника света или нет; для этого используются данные из теневой карты. В итоге только освещенные семплы влияют на окончательный цвет пикселя.[2]

Для функционирования в режиме реального времени вышеописанная методика требует оптимизации. Одним из возможных оптимизационных подходов является рендеринг освещаемого объёма в намного меньшем разрешении чем то, которое используется в изначальном графическом контексте. Вследствие такого подхода создаются нежелательные эффекты алиасинга, которые могут быть устранены посредством применения фильтра размытия (англ. blur).[2]

Ещё одной оптимизационной методикой является рендеринг «неточных» эффектов. Этот алгоритм размывает светящиеся объекты в стороне от центра основного источника света. Как правило, прозрачность постепенно сокращается с каждым проходом размытия, особенно в более светящиеся сценах. Следует иметь в виду, что для работы этого алгоритма необходимо присутствие на экране источника света.[3]

Примечания

  1. David "Spunk" Grampa, Dan "Tweak Monkey" Kennedy 3D Dictionary Volumetric Lighting  (англ.). Tweak3D.net (13 декабря 2002 года). Архивировано из первоисточника 15 апреля 2012. Проверено 23 января 2010.
  2. 1 2 jim coe Volumetric Lighting in Vue 5  (англ.). Art Head Start (15 апреля 2006 года). Архивировано из первоисточника 15 апреля 2012. Проверено 23 января 2010.
  3. Dario Corno Lesson: 36  (англ.). GameDev.net. Архивировано из первоисточника 15 апреля 2012. Проверено 23 января 2010.

Внешние ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Объёмные лучи" в других словарях:

  • CryEngine 2 — Игровой движок (Список) Официальный логотип движка …   Википедия

  • 3DMark 11 — Данные в этой статье приведены по состоянию на конец ноября 2010 года. Вы можете помочь, обновив информацию в статье …   Википедия

  • Dagor Engine — Игровой движок (Список) Разработчики …   Википедия

  • Geo Mod 2 — Игровой движок (Список) Разработчик …   Википедия

  • Reality Engine — Игровой движок (Список) Официальный логотип Reality Engine SDK Разработчик …   Википедия

  • Dunia Engine — Игровой движок (Список) Официальный логотип движ …   Википедия

  • YETI engine — Игровой движок (Список) Разработчик Ubisoft Аппаратная платформа Кроссплатформенный: ПК, PlayStation 3, Xbox 360, PSP Поддерживаемая ОС Microsof …   Википедия

  • Anvil engine — Anvil (Scimitar) Игровой движок (Список) Разработчик Ubisoft Montreal Ключевые программисты Клод Лангле (технический директор «Assassin s Creed») Дэвид Чаппегн (ведущий программист движка в «Assassin s Creed II») Алан Дессюреакс (ведущий… …   Википедия

  • Glacier engine — Игровой движок (Список) Разработчик IO Interactive Аппаратная платформа ПК Xbox Xbox 360 PlayStation 2 PlayStation 3 GameCube Wii Поддержи …   Википедия

  • Illusion Engine — Игровой движок (Список) Разработчик …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»