Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Как использовать все возможности mental ray в р...docx
Скачиваний:
8
Добавлен:
01.09.2019
Размер:
2.2 Mб
Скачать

Is_mat_irradiance - шейдер расчета вторичного освещения индивидуально для материалов

Как мы теперь уже знаем, расчет вторичного освещения методами final gathering, global photon map (GI) и caustic photon map, является неотъемлемой и обязательной частью любого стандартного материального шейдера. Настройки расчетов задаются в 3ds max в секции Indirect Illumination панели Rendering или блока Options в mi-файле сцены. Эти настройки являются "глобальными" в том смысле, что они имеют силу для всех объектов - расчет вторичного освещения всех объектов сцены будет выполнен с одними и теми же настройками качества расчетов. Однако, часто имеет место ситуация, когда одни части сцены требуют высокого качества, например там где освещение меняется быстро или есть важные мелкие детали геометрии, тогда как другие объекты сцены не требуют высокого качества (например, плоские ровные поверхности с медленно меняющимся освещением). Хотя алгоритм расчетов умеет правильно учитывать такие ситуации при помощи механизма адаптивности, все же хотелось бы иметь возможность индивидуальной по-объектной настройки качества расчетов. Это может быть весьма полезно для сокращения общего времени расчетов или для локального разрешения ошибок расчета освещения.

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

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

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

Принцип работы этого шейдера прост - is_mat_irradiance назначается в слот поверхности (Surface материала типа mental ray или mental ray Connection стандартных материалов 3ds max), вместо материального шейдера, а сам материальный шейдер назначается в качестве одного из параметров is_mat_irradiance. Таким образом, is_mat_irradiance действует как своеобразный переходник, выполняющий необходимые манипуляции, чтобы реализовать по-материальный расчет вторичного освещения. Необходимость в перепрограммировании шейдеров отпадает - можно как и раньше использовать любые стандартные материальные шейдера или материалы 3ds max (через дополнительный стандартный Material to Shader).

Настроечные параметры is_mat_irradiance:

Интерфейс шейдера is_mat_irradiance

Назначение параметров:

- Mtl. Irradiance Off : отключает расчет вторичного освещения для материала.

- Irradiance In Reflect/Refract: если установлен, рассчитывается вторичное освещение в отражениях и преломлениях. По умолчанию установлен, если отражений или перломлений в сцене нет, отключение параметра ускорит рендеринг.

- Input Mtl : слот, куда должен быть подключен материальный шейдер mental ray или материал 3ds max, является аналогом слота Surface.

- Copy Mtl Diffuse : слот, куда должна быть подключена копия диффузного цвета материала/мат. шейдера, подключенного в Input Mtl - простой диффузный цвет, растровая карта или процедурная карта, определяющие диффузный цвет. Проще всего это сделать копированием диффузного цвета материального шейдера при помощи правой кнопки мыши. Необходимость дополнительной копии диффузного цвета вызвана особенностями работы шейдера и призвана согласовать цвет рассчитываемого вторичного освещения и цвет диффуза материала. Не нужно подключать сюда полную копию материала, поскольку это не имеет смысла и приведет к замедлению расчетов.

- чекбоксы Mtl. Overwrite Caustic, Mtl. Overwrite GI и Mtl. Overwrite FG, если установлены, позволяют переопределять настройки расчета вторичного освещения индивидуально для материала/мат. шейдера, заданного в Input Mtl.

параметры Num. Photons per Sample, Max. Sampling Radius для каустики и GI, Num. Samples, Max. Radius, Min. Radius, Radii in Pixels для FG являются параметрами качества расчетов и идентичны аналогичным из секции Indirect Illumination глобальных настроек, но действуют только для материала, подключенного в слоте Input Mtl.

FG Occlusion in alfa : если включен, возвращает в альфа канале fg occlusion, если выключен - обычный альфа-канал, рассчитываемый материальным шейдером.

Irradiance Multiplier : множитель интенсивности вторичного освещения. Новый метод расчета вторички возвращает значение интенсивности освещения в pi (3.14) раз слабее старого метода. Основное назначение множителя - обеспечить совместимость результатов старого и нового методов (нужно ввести значение 3.14 вместо 1), но может также использоваться для произвольного управления интенсивностью вторичного освещения.

Irr. for BackSide On : если включен, то вторичная освещенность рассчитывается для всех полигонов, в том числе тех, нормали которых "смотрят" от камеры. По умолчанию выключен.

Use Fast Sky : позволяет реализовать имитацию освещения от полусферы небесного свода при помощи использования fg occlusion - усредненных значений заблокированности fg лучей, которые возвращает новый метод расчета вторичного освещения.

Fast Sky Color : цвет освещения от Fast Sky.

Для того, чтобы расчет вторичного освещения выполнялся индивидуально для материалов также требуется включить расчет соответствующего метода в Indirect Illumination.

Вот как это выглядит на примере очень простой сцены.