Освещение VRay: история появления и основные принципы функционирования

Интерьер помещения в стиле «Лофт», нарисованный с помощью компьютерной графики
Интерьер помещения в стиле «Лофт», нарисованный с помощью компьютерной графики

Взгляните на фото выше. Возможно, кто-то сейчас сильно удивится, но перед вами вовсе не фотография, как может показаться с первого взгляда, а нарисованное изображение. Как получилось добиться такой реалистичности? Этому-то и будет посвящена наша сегодняшняя статья.

Если вы только начали осваивать мир 3D моделирования, то материал может оказаться для вас полезным. Остальным многое может быть не совсем понятно, но для общего развития прочесть статью можно. Итак, как удалось художнику сделать такое освещение интерьера vray.

Что такое VRay

Простейшие примитивы программы без освещения
Простейшие примитивы программы без освещения

Наверняка вы уже знаете такие программы для 3D моделлирования, как 3Ds Max, Maya, Blender и им подобные. По освещению в первой из перечисленных, мы даже как-то выпустили небольшой урок.

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

Те же примитивы с текстурами и освещением VRay
Те же примитивы с текстурами и освещением VRay

Для того чтобы сделать изображение по настоящему реалистичным используют сторонние рендер-программы (визуализаторы), сред них такие как: finalRender, mentalRay, brasil r/s и герой нашего обзора – 3ds max VRay. VRay является самой популярной программой, даже можно сказать, что ее популярности хватит на все остальные визуализаторы вместе взятые. И что самое интересное, ядро программы было разработано несколькими людьми.

Данный рендер остается на пике популярности благодаря тому, что в его вычислениях применяются самые передовые методы. Его основу полностью составляет метод Монте-Карло. Помимо этого у данной программы есть дополнительные технические преимущества, дающие ему более скоростные расчеты, по сравнению с соперниками.

Принципы работы визуализатора

VRay – настройка освещения
VRay – настройка освещения

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

Суть любой программы для рендера – это вычисление параметров света, цвета и освещенности в произвольной точке на трехмерной сцене. Задача на самом деле не из простых и требует огромной вычислительной мощности современных процессоров и видеокарт. Поэтому все то, что мы видим в 3D графике сегодня – это результат долгого эволюционного развития.

vray освещение интерьера: создание 3D сцены
vray освещение интерьера: создание 3D сцены

Но давайте обо всем по порядку.

Освещенность от источников света, находящихся в прямой видимости – это первое, что научились вычислять при визуализации.

  • Суть проста свет по прямой линии падает на какой-то объект на построенной сцене. Данная модель расчетов позволила создать затенение и подсветку по Фонгу, что позволило выполнять вычисление сглаживания цветов полигонов поверхности и выполнять для нее зеркальную подсветку.
Результат подсветки по Фонгу
Результат подсветки по Фонгу
  • В последствии данная раскраска получила несколько модификаций: Торрент, Ламбер, Блинн и прочие. Все они до сегодняшнего дня продолжают быть основой при прямолинейном вычислении, хотя и получили некоторые доработки. А именно:
  1. Учет размеров источника света в пространстве, что позволило получить более мягкие края для теней у освещаемых объектов;
  2. Учет расстояния от источника света до освещаемого объекта, что позволило точно определять затухание света на его пути

Для справки! При корректировке используется закон квадратичного затухания интенсивности распространяющегося луча света от расстояния.

Следующее, что покорилось для программ визуализаторов – это зеркальное отражение объекта на сцене от окружающих его предметов, а также уровень его прозрачности:

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

Совет! Подобные вычисления уже очень сильно нагружают компьютерное железо. Если вы решили попрактиковаться в создании сцен с таким освещением, то в вашей системе должен стоять как минимум хороший четырехъядерный процессор, с нормальной частотой и поддержкой AVX инструкций. А в идеале – мощный многопоточный монстр, какой-нибудь i 7 или Ryzen 5 или 7.

Принцип работы метода трассировки лучей
Принцип работы метода трассировки лучей
  • Однако для первых методов трассировки лучей было характерно более жесткое изображение – у предметов были слишком четкие тени и цвета, что не соответствовало представлению о естественном освещении.
  • Для решения проблемы был разработан другой метод, получивший название DRT (distribution ray tracing). Его суть состоит в том, что при каждом пересечении отслеживаемого луча по его траектории с различными поверхностями, из каждой такой точки дальше распространяется не один, а несколько лучей. Этот сложнейший процесс чем-то схож с цепной реакцией.
  • DRT позволил получить размытые отражения предметов и их преломления, однако объем физических расчетов возрос многократно. Этот метод заложен в VRay в параметре Glossy – свойствах отражения и преломления материалов.
vray освещение - интерьер
vray освещение — интерьер

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

  • Самым первым способом такого расчета стал метод radiosity. Сегодня он так же применяется, но в большинстве случаев уступил место более продвинутым методам Монте-Карло и расчета фотонных карт.
  • Метод фотонных карт, для каждого объекта на сцене создает отдельную базу данных, в которой сохраняется каждое столкновение поверхности с виртуальными фотонами – записываются направление и энергия фотона, а также координаты столкновения. В данном случае под фотоном понимается некоторое количество осветительной энергии, распространяющейся от источника света в определенном направлении.
  • Полученные данные используются для оценки насколько сильно освещен объект в результате диффузного рассеивания света на окружающих поверхностях.
Фотонная карта, генерируемая вначале рендера
Фотонная карта, генерируемая вначале рендера

Интересно знать! Все рендеры, использующие для вычислений метод фотонных карт, выполняют расчеты в два этапа. На первом выполняется трассировка фотонов от источника света до всех поверхностей в пределах сцены, и составляются фотонные карты. На втором, трассировка рассчитывается в обратном направлении от камеры, а полученные ранее карты используются для вычисления параметров диффузной освещенности.

Последняя составляющая 3D освещения – это расчет световых эффектов, возникающих в результате всевозможных преломлений и отражений (фокусировки и расфокусировки) от разных поверхностей.

Каустик эффект на примере прозрачного стеклянного яблока
Каустик эффект на примере прозрачного стеклянного яблока

Данные эффекты получили название caustic-эффекты. Банальным примером из жизни может послужить простая линза, которая способна проходящие через нее лучи направить в одну точку.

Для расчета подобных эффектов может применяться фотонная карта, но требуется локальная карта с очень высокой плотностью, поэтому они создаются только в случаях крайней необходимости.

Просто о сложном

Теперь давайте немного помучаем наш мозг, подытоживая все вышесказанное:

  • Освещенность произвольной точки современной 3d сцены – есть не что иное, как сумма четырех названных компонент. Для того чтобы выполнить полный и точный расчет освещенности точки сцены, программе необходимо вычислить все лучи света, проходящие через нее во всех направлениях.
  • В связи с этим появляется необходимость интегрирования освещенности по полусфере, которая окружает данную точку, если точка принадлежит непрозрачной поверхности.
  • Если же поверхность будет пропускать через себя свет, то интегрируется освещение по сфере.
  • Для того чтобы в программе создать освещение, строятся сложнейшие интегралы, описывающие сразу все компоненты, а конкретнее: функции источников освещенности, свойства отражения и преломления, в том числе и диффузного.
  • Все функции касающиеся отражений и преломлений часто объединяют в одну группу, которая называется BRDF (двунаправленная функция распределения отражений и преломлений). Данные интегралы не имеют точного аналитического решения, поэтому для их вычисления используют разные методы.
Вычисление интегралов методом Монте-Карло
Вычисление интегралов методом Монте-Карло

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

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

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

Интересно знать! Если вы хотите увеличить качество изображения в два раза, то потребуется задействовать сэмплов в 4 раза больше. На практике, низкое качество расчетов выливается в виде различных шумов и артефактов.

Процесс визуализации простейшей сцены
Процесс визуализации простейшей сцены

Метод использования фотонных карт, фактически разработан, как альтернатива методу Монте-Карло при расчете диффузной освещенности (таким способом используется в mental ray). Такое решение оправдано, так как позволяет увеличить скорость и корректность расчетов, однако имеются и недостатки, связанные с большими требованиями к оперативной памяти системы и трудности отображения углов, стыков и границ освещаемых поверхностей.

Ядро программы VRay имеет в основе только метод Монте-Карло, а фотонные карты использует, как дополнение, в отличие от прочих визуализаторов.

Более точно это происходит так:

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

В устоявшейся терминологии первый отскок луча света (переотражение) называется First diffuse bounces, а остальные – secondary bounces (вторичные отскоки).

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

Основные параметры управления VRay

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

Практическую сторону использования VRay мы рассмотрим в одной из будущих статей, когда ваш покорный слуга обзаведется нормальным, мощным компьютером, подходящим для этих целей. Тогда же будет рассмотрено и компьютерное железо, оптимальное для подобных решений.

VRay: QMC sampler

Начнем с параметров, которые задают свойства метода Монте-Карло. Расположены они на вкладке QMC sampler.

Меню настроек параметров метода Монте-Карло
Меню настроек параметров метода Монте-Карло

Выставляемые здесь параметры влияют на то, какие сэмплы будут использоваться для всех вычислений.

Обо всем по порядку:

  • Lock to pixels – данный пункт используется для устранения в анимации мигания пикселов. Если галочка напротив пункта установлена, то создается жесткая привязка для пикселов, чтобы их значения не изменялись на соседних кадрах. Из-за того, что метод Монте-Карло, в определенной мере является случайным, получаемые с его помощью значения могут немного отличаться. Однако если вам требуется обработать изображение в статике (неподвижное), то данный параметр можно выключить.
  • Adaptation by effects on final result или importance sampling — постараемся описать принцип работы, как можно проще. Дело в том, что сэмплы вычисляются не только в областях сферы и полусферы над рассчитываемой точкой. Они могут иметь и геометрическое представление, в виде лучей сэмплирования, испускаемых из определенной точки. Данный метод применяет принцип значимости сэмпла для конечного результата.
  • Если расчетный сэмпл имеет малое или вовсе нулевое значение, то расчеты в этом направлении прекращаются, и наоборот. Пункт Amount задает программе интенсивность использования данного метода. Так, если его значение будет равно 1 (максимальное, стоит по умолчанию), то проверке подвергнется каждый сэмпл, а если нулю – отбор отключается полностью.

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

Результат качественного рендера сцены
Результат качественного рендера сцены
  • Adaptation by sample values или early termination (раннее уничтожение) – следующий пункт, благодаря которому VRay может анализировать величину сэмплов и прерывать процесс, если эти величины одинаковы или близки по значению. Смысл прост – если значения не отличаются, то трассировка прерывается и используются усредненные значения, высчитываемые из тех, что уже получены. Если разница в значениях велика, то для расчетов задействуется большее количество сэмплов.
  • Параметр Amount (по умолчанию 0,85) влияет на интенсивность использования метода: 0 – метод выключен; 1 – используется минимальное количество лучей. Для большего качества данный параметр должен быть выключен, но взамен вы получите увеличенное время рендера сцены.
  • Min samples – этот подпункт отвечает за минимально возможное количество задействованных сэмплов.
  • Noise threshold – это параметр, который определит достаточно ли качество выходящего изображения, путем сравнивания получающихся результатов с самими собой. Если разница превышает указанное значение, то задействуются дополнительные сэмплы, и наоборот – вычисления прекращаются. Этот параметр, даже судя только по названию, непосредственно влияет на качество картинки. Увеличение значения добавляет на изображении шумов и снижает скорость визуализации.

Все описанные параметры позволяют VRay принимать решения о качестве и количестве задействуемых сэмплов, что сильно сказывается на итоговом качестве.

Изображение без шумов
Изображение без шумов

VRay Indirect Illumination (GI)

Меню настроек глобального освещения
Меню настроек глобального освещения

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

Основные настройки находятся во вкладке Indirect Illumination, Caustic, System и прочих. Давайте вкратце разберем непрямое диффузное освещение и его настройки.

Основные настройки

И тут VRay нам предлагает выбрать из трех доступных способа расчета: Direct computation, Irradiance map, Global photon map (фотонные карты). И сразу же бросается в глаза доступная возможность разделения диффузного отражения на два – первый и последующие отскоки.

Для чего это делается, мы уже говорили выше. Для расчетов диффузных отскоков могут быть использованы четыре сочетания указанных методов.

Настройка способов просчета отскоков
Настройка способов просчета отскоков
  • Direct Compilation (DC) или Brute Force (грубая сила) – задействует для своих расчетов метод Монте-Карло. Пункт Subdivs указывает количество задействованных сэмплов.
  • Первое сочетание – это direct + direct. Его применение обеспечивает равномерное распределение в сцене полутеней, при этом отсутствует размытие. Однако при этом сцена рендерится очень долго.
  • К примеру, если выставить значение subdivs в 50 для первого и последующих отскоков, то количество сэмплов у одной точки будет равно 2500, то есть количество точек станет таким же, а у каждой из них будет своих 2500 сэмплов, и так далее пока не сработают ограничения QMC. Вы только представьте себе объем этого потока данных, а ведь система должна их все просчитать.
  • У VRay количество отскоков по умолчанию установлено на 1, что существенно сокращает объем требуемых расчетов.
  • У данного метода есть еще один существенный недостаток, из-за чего он применяется крайне редко. Из-за того, что вычисления выполняются для каждой отдельной точки, у изображения появляется шум. Избавиться от него можно только увеличением параметра subdivs, но, как вы уже понимаете, сразу возрастет время визуализации.
Настройка параметра Subdivs
Настройка параметра Subdivs

Следующим возможным сочетанием способов идет dc+photon map. При этом трассировка лучей выполняется только при первом отскоке. Дальнейшая освещенность строится, исходя из данных фотонных карт. Такой способ рендера происходит намного быстрее и даже точнее, если плотности фотонных карт достаточно.

Irradiance map (световая карта)

Настройка световой карты
Настройка световой карты

Данный метод существенно отличается от предыдущего, так как выполняет расчет не всех точек на изображении, а только некоторых. Дальнейшее построение картинки высчитывается методом интерполяции от найденных точек, создавая некий световой градиент. Точки определяются в заданном радиусе – его размер зависит от параметра Interp, что позволяет выполнять расчет только там, где это требуется в текущий момент.

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

Данные параметры выставляются в пунктах Min rate и Max rate. Вводимые значения являются степенью двойки, то есть -2 будет соответствовать ¼, а 0 – единице.

Расчет выполняется поэтапно, при этом качество изображения постоянно растет:

  • Следующие пункты, которые нас интересуют – это Clr.thresh, Nrml.thresh и Dist. thresh. Здесь задаются значения цвета (освещенности): пороговое, нормальное и для пространственного положения, соответственно.
  • По сути, это и есть наша световая карта.
  • Во время финальной визуализации все данные берутся из составленной карты в максимальном качестве, а остальные высчитываются интерполяцией.
  • На этом же этапе могут быть задействованы и дополнительные точки. Активизировать данный процесс можно в установках суперсэмплинга, который имеет свои собственные значения для освещенности пикселов, иногда отличающиеся от данных из световой карты.
  • Если эти значения меньше, то запускается поиск дополнительных точек. Отсюда можно сделать вывод, что на этапе настройки световой карты, настройки суперсэмплинга можно упрощать, чтобы установить нужное качество изображения. Делается это до запуска финального рендера.
  • Именно поэтому сочетание методов irradiance map + photon map считается самой гибкой при настройке суперсэмплинга.
Примет рендера трехмерной обстановки
Примет рендера трехмерной обстановки

Метод вычислений со световой картой выполняется намного быстрее, чем DC, при этом не теряется качество изображения. Этот расчет одна из самых интересных находок программы Vray. Mental Ray также имеет методы вычисления со схожими качественными результатами, однако он выполняет вычисления без расчета изменения геометрии и цвета, и для того чтобы сравняться с VRay приходится увеличивать количество точек, что неизбежно сказывается на скорости рендера.

Irradiance map + photon map – это самый быстрый и качественный метод расчета освещенности в сцене, и именно его используют в подавляющем большинстве случаев. Однако бывают ситуации, когда его применение становится нерациональным.

Например, при расчете ночного освещения, где недостаточно фотонов, или если освещаемые материалы не имеют диффузного освещения. Тогда расчет становится бесконечным, не давая никаких результатов. В этих ситуациях лучше применять последнее сочетание — Irradiance map + DC.

Подведем краткий итог. Статья получилась достаточно легкой, так как мы старались не перегружать материал терминологией и тонкостями, но пока процесс работы с VRay не раскрыт. Для настройки освещения экстерьера vray или прочих сцен этого недостаточно, но оно и не удивительно, так как люди изучают свойства подобных программ годами.

Для большего понимания темы советуем просмотреть видео. Напоследок добавим, что практическое использование VRay будет подробнее расписано в следующей статье по данной теме, которая непременно состоится в будущем.

Добавить комментарий

Ваш e-mail не будет опубликован.

Яндекс.Метрика