Vray не сохраняет файл

Обновлено: 04.07.2024

В первой части были рассмотрены основные принципы работы и назначение некоторых настроечных параметров VRay. А сейчас давайте посмотрим, как все это можно использовать на практике.

Сцена

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. Затухание освещения не отключаем - это не Солнце.

Наконец, для того, чтобы воспроизвести цвет неба, выставлен белый цвет для 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 выставляем следующие параметры:

Сейчас для первичного отскока выбран метод 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 на каждый. Каждую фотонную карту обязательно сохраняем в отдельный файл.

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

  • subdivs 3000 3000 (первый и второй источники света - Target Direct и VRayLight, наше Солнце и Небо :) ;
  • излучено максимум: 18 000 000 фотонов;
  • сохранено в картах фотонов: 5 635 989;
  • потребовался объем памяти 516.4 мб;
  • размер файла на диске 315.6 мб.

[V-Ray VFB window]

Обзор

Параметры

Скрытые параметры

Панель инструментов VFB

Горячие клавиши VFB

Замечания

Search Keywords: VFB, G-buffer, frame buffer, render pass

Обзор

В дополнение к окну визуализируемого кадра 3ds Max (Rendered Frame Window RFW или VFB), V-Ray позволяет вам производить визуализацию в специальный буфер кадра V-Ray, который имеет некоторые дополнительные возможности:

  • Позволяет вам видеть все элементы визуализации в одном окне и очень просто переключаться между ними.
  • Хранит изображение в полном 32-битном формате с плавающей точкой.
  • Позволяет вам производить простую корректировку цвета визуализированного изображения.
  • Позволяет вам выбрать порядок в котором просчитываются бэкиты.

Параметры

[V-Ray VFB options]

Show last VFB - Показать последний VFB - если вы уже делали визуализацию с использованием V-Ray VFB и закрыли окно, эта кнопка позволяет вам открыть его снова. Этого же можно достичь при помощи вызова метода showLastVFB() визуализатора V-Ray посредством MaxScript.

Enable built-in frame buffer - Разрешить встроенный буфер кадра - разрешает использовать встроенный буфер кадра V-Ray. По техническим соображениям оригинальный буфер кадра 3ds Max остается существовать и создается. Однако когда эта опция включена, V-Ray не будет помещать ни какие данные в буфер кадра 3ds Max. Для предотвращения излишнего расхода памяти мы рекомендуем устанавливать оригинальное разрешение 3ds Max очень маленьким (напр. 100х100) и выключить 3dsmax VFB в общих параметрах визуализатора 3ds Max.

Render to memory frame buffer - Просчет в буфер кадра, размещенный в памяти - будет создаваться буфер кадра V-Ray, который будет использоваться для запоминания данных о цвете, которые вы можете видеть в процессе просчета и после него. Если вы хотите просчитать изображение действительно очень высокого разрешения, которое невозможно разместить в памяти или которое может съесть такое количество памяти, что сцена не сможет быть визуализирована корректно, вы можете выключить эту возможность и использовать только возможность Render to V-Ray raw image file (просчет в файл сырого изображения V-Ray) .

Get resolution from 3ds Max - Взять разрешение из 3ds Max - это заставит V-Ray VFB брать свое разрешение из общих параметров визуализатора 3ds Max.

Output resolution - Выходное разрешение - это разрешение, которое вы хотите использовать с буфером кадра V-Ray.

Pixel aspect - Аспект пикселя - указывает соотношение сторон (аспект) пикселя для визуализируемого изображения в V-Ray VFB.

Render to V-Ray image file - Визуализация в файл изображения V-Ray - когда опция включена, V-Ray напрямую записывает в дисковый файл сырые данные изображения, как только они просчитаны. При этом никакие данные не хранятся в оперативной памяти, поэтому эта возможность очень полезна для экономии памяти при визуализации изображений огромного разрешения. Если вы хотите видеть что визуализируется, вы можете включить опцию Generate preview . Для вывода вы можете указать либо файл с расширением .vrimg , либо с расширением .exr :

    Если вы указали расширение .vrimg , результирующий файл может быть просмотрен через меню 3ds Max File > View image. , или преобразован в файл формата OpenEXR при помощи утилиты vrimg2exr.

Скрытые параметры

У V-Ray VFB есть несколько дополнительных параметров, которые недоступны через интерфейс, но доступны через MaxScript. Это может быть полезно в некоторых ситуациях. Ниже перечислены имена этих параметров в MaxScript.

output_renderType - позволяет вам переопределить тип визуализации, указанный в настройках 3ds Max. Возможные значения:

0 - использовать тип визуализации 3ds Max (значение по умолчанию);

1 - визуализация полного изображения;

2 - визуализация региона;

3 - визуализация региона с отсечением (crop);

4 - визуализация региона с увеличением (blow-up).

output_regxmin - координата (в пикселях) X левой границы региона для визуализации;

output_regxmax - координата (в пикселях) X правой границы региона для визуализации;

output_regymin - координата (в пикселях) Y верхней границы региона для визуализации;

output_regymax - координата (в пикселях) Y нижней границы региона для визуализации.

Панель инструментов VFB


Эта часть панели инструментов устанавливает каналы для просмотра, а также режим предварительного просмотра. Выбрать каналы для просмотра можно с помощью кнопок. Вы также можете просматривать просчитанное изображение в монохромном режиме.
Когда сравниваются два изображения с использованием функции сравнения A/B журнала VFB (VFB History), эти кнопки позволяют вам выбрать направление линии разделения A/B.
Сохранение данных текущего кадра в файл. Вы можете это сделать "на лету" в процессе визуализации.

Открывает файл типа .vrimg для предварительного просмотра в V-Ray VFB
Очищает содержимое буфера кадра. Иногда полезно при запуске новой визуализации, что бы не было путаницы с предыдущим изображением.
Создает в виртуальном буфере кадра 3ds Max копию текущего буфера кадра V-Ray. Вы можете это сделать "на лету" в процессе визуализации.
Этот инструмент заставит V-Ray просчитать бакит, ближайший к указателю мыши. Перемещайте указатель мыши над буфером кадра V-Ray во время просчета для того, что бы увидеть эти бакеты просчитаными первыми. Вы можете это сделать "на лету" в процессе визуализации.
Эта опция позволяет вам просчитывать регионы в V-Ray VFB.

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

Включает сжатие цветов (color clamping) в V-Ray VFB

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

Разрешает коррекцию цветов типа "levels" (уровни)

Разрешает коррекцию цветов типа "curve" (по кривой)

Разрешает коррекцию экспозиции

Показывает изображение в цветовом пространстве sRGB

Разрешает таблицу поиска (look up table - LUT)

Показывает журнал (history) V-Ray VFB

Разрешает формат пикселя (pixel aspect ratio)

Разрешает красно-голубой стереоскопический просмотр

Разрешает зелёно-малиновый стереоскопический просмотр

Журнал VFB


V-Ray VFB (начиная с V-Ray 2.0) позволяет пользователю вести журнал ранее визуализированных изображений. Изображения сохраняются в файлах формата .vrimg, в месте, указанном пользователем. В дополнение к ведению журнала, эта функция позволяет пользователю устанавливать изображения A и B и сравнивать из внутри VFB.

Enable VFB history - разрешает ведение журнала V-Ray VFB.

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

Save - Сохранить - сохраняет текущее изображение из VFB в журнал.

Load - Загрузить - загружает в VFB изображение, выбранное в журнале.

Remove - Удалить - удаляет выбраное изображение из журнала.

Clear - Очистить - очищает журнал визуализаций.

Set A - Установить A - устанавливает текущее выбранное изображение в качестве "изображения A" для сравнения A/B в VFB.

Set B - Установить B - устанавливает текущее выбранное изображение в качестве "изображения B" для сравнения A/B в VFB.

Горячие клавиши VFB

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

Мышь Описание
CTRL+LeftClick, CTRL+RightClick Увеличение/уменьшение
Вращение колеса мыши вверх/вниз Увеличение/уменьшение
Двойной щелчек левой кнопкой Масштабирование до 100%
Щелчек правой кнопкой Показывает информационное окно со свойствами указанного щелчком пиксела. Для того, что бы видеть окно с информацией постоянно, включите инструмент
Перемещение с нажатой средней кнопкой перемещение вида (инструмент рука)
Клавиатура Описание
+ / - Увеличение/уменьшение
* Масштабирование до 100%
Клавиши управления курсором перемещение вида

Замечания

  • V-Ray VFB не показывает слои G-буфера (подобно Coverage и т.п.);

В первой части были рассмотрены основные принципы работы и назначение некоторых настроечных параметров VRay. А сейчас давайте посмотрим, как все это можно использовать на практике.

Сцена

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. Затухание освещения не отключаем - это не Солнце.

Наконец, для того, чтобы воспроизвести цвет неба, выставлен белый цвет для 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 выставляем следующие параметры:

Сейчас для первичного отскока выбран метод 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 на каждый. Каждую фотонную карту обязательно сохраняем в отдельный файл.

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

  • subdivs 3000 3000 (первый и второй источники света - Target Direct и VRayLight, наше Солнце и Небо :) ;
  • излучено максимум: 18 000 000 фотонов;
  • сохранено в картах фотонов: 5 635 989;
  • потребовался объем памяти 516.4 мб;
  • размер файла на диске 315.6 мб.


Основная цель рендера картинки по элементам такие как, освещение, отражения или преломления это то что в дальнейшем ее можно будет хорошо понастроить в Adobe Photoshop или After Effects. Весь процесс сохранения элементов при рендере в 3ds max это работа с вкладкой V-ray Elements где вы выбираете нужные элементы которые нужно сохранить. Рендер по слоям это также хороший способ сохранить много времени, особенно когда сроки поджимают. Ведь мы можете поменять интенсивность отражений или цвет определенного элемента, или понизить\увеличить освещение в сцене.

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

Выбор элементов для рендера

В настройках рендера Vray перейдите во вкладку render elements и добавьте следующие элементы по очереди.


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

Вы можете добавить VrayRawShadow для контроля интенсивности теней. Но из моего опыта результат получается не сглаженным из малого количества сэмлов в освещении.

Также Элементы Vray работают лучше с Vray материалами, так что дважды проверьте сцену прежде чем начинать рендер. Но все же некоторые элементы поддерживают и 3Ds max, подробнее можно глянуть здесь.

Авто сохранение элементов VRay

Поскольку мы рендерим несколько элементов то время рендера может значительно возрасти не говоря о том что если вы рендерите не один кадр а допустим секвенцию из сотни или две кадров. VRay Frame Buffer немного оптимизирует рендер. я рекомендую сохранять в формате Tiff, 16 Bit. Это позволит делать детальную настройку на стадии пост обработки.

Включите чекбоксы Save RGB и Save Alpha. Вам также не обязательно указывать во вкладке Common куда сохранять файл, так как вы указываете это во вкладке VRay Frame Buffer, игнорируйте всплывающее окно о том что рендер элементы не будут сохранены при включенном VRay Frame Buffer.

Читайте также: