Arnold и Hair and Fur модификатор
Last Updated on 27/01/2018
Изучая как устроен рендер волос в Arnold’е (MAXtoA) я наткнулся на одну пока не документированную функцию, которая позволяет перенести цвет с объекта из которого растут волосы созданные Hair and Fur (H&F) на сами волосы, визуализируемые через Custom Shader.
Если вы назначите любой Arnold шейдер в параметр Custom Shader модификатора H&F, цвет волос самого H&F будет проигнорирован при рендеринге. Цвет волос будет зависеть только от настроек шейдера, у которого нет данных о текстуре объекта, из которого растут волосы.
Но как выяснилось Arnold при рендере экспортирует данные H&F о цветности волос и прозрачности (root_colors, tip_colors, opacity) но не использует их. Дальше я покажу Вам как использовать эти данные что бы изменить цвет волос согласно текстуре, наложенной на объект по его развертке UVW.
Вначале, после того как Вы добавили Hair and Fur modifier к объекту необходимо зайти в настройки Environment -> Effects-> Hair and Fur и в параметре Hairs выбрать “mr prim”. Только в этом случае Arnold будет визуализировать H&F как Arnold Curves которые лучше всего оптимизированы для визуализации волос и ворса.
Параметр mr Voxel Resolution никак не влияет на визуализацию волос в Arnold.
Назначаем Standard Hair shader в слот H&F Custom Shader. В качестве шейдера волос может быть использован любой другой шейдер Arnold’а.
Включаем Legacy 3ds max Map support что бы были доступны Maps 3ds max’a. В слот Root Color добавляем любой Map который поддерживает H&F.
Шейдеры Arnold’a H&F не поддерживает!
Теперь для того что бы Standard Hair shader начал использовать цвет волос, который мы задали через Root Color параметр необходимо добавить Arnold шейдер User Data RGB.
В параметр Attribute этого шейдера необходимо ввести название данных, в нашем случае root_colors и присоединить этот шейдер к каналу цветности Standard Hair — diffuse_color.
Как я уже говорил H&F автоматически экспортирует в Arnold три набора данных о цвете волос, какое количество данных использовать для задания цвета волос зависит от вашей задачи. В этом примере мы обойдемся только root_colors.
Необходимо не забыть в Standard Hair изменить значение Diffuse Weight = 1.0 принуждая шейдер использовать данные цветности а так же в параметрах H&F изменить цвет Root Сolor на белый (255,255,255) иначе цвет H&F будет смешиваться с цветностью map в этом же канале.Итог:
И в заключении несколько слов об оптимизации рендера волос. Хочу заметить, что по умолчанию волосы из H&F экспортируются в Arnold без параметра opaque, то есть с полупрозрачностью. Если вам не нужен расчет прозрачности волос то можно значительно сэкономить время расчета добавив к объекту с H&F модификатор Arnold Properties и включив в его параметрах Opaque.