информационно-развлекательный портал о графике и дизайне
Скачать фотошоп (актуальная и старые версии)
VRay - что это такое и как этим пользоваться: Часть 2

VRay - что это такое и как этим пользоваться: Часть 2


В первой части были рассмотрены основные принципы работы и назначение некоторых настроечных параметров VRay. А сейчас давайте посмотрим, как все это можно использовать на практике.
Сцена
Для настройки я выбрал сцену, которую можно найти в Интернете по адресу www.hdri.cgtechniques.com/~sponza/files. Выбор именно этой сцены обусловлен тремя причинами. Во-первых, сцена специально предназначена для тестирования возможностей различных рендер-программ и представлена во всех основных 3d-форматах. На том же сайте отображена обширная галерея уже выполненных рендеров этой сцены, так что есть возможность сравнить свой результат с достижениями других. Во-вторых, сцена являет собой некий промежуточный вариант - это не совсем интерьер, так же как и не полноценный экстерьер. Это внутренний дворик, наглухо ограниченный четырьмя стенами. Свет внутрь проникает сверху через довольно глубокий колодец, образованный стенами дома. В сцене есть второй этаж и область под балконами, и доступ прямому свету туда затруднен. В-третьих, сцена довольно велика - около 40 метров по длинной стороне. Оригинальная сцена создавалась в LightWave. На сайте есть ее версия, адаптированная под 3ds max с материалами, с ней и будем работать. Вот как это выглядит в scan-line рендере 3ds max:

рис. 01. Так выглядит настраиваемая сцена в скан-лайн рендере3ds max. Время рендера на Athlon XP 3200 - 14 секунд.

Материалы и геометрия
VRay, как впрочем, и другие рендер-программы, предъявляет ряд требований к геометрии сцены. Геометрия обязана быть "правильной", то есть должны быть соблюдены обычные требования правильного моделирования. Геометрия не может содержать длинных тонких полигонов (полос), а стыки поверхностей должны быть выполнены без зазоров. Наличие зазоров - главная причина просачивания света сквозь углы (появления самосвечения в углах) и стыки поверхностей. Лучше, если отдельная модель представлена отдельным объектом. Например, при моделировании комнаты образующую коробку лучше сделать одним объектом, а не состоящей из шести отдельных объектов-боксов. При моделировании нужно использовать объемные "строительные" блоки, например, если стена в реальном мире всегда имеет толщину, то и в сцене не нужно пытаться моделировать ее плоскостью, не имеющей толщины. Лично я избегаю использования булевых операций для создания оконных и дверных проемов, поскольку они часто создают неоптимальную результирующую полигонную сетку. Лучший метод моделирования, который можно порекомендовать - работа с Editable poly.
VRay не так требователен к геометрии, как программы, использующие radiosity, тем не менее, хорошее моделирование - залог беспроблемного и быстрого расчета в нем. Поэтому анализ и исправление геометрии сцены при необходимости - первое, что следует сделать при подготовке к рендеру.
Достаточно важным, хотя и некритичным моментом является выбор единиц измерения в сцене. При использовании VRay наиболее удобно работать с миллиметрами. Это обусловлено диапазоном изменения значений некоторых его параметров, а использование миллиметров увеличивает точность работы с ними. Например, минимальное значение параметра Max. density фотонной карты составляет 0.001 в выбранной системе единиц измерения. Но 0.001 метра и 0.001 мм - совсем разные вещи. Конечно, столь высокая точность Max. density для фотонной карты неактуальна, но VRay имеет множество других параметров, диапазон изменения которых также основан на выбранной системе единиц. Используемую систему единиц всегда можно поменять на другую, например, при помощи утилиты Rescale World Units 3 ds max. Вот только вполне может оказаться, что большую часть уже выполненной работы придется пересчитывать. А это часы бесполезно потраченного времени.
Следует также придерживаться принципа соответствия размеров объектов сцены размерам реальных объектов. Необходимость этого обязательного требования продиктована использованием закона затухания интенсивности освещения с расстоянием в любой современной рендер-программе, рассчитывающей Global Illumination.
Поскольку я собираюсь использовать фотонные карты, необходимо настроить материалы. Как известно, VRay рассчитывает фотонные карты только для материалов типа VrayMtl. Поэтому необходимо выполнить преобразование стандартных материалов 3ds max, которые используются в нашей сцене, в материалы типа VrayMtl. Преобразование материалов довольно тривиально, нужно только изменить тип на VrayMtl, воспроизвести диффузные свойства материалов и положить в соответствующие слоты растровые карты. Поскольку некоторые материалы в оригинале имели bump, он также настраивался и в новых материалах, с теми же количественными значениями.
Объем геометрии сцены составляет 66 454 полигона, это вполне приемлемо. Количественные показатели геометрии и материалов важны - на них расходуется память, которая не может быть в дальнейшем перераспределена для других целей, например - для фотонных карт. Чем больше памяти отводится под геометрию и материалы, тем меньше ее остается для фотонов, поскольку Windows не может адресовать больше 2 гигабайт памяти. 2 Гб - это все, что доступно и системе и запущенным приложениям. Если сцена слишком велика, рендер вообще может стать невозможным. Планирование и оптимизация размера сцены - еще один немаловажный момент подготовки к расчетам.
Для планирования следует принимать цифру приблизительно в 1.5 Гб (если вы не запустили одновременно с 3ds max еще и Photoshop, Corel Draw, WinAmp, Word и IE :).
Свет
Поскольку особенности нашей сцены требуют воспроизвести дневное освещение, я счел целесообразным использовать два источника света (ИС). Один из них имитирует солнце, второй - рассеянное освещение от небесного свода.
Для моделирования солнечного освещения подойдет любой ИС, который отвечает следующим трем обязательным условиям: у него отсутствует спад интенсивности освещения с расстоянием; его лучи параллельны друг другу; он обладает световым фронтом, который можно представить частью плоскости прямоугольной или круглой формы.
В 3 ds max эти требования почти однозначно приводят к выбору ИС типа Target Direct. VrayLight не подходит, поскольку не может обеспечить параллельность лучей света (второе требование). Даже при отключении Ignore light normal в его настройках, световой фронт будет сферическим. Последнее приведет еще и к потерям излучаемых фотонов, то есть - к бесполезному увеличению времени расчетов.
Требование отсутствия затухания освещения с расстоянием не противоречит принципу физической корректности, поскольку речь идет именно о Солнце. В компьютерной графике учитывается только одна из возможных причин затухания - вследствие изменения плотности потока световой энергии в результате увеличения площади светового фронта при его распространении (увеличении радиуса сферы светового фронта со временем, или - просто расстояния от источника света). Это и приводит к затуханию с квадратом расстояния, а изменение интенсивности освещения вызвано только изменением расстояния (радиуса). Если речь идет о Солнце, то расстояние, которое лучи проделали от Солнца до Земли, просто громадно по сравнению с изменениями радиуса светового фронта в пределах Земли. Поэтому и изменение интенсивности освещения в пределах земных масштабов расстояний, будь то сотни километров или десятые доли миллиметра, ничтожно малы. Другими словами, световая сфера, дошедшая от Солнца до Земли настолько громадна, что ее поверхность можно считать плоской (причем с гораздо большим основанием, чем можно считать плоской поверхность Земли), изменение плотности светового излучения ничтожно малым, а лучи света - параллельными. И это именно физически корректно для Солнца, как для источника освещения. Совсем другое дело - обычные, земные источники света. Относительное изменение радиуса световой сферы для них всегда велико, заметно, и рассчитывать его нужно по закону квадратичного затухания.
Настройка положения и высоты Target Direct в сцене выбиралась так, чтобы наиболее интересно осветить ту часть, которая видна в камере. Волновой фронт выбран прямоугольным (Light Cone>rectangle) для облегчения его проецирования на интересующую часть сцены так, чтобы минимизировать потери при излучении фотонов. Затухание обязательно отключаем (Decay>Type>None). В качестве типа теней был выбран VRayShadow со значениями по умолчанию.
Второй источник света должен моделировать рассеянное освещение от небесного свода и потому обязательно должен быть пространственным (тип Area). В качестве такового можно выбрать ИС типа Skylight из набора 3ds max, и неплохо было бы с ним использовать подходящее изображение небесного свода в формате HDRI. Однако, учитывая то, что фотонные карты не могут работать со Skylight и HDRI, целесообразнее взять вместо него ИС типа VrayLight, которым и воспроизвести световой фронт. Впрочем, вариант с использованием Skylight+HDRI вовсе не исключен, просто здесь и сейчас я его рассматривать не буду.
Настраиваем VrayLight таким образом, чтобы он имел прямоугольную форму с размером, соответствующим размерам прямоугольного отверстия сверху дворика и располагаем его чуть ниже уровня крыши. Такое расположение минимизирует потерю фотонов, а освещение внешнего края крыши дома возложим на VRay Environment. Затухание освещения не отключаем - это не Солнце.


рис. 02. Настройки VRayLight
Наконец, для того, чтобы воспроизвести цвет неба, выставлен белый цвет для Environment 3ds max.

рис. 03. Вид сцены с положением источников и камеры.


Разрешение рендера устанавливаем 640х480, этого вполне достаточно для целей настройки освещения. После настройки, непосредственно перед финальным рендером, его нужно изменить на требуемое. Также минимизированы и параметры антиалиасинга (далее - AA): тип fixed rate, subdivs=1, можно и еще грубее.
Теперь, после расстановки освещения, необходимо настроить множители (Multiplier) для их интенсивностей. Эту операцию следует выполнять в несколько этапов. На первом - только для прямого освещения, это мы сейчас и сделаем.
Выключаем расчет GI у VRay и начинаем экспериментировать с настройками интенсивности, выполняя рендеры только с прямым освещением и регулируя Multiplier у ИС. Для данной сцены я остановился на следующих значениях: для Target Direct - 3, для VRayLight - 5 и белый Color для обоих (255, 255, 255). При настройке интенсивности света также с самого начала использовался экспоненциальный контроль экспозиции из VRay: Color mapping, тип - HSV Exponential, Dark Multiplier =1.6, Bright multiplier =1, Affect background off.

рис. 04. Так выглядит сцена с настроенным прямым освещением.


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

рис. 05. Параметры группы Color mapping помогают управлять экспозицией освещения.


Всего имеется три типа контроля: Linear multiply (линейный), Exponential (экспоненциальный), HSV exponential (экспоненциальный с сохранением насыщенности цвета). Различие между Exponential и HSV exponential состоит в насыщенности тонов после корректировки, при использовании Exponential изображение получается более "сдержанным", блеклым. На последующих этапах, после расчета фотонных карт и irradiance map, возможно, потребуется дополнительно подкорректировать освещение. Это вполне можно выполнить таким же образом и без пересчета карт.


Настройка фотонных карт
Для расчета освещенности выбран метод irradiance map + photon map. Сделано это в силу следующих причин: фотонная карта обеспечивает корректный и быстрый результат, карта освещенности (irradiance map) также обеспечивает скорость и при должной настройке - качество рендера. Преимущества такого метода достаточно подробно обсуждались в первой части.
Начнем с настройки фотонных карт. Прежде всего, на закладке VRay: Indirect Illumination выставляем следующие параметры:

рис.06. Настраиваем фотонную карту


Сейчас для первичного отскока выбран метод Global photon map с целью отладки фотонной карты. Позже, когда фотонная карта будет готова, я буду использовать Irradiance map.
Значение Secondary bounces>Multiplier установлено в максимальном значении = 1, по причине большого размера сцены и наличия труднодоступных участков для фотонов. По этой же причине значение глубины трассировки фотонов, Bounces, установлено в 20 против 10 по умолчанию.
Отключены Refractive GI caustics и Reflective GI caustics, поскольку я не планирую рассчитывать каустик-эффекты от отраженного диффузного освещения.
Самое главное, что нужно теперь определить - это количество излучаемых источниками света фотонов (subdivs). Оно должно быть достаточно большим, чтобы обеспечить требуемое качество изображения и достаточно малым, чтобы обеспечить максимальную для данных конкретных условий скорость расчета. В идеале, чем выше плотность фотонной карты, тем меньше радиус сбора (Search distance - далее SD) фотонов и тем качественнее фотонная карта. На практике же приходится учитывать временной фактор расчетов и ограничения операционной системы на память (1.5 Гб минус память на геометрию и материалы, помните?). Поэтому, разумный выбор SD и подгонка плотности фотонной карты под него - главная стратегия на этом этапе.
Критерием для выбора подходящего значения SD является анализ самой сцены. Если, например, в сцене присутствует важный хорошо видимый объект, передача светотени которого будет определяющей, выбор SD стоит привязывать к нему - SD должен быть таким, чтобы обеспечить точность передачи тени возле этого объекта. Если важного объекта нет, SD может быть выбран, исходя из размеров сцены и используемых единиц измерения (SD измеряется в установленных для сцены единицах). Поскольку в нашей сцене важных объектов нет, я предположил, что SD в пределах 50- 150 миллиметров будет приемлемым, и остановился на прикидочном значении SD=100. Выбор SD позволяет сразу же определить и Max. density (разрешение фотонной карты, или ее "сжатие", далее - MD), так как между ними существует связь. Очевидно, что SD не может быть меньше MD, поскольку тогда в пределах SD не окажется ни одного фотона. Разработчики рекомендуют соотношение между SD и MD в пределах 2-6, то есть SD=MD*2…6, которым мы и воспользуемся. Обойтись вообще без MD, то бишь использовать для него нулевое значение (фотонную карту полного разрешения) не удастся, поскольку нам нужно излучить довольно большое количество фотонов, а ограничения на оперативную память не позволят этого сделать. Выбираем MD =100/6=15, в отношении величины MD всегда нужно стремиться к наименьшим из возможных значениям. Теперь рассчитаем четыре фотонных карты с разными значениями subdivs для источников света: для 3000, 5000, 7000 и 8000 subdivs на каждый. Каждую фотонную карту обязательно сохраняем в отдельный файл.


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


Параметры фотонной карты остаются неизменными, меняются лишь значения subdivs для источников света. Перед расчетом можно еще отключить генерацию caustic photons у источников света и у объектов (поскольку расчет каустик-эффектов от прямого освещения в этой сцене также не планируется) и убедиться в свойствах объектов, что для них установлены Generate GI/Receive GI.


рис. phot_map#3. Так выглядит фотонная карта для 3000 subdivs плюс прямое освещение.
Статистика фотонной карты:
subdivs 3000 3000 (первый и второй источники света - Target Direct и VRayLight, наше Солнце и Небо :) ;

  • излучено максимум: 18 000 000 фотонов;
  • сохранено в картах фотонов: 5 635 989;
  • потребовался объем памяти 516.4 мб;
  • размер файла на диске 315.6 мб.


рис. phot_map#5. Так выглядит фотонная карта для 5000 subdivs.
Статистика фотонной карты:
subdivs 5000 5000;

  • излучено максимум: 50 000 000 фотонов;
  • сохранено в картах фотонов 7 788 992;
  • потребовался объем памяти 714.1 мб;
  • размер файла на диске 436.1 мб.


рис. phot_map#7. Так выглядит фотонная карта для 7000 subdivs.
Статистика фотонной карты:

  • subdivs 7000 7000;
  • излучено максимум: 98 000 000 фотонов;
  • сохранено в картах фотонов 9 023 203
  • потребовался объем памяти 827.7 мб
  • размер файла на диске 505.2 мб.


рис. phot_map#8. Так выглядит фотонная карта для 8000 subdivs.
Статистика фотонной карты:

  • subdivs 8000 8000;
  • излучено максимум: 128 000 000 фотонов;
  • сохранено в картах фотонов 9 486 395;
  • потребовался объем памяти 869.8 мб;
  • - размер файла на диске 531.2 мб.


Легко увидеть, что наиболее качественная фотонная карта получена для 128 миллионов фотонов (рис. phot_map#8). Поскольку она рассчитана за вполне приемлемое время и требует не так много места на диске для хранения (попробовал бы я это сказать года три назад :), ее и выбираю для дальнейшей работы. Вообще говоря, если бы я хотел ограничиться только видом из данной камеры, вполне можно было попробовать использовать самую первую фотонную карту с 3000 subdivs. Но я хочу еще посмотреть, что "творится" на балконах, а там плотность фотонной карты будет самой низкой во всей сцене и 3000 subdivs может оказаться недостаточно для качественного рендера.
Теперь выставляем загрузку фотонной карты из файла, в котором она была сохранена, и продолжим "игру" с настройками фотонной карты. В частности, попробуем менять SD, поскольку это не потребует пересчета фотонной карты.


рис. sd-10. SD=10мм. Радиус очень хорош сам по себе, поскольку обеспечивает высокую детализацию. К сожалению, при таком радиусе и с текущей плотностью фотонов получается очень шумная фотонная карта, малопригодная для использования.


рис. sd-1000. SD=1 метр. Шума почти нет, но получено это за счет сильного размывания деталей светотени из-за слишком большого радиуса. Изображение выглядит плоским, неинтересным. Да и время расчета увеличилось почти в 30 раз из-за того, что в расчете освещенности обрабатывается большее количество фотонов.


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


На этом настройку фотонной карты можно было бы и завершить. Но я предлагаю потратить немного дополнительного времени и задействовать еще один механизм, способный обеспечить дополнительное качество фотонной карты.
До сих пор количество собираемых фотонов Max. photons было установлено в 0 для того, чтобы ничто не мешало настроить радиус сбора. Давайте укажем значение Max. photons таким, чтобы оно соответствовало количеству собираемых фотонов в пределах нашего SD для наименее плотных областей фотонной карты. Идея в том, чтобы в областях карты с высокой плотностью фотонов освещенность точек рассчитывалась при помощи Max. photons. При этом радиус сбора будет меньше установленного в настройках SD, и будет меняться в зависимости от плотности карты, доходя до установленного значения SD в областях с самой низкой плотностью. Таким образом, мы достигаем сразу двух целей: радиус сбора будет меняться по всей фотонной карте и шумовые пятна потеряют свою регулярность. А за счет уменьшения реального радиуса сбора повысится детализация светотени, особенно в средних тонах.
Как найти Max. photons? Начинаем постепенно повышать с 0 его значение с некоторым шагом (допустим, в 10 фотонов) и каждый раз рендерим изображение. Когда изображение в тех областях, где фотонная карта наименее плотна (темные и труднодоступные для освещения участки) перестанет меняться при увеличении Max. photons, текущее значение Max. photons и следует взять. Остается только сожалеть об отсутствии "штатных" средств оценки плотности фотонной карты в произвольной выбранной точке сцены.


рис. mp-10. Фотонная карта для Max. photons = 10. Сильный шум, продолжаем увеличивать количество собираемых фотонов.


рис. mp50. Продолжая постепенно увеличивать Max. photons, я остановился на значении в 50 фотонов. После рубежа в 100 фотонов изображение вообще перестает меняться - во всех областях сцены достигается предел, установленный SD. Обратите внимание, что шумовые пятна стали теперь менее регулярными и не так явно выражены, как на рис. sd-90. Почернения на стыках и углах также почти полностью исчезли - срабатывает Convex hull area estimate.


Хорошая настройка фотонной карты - ключ к успешному и быстрому рендеру. Вот теперь перейдем к следующему этапу - настройке irradiance map.


Настройка Irradiance map
Снова переходим на закладку VRay: Indirect illumination и в качестве метода расчета первого диффузного отскока выбираем irradiance map. Для настроек irradiance map я выбрал Irradiance map preset>High, затем там же - Custom. Это позволяет редактировать настройки High.


рис. 08. Настройки расчета первого отскока методом irradiance map


Пороговые значения для цвета, нормалей, расстояния и количества сэмплов subdivs оставлены теми же, что были в preset High. Количество subdivs в 50 сэмплов означает, что для расчета диффузной освещенности каждой точки будет использовано до 2500 лучей, чего вполне достаточно для большинства случаев. Вообще же, "рабочий" диапазон subdivs лежит в пределах 30-120 сэмплов и может быть еще увеличен при наличии шума в изображении.
При наличии шума также настоятельно рекомендуется проанализировать его возможную причину, поскольку уменьшение соответствующего порогового значения может привести к решению проблемы без увеличения subdivs. Значения Min. rate и Max. rate также оставлены довольно высокими, поскольку для настройки используется изображение низкого разрешения (640х480). Для наблюдения за процессом расстановки точек можно включить Show calc. phase.
Теперь перейдем к настройкам самой карты на закладке VRay: Advanced irradiance map parameters.


рис. 09. Настройка irradiance map
Выполнить настройку параметров самой карты довольно просто. Выбираем Interpolation type: Least squares fit. Еще может быть только один вариант - Delone triangulation, который не размывает интерполируемую освещенность, в отличие от всех остальных типов и может быть использован для изображений, к которым предъявляются повышенные требования к четкости. Наша сцена вполне обычна, поэтому оставлен Least squares fit. Sample lookup (способ выбора рассчитанных точек для интерполяции) - Precalcd overlapping, лучший из имеющихся, оставляем. Устанавливаем Randomize samples, что должно подавлять муар и другие проявления алиасинга. Check sample visibility стоит включать только при наличии проблем в сцене, связанных с проникновением света через поверхности. В текущей сцене таких проблем нет, значит, не включаем.
Calc. pass interpolation samples определяет количество рассчитанных значений освещенности для интерполяции освещенности нерасчетной точки. Чем выше это значение, тем ровнее градиент и больше размывание оттенков. Рекомендуемый рабочий диапазон для этого параметра 12-25, оставляем 15. Назначаем сохранение фотонной карты в файл, это может пригодиться для последующей коррекции при помощи Color map (экспоненциального контроля освещенности) и настройки антиалиасинга. Теперь все готово и можно нажимать кнопку "Render"!
Я рассчитал два изображения для двух настроек фотонных карт - для Search distance=90, Max. photons=0 и для Search distance=90, Max. photons=50 (то, что мы считали на рис. sd90 и на рис. mp50). Вот что получилось (разрешение и настройки AA пока не менялись).


рис. irr-1. Изображение, полученное методом irradiance map+ фотонная карта с Search distance=90, Max. photons=0. 640х480, без АА.


рис. irr-2. Изображение полученное методом irradiance map+ фотонная карта с Search distance=90, Max. photons=50. 640х480, без АА.


Мне лично больше нравится последнее изображение, и именно для него я просчитаю окончательный рендер. Вот он. Я только немного подкорректировал цвет, изменив Dark Multiplier с 1.6 до 1.4, и настроил AA:


рис.10. Настройки АА для финального рендера.


Поскольку сглаживание AA является дополнительным и независимым проходом по отношению к проходам расчета точек irradiance map, для настройки AA использовалась сохраненная в файл карта, как и для настройки Color map. Из фильтров AA общего назначения наиболее качественными являются Catmull-Rom и Mitchell-Netravali. Наиболее простой - Area. Эти фильтры определяют влияние пикселей изображения друг на друга и являются результатом исследований теории антиалиасинга. Другие фильтры этой группы предназначены для различных специальных случаев, описание которых можно найти в руководстве к VRay. Перед рендером я изменил разрешение изображения на 1024х768 и уменьшил значения Min. rate до -4, а Max. rate до -1. Поскольку количество точек изображения увеличилось, качество irradiance map не должно пострадать. Итак:


рис. cam-1. Финальный рендер, вид из первой камеры.


В сцене есть еще одна камера, установленная на втором этаже. Я выполнил рендер для вида из нее, используя все ту же фотонную карту из файла и irradiance map с теми же настройками, которая просчитывалась для нового вида заново.


рис. cam-2. Финальный рендер для вида из второй камеры. Эта область обладает наименьшей для всей сцены плотностью фотонной карты. Количество фотонов здесь не превышает 30 на площадку сбора с Search distance =90 мм. Настоящее испытание для фотонной карты, которое она выдержала вполне достойно.


рис.11. Irradiance map, только первый диффузный отскок


рис. 12. Irradiance map, только первый диффузный отскок и прямое освещение


рис. 13. Фотонная карта и прямое освещение.


рис. cam-3. Еще один вид из первой камеры, повернутой на 180 градусов, ради во-о-н того барельефа :). Та же фотонная карта, те же настройки, irradiance map рассчитывалась заново.


Имея корректно настроенные фотонную карту и irradiance map теперь можно "взять" рендер из любой точки сцены или даже просчитать анимацию облета. В последнем случае для irradiance map Mode можно использовать Multiframe incremental - карта будет просчитываться для каждого нового кадра не заново, а с нарастанием - только для новых точек, появившихся в поле зрения.


рис. cam-4. Еще один вид, с верхней галереи.
Использование экспоненциального контроля Color mapping - не единственный способ устранения засветов/темных мест в изображении. Можно предложить еще одну схему, которая требует большего времени для настройки, но способна обеспечить более интересное изображение.
Сначала настраиваем интенсивность источников света обычным способом - при помощи экспоненциального контроля Color mapping. Но перед финальным рендером там же выставляем Color mapping>Type>Linear multiply, G-buffer output channels>Unclamped color и вывод изображения - в файл формата HDRI. Рассчитанное таким способом изображение будет содержать значение цвета пикселей в формате с плавающей запятой и реальными (а не RGB) значениями интенсивностей. Затем, полученный файл можно открыть в HDRShop и использовать его возможности (или возможности плагинов, например, - tonemap) для преобразования динамического диапазона изображения к диапазону цветового пространства RGB (монитора) с сохранением в файл обычного формата. Преимущество такого подхода - в возможности использования для преобразования динамического диапазона изображения различных специально для этого созданных алгоритмов, и получении более интересного конечного изображения. И даже - для привнесения спецэффектов или специфических акцентов в изображение, например металлического блеска на хромированных деталях.


рис.14. Пример обработки HDRI-рендера в HDRShop. Область средних тонов смещена в направлении более светлых тонов относительно оригинала при помощи TONEMAP, плагина для HDRShop.
Счастливые обладатели Combustion могут воспользоваться для обработки HDR изображения его возможностями.

Caustic


рис. 15.gif Настроечные параметры caustic
Я не буду подробно останавливаться на создании и настройке caustic-эффектов, поскольку они формируются при помощи фотонных карт, и идеология работы с ними идентична общей методике настройки фотонной карты. Скажу лишь об отличиях, которые необходимо учитывать. Прежде всего, излучение фотонов происходит целенаправленно на объект, каустика от которого рассчитывается. Это позволяет при относительно небольших значениях caustic-subdivs для источников света получать фотонные карты очень высокой плотности и высокого качества. Каустик-фотонные карты рассчитываются и сохраняются отдельно. Это позволяет настраивать их отдельно и подгружать по мере необходимости при финальном рендере. При создании каустики следует также учитывать, что в процессе участвуют только два или несколько (а далеко не все) объекты сцены - генератор каустики и получатель (отражатель) каустики. Соответственно, у объекта-генератора в свойствах нужно включать Generate caustic и, как правило, отключать Receive caustic. У отражателя каустики - наоборот. Генератор должен иметь сильные свойства отражения или преломления и IOR выше единицы, отражатель - наоборот, должен быть чисто диффузным объектом.
Чем меньше Search dist., тем качественнее и четче каустика, то же относится и к Max. photons при достаточно высокой плотности фотонной карты. Вот, в общем-то, и все.
Заключение.
VRay очень интересный и богатый возможностями рендер. Мне удалось (надеюсь) описать самое главное в нем - один из способов расчета глобальной освещенности. Но "за бортом" осталась масса вещей, рассмотреть которые не удалось по той простой причине, что невозможно "объять необъятное", да еще в пределах одной статьи. Это и работа с материалами, и depth of field и motion blur, и действия с источниками света, особенно - с oioiiao?e?aneeie… Каждая из тем достойна отдельного разговора и специального подробного обсуждения.

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

До встречи!

Игорь Сиваков
Используются технологии uCoz