Ambient Occlusion с прозрачностью в 3DS Max и Mentalray

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

Примечание: я предлагаю в некотором смысле половинчатое решение. АО работает на основе геометрии и не принимает во внимание карты. Так что это решение — вынужденное приближение. Приняв этот факт во внимание, займёмся AO с прозрачностями.

В этом уроке я расскажу о методе визуализации прохода AO, позволяющем сохранить прозрачность отдельных объектов с помощью mental ray и шейдеров Architecture & Design (A&D). Для примера я использую дерево, текстурированное материалами A&D.

Ambient Occlusion с прозрачностью

Листва этого дерева — простые плоскости, но при визуализации вы видите отдельные листья, поскольку на плоскости, в слот cutout материала A&D, наложена альфа-карта листьев.

Ambient Occlusion с прозрачностью

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

Ambient Occlusion с прозрачностью

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

Я создаю материал mental ray и в его первый слот добавляю mix map. В цвет №1 добавляю "material to shader". Это материал A&D, для которого я выставляю значения рефракции и IOR равные 1.0. Для цвета №2 я использую мой стандартный шейдер AO. В Mix Amount я добавляю карту прозрачности листьев, для смешения AO с полностью прозрачным шейдером A&D.

Простейший способ визуализации прохода AO — это подключение материала AO с прозрачностью в слот material override во вкладке Processes в Rendering Settings.

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

Для решения этой проблемы я создаю материал Sub-Object с ID 1, который будет стандартным AO шейдером и ID 2, который будет шейдером AO с прозрачностью. Я подключил материал Sub-Object в слот material override.

Ambient Occlusion с прозрачностью

Затем я выбрал все объекты в сцене (в нашем случае это ствол дерева), применил модификатор material и присвоил идентификатор материала 1. Затем я выделил листья и так же применил модификатор material, но с ID материала 2.

Ambient Occlusion с прозрачностью

Вуаля, сцена готова к проходу AO с прозрачностью!

Если в вашей сцене присутствует несколько объектов с разными картами прозрачности, вам придётся создать шейдеры AO для каждой из этих карт, поместить все шейдеры в материал Sub-Object и применить модификатор material с правильным ID к каждому объекту сцены, имеющему собственную карту прозрачности.

Поделиться в: Опубликовать в twitter Опубликовать в своем блоге livejournal.com