Краткий экскурс в V-Ray

Cтатья готовилась мной для мега проекта, который на данный момент немного заморожен. Она может быть интересна дизайнерам и 3д-модельерам.

Что такое V-Ray?

V-Ray — система рендеринга (визуализации изображения), разработанная компанией Chaos Group (Болгария). V-Ray работает как плагин для Autodesk 3ds Max , TrueSpace7.5, SketchUp, Cinema 4D, Rhino, Autodesk Maya (в бета-версии с 2005 года), как отдельный модуль Standalone, Blender (через Standalone — модуль).

V-Ray отлично себя зарекомендовал в архитектурной визуализации, оживленно используется в кинопроизводстве и на телевидении, благодаря хорошему соотношению скорости просчета к качеству изображения и высоким возможностям.

Популярность V-Ray имеет более чем веские причины: V-Ray использует в расчетах передовые вычислительные методы (построен исключительно на основе метода Монте-Карло), обладает целым рядом интересных инновационных технологических решений, обеспечивающих ему преимущество в качестве и скорости расчетов.

Основные принципы V-Ray

Главной задачей любой программы рендеринга является вычисление цвета и освещенности произвольной точки трехмерной сцены. Вычислительные методы компьютерной графики достигли уровня фотореалистичности синтезированных на компьютере изображений.

Первое, что научились считать — это освещенность объектов от источников света, находящихся в прямой видимости, когда объект и источник можно соединить прямой линией.

Вторая компонента освещенности объектов определяется зеркальным или близким к зеркальным отражением от окружения и прозрачностью самого объекта. Был разработан метод для ее вычисления — метод трассировки лучей (ray tracing method). Этот метод отслеживает траектории лучей света от камеры до первой поверхности пересечения. Далее, в зависимости от прозрачности или отражающих свойств поверхности, определяется направление дальнейшего распространения луча.

Третья компонента освещенности объекта рассчитывает многократные диффузные переотражения света окружающими объектами. Сейчас популярны два алгоритма расчета этой компоненты — метод фотонных карт и метод Монте-Карло. Метод фотонных карт создает для каждой поверхности объекта сцены базу данных. В данной базе хранится информация о столкновениях с поверхностью «фотонов»: направление, координаты столкновения, энергия фотона (под фотоном понимается порция энергии освещения, распространяющейся в некотором направлении от данного источника света). Рендеры, использующие данный метод, производят расчет освещенности за два прохода: на первом выполняется трассировка фотонов от источников света до поверхностей, а также для них создаются фотонные карты. На втором же проходе осуществляется обратная трассировка лучей от камеры.

Четвертая компонента освещенности рассчитывает световые эффекты, возникающие в результате фокусировки из-за отражений или преломлений лучей света в некоторой области поверхности (т.н. caustic-эффекты освещения). Пример «из жизни» — линза, фокусирующая солнечный свет на поверхности объекта. Расчет может выполняться методом фотонных карт (при этом понадобится локальная фотонная карта достаточно высокой плотности). По этой причине такие фотонные карты создаются при возникновении необходимости.

Резюмируя данное можно сказать, что современный уровень развития вычислительных методов компьютерной графики позволяет рассчитывать освещенность произвольной точки трехмерной сцены как сумму четырех компонент: прямой освещенности, зеркальных преломлений и отражений, вторичных диффузных отражений и caustic-эффектов освещения.

Следует отметить, что в настоящее время метод Монте-Карло является стандартом «де-факто» для рендеров трехмерной компьютерной графики и используется очень широко — практически во всех ведущих пакетах. Единственный его недостаток состоит в том, что для увеличения качества расчета освещенности потребуется увеличить объем вычислений. Недостаток качества проявляется в рендере как «шум» — видимые на изображении световые пятна, зернистость и визуальные артефакты.

Основные же преимущества фотонных карт — скорость и корректность расчетов. Недостатки — большие требованиямя к памяти и трудностями в обработке стыков, границ и углов поверхностей. На практике сейчас используется комбинация метода Монте-Карло и фотонных карт.

Программное ядро V-Ray построено на методе Монте-Карло, однако использует также и метод фотонных карт, но не как альтернативу методу Монте-Карло. Предложенное сочетание метода Монте-Карло и фотонных карт обеспечивает как точность, так и более высокую скорость расчетов по сравнению с другими рендер-программами.

Итак, в V-Ray  присутствует несколько алгоритмов просчета глобального освещения (Global Illumination):

  • Light Cache,
  • Photon Map (фотонная карта),
  • Irradiance Map,
  • Brute Force (DMC),

имеется возможность выбора различных алгоритмов для просчета первичного и вторичного отскоков глобального освещения. Разберем пример одного из алгоритмов.

Фотонные карты

Идея фотонных карт проста: от источника света во всех направлениях излучаются порции энергии света (фотоны). Каждое направление отслеживается (трассируется) до столкновения с ближайшим объектом сцены и моделируется «взаимодействие» фотона с поверхностью. Результат записывается в базу данных, которая и является фотонной картой. Взаимодействие может выглядеть одним из способов: а) фотон поглощается поверхностью, б) отражается от нее зеркально или диффузно, в) проходит через прозрачную поверхность в соответствии с законом преломления или диффузно. Какое именно событие произойдет, зависит от свойств поверхности (отражательные, диффузные и прозрачные свойства и коэффициенты материалов), и от результата «русской рулетки». Русская рулетка — генератор случайных чисел. Русская рулетка использует сумму коэффициентов зеркального отражения, диффузного отражения, и коэффициента прозрачности. Сумма этих коэффициентов не должна превышать единицы.

Суть рулетки — чем больше значение какого-либо коэффициента, тем больше вероятность, что произойдет соответствующее ему событие (отражение, поглощение, или преломление).

После взаимодействия фотон трассируется по новому направлению до следующей поверхности, и все снова повторяется. По достижении заданной глубины (количества взаимодействий фотона с объектами), его отслеживание прекращается. В фотонных картах поверхностей, с которыми взаимодействовал фотон, сохраняется информация об энергии фотона, координатах столкновения, и его направлении прилета.

Для определения освещенности конкретной точки используется сбор некоторого количества фотонов, ближайших к координатам данной точки, и суммирование их энергий с определенными весовыми коэффициентами. Чем больше фотонов собирается, тем точнее оценка освещенности точки. Однако если плотность фотонной карты мала, сбор большого количества фотонов приведет к размыванию освещенности. По умолчанию V-Ray сам ищет оптимальный радиус сбора фотонов.

Хотя фотонная карта дает физически точную картину распределения света в сцене, для достижения точных результатов требуется высокая плотность фотонных карт, то есть — испускание большого их количества.


Пример фотонной карты.

V-Ray, как и остальные рендер-программы, предъявляет ряд требований к геометрии сцены. Геометрия должна быть «правильной», а именно — должны быть соблюдены простые требования правильного моделирования. Геометрия не должна содержать тонких длинных полигонов (полос) и стыки поверхностей должны быть без зазоров.

Лучше, если отдельная модель представлена отдельным объектом. К примеру, для моделировании комнаты образующую коробку лучше сделать одним объектом, а не состоящей из шести разных объектов-боксов. При моделировании надо использовать объемные «строительные» блоки. Хорошее моделирование — залог беспроблемного и быстрого расчета в нем. Поэтому анализ и исправление геометрии сцены при необходимости — первое, что следует сделать при подготовке к рендеру.

Важным является выбор единиц измерения в сцене: в V-Ray удобнее работать с миллиметрами. Используемую систему единиц всегда можно поменять на другую. Только может оказаться, что значительную часть работы придется пересчитывать.

Необходимо также придерживаться соответствия размеров объектов сцены размерам реальных объектов, что продиктовано использованием закона затухания интенсивности освещения с расстоянием в любой рендер-программе, рассчитывающей глобальное освещение.


Пример работы с V-Ray.


Пример работы с V-Ray: сцена с настроенным прямым освещением.


Пример фотонных карт.

Пример финального рендера.


V-Ray очень интересный и богатый возможностями рендер. На что он способен можно понять из следующих ниже примеров:


Comments are closed.