|
Введение После выхода Mental Ray for Maya v1.0, я не предал ему особого значения. Тогда он меня разочаровал своими маленькими возможностями (как я тогда думал) и медлительностью (тоже оказалось не совсем верно). Тогда это было еще, что-то кривое и не совсем корректно работающее, но зато уже был Global Illumination и Caustica. Когда же вышла версия 1.5, я заметил некоторую тенденцию по внедрению Ментала. И в скоре мои лучшие предположения оправдались, Maya 5.0 имела встроенный Mental Ray! Мне стало интересно, почему выбор AW пал именно на Mental Ray. Поиск информации показал, что возможности Ментала далеко за пределами того, что он может в Maya. Как говорится в хелпе Ментал, он может воспроизводить практически все физические и оптические эффекты, существующие в рендериге и, причем физически достаточно корректно. На проверку Mental Ray оказался серьезной функционально расширяемой системой с широкими возможностями. Большая функциональность Ментала достигается за счет Custom Shaders, о чем и пойдет речь далее. Подключение Custom shaders Надо сказать, что AW сделали все, чтобы пользователи не смогли воспользоваться Custom shader’ами.
По умолчанию Custom Shader’ы скрыты в Maya и поэтому первое, что предстоит сделать это включить их. Делаем все как описано в хелпе. Добавляем в Windows environment variables переменную MAYA_MRFM_SHOW_CUSTOM_SHADERS и устанавливаем ее в значение 1 ![]() Далее в Hypershade должна была появиться вкладка Create mental ray Nodes. ![]() Если у вас уже на этой стадии возникли проблемы, то боюсь что эта статья не для вас. Далее мы имеем в распоряжении набор шейдеров, но, как и следовало ожидать, подключение их не так просто. Следующие типы mental ray shaders могут быть присоединены к Shading Group: Materials
Любой подключенный менталовский шейдер сразу блокирует соответствующие атрибуты Майских шейдеров. Создаем любой материал с Shading Group и присваиваем его объекту. Далее в Shading Group открываем вкладку mental ray и на поле Material Shader вешаем любой менталовский шейдер из вкладки Materials, например dgs_material. ![]() И вот казалось мы так близки у цели, но… при рендере все менталовские шейдеры почему то получаются черного цвета не зависимо от установленного цвета. Единственно что можно добиться это отражение в них майских шейдеров. Хм… Немного поразмыслив, приходим к выводу, что диффузной составляющей не хватает освещения. Менталовские шейдеры почему то не видят источники света. Причем даже если на Майский источник повесить менталовский шейдер света, то все равно результат будет тем же. В некоторых шейдерах можно найти такой атрибут как mode. Ставим его в 2 (все остальные значения результата не дают) и… свершилось! Наконец то наши шейдера рендерятся нормально. Что же это за параметр и на что он влияет? Лезем в хелп… Значение mode: Делаем вывод – у каждого шейдера есть параметр light list, в котором содержатся все источники света, которые на него влияют, но он, почему-то по умолчанию пуст (все значения в менталовских шейдерах по умолчанию обнулены, и все цвета установлены в черный) поэтому ни один из источников света не освещал шейдер. Но как же быть с шейдерами у которых нет параметра mode? Как внести источники света в этот light list? ![]() Попробуем присоединить источник света к шейдеру. ![]() Далее еще раз пробуем присоединить источник света к шейдеру. ![]() Первый элемент массива lights[0] теперь присоединен к Message одного из источников света.
![]() Модифицируем ее немного и запускаем. connectAttr -f pointLightShape2.message mib_illum_blinn1.lights[1]; ![]() Теперь в Connection Editor’е появилась новая строка lights[1], которая связана с Message pointLight2. ![]() Теперь к менталовским шейдерам можно присоединять и отсоединять источники света по своему усмотрению. Процедура присоединения Message источника света к Lights шейдера в Ментале оказалась стандартной процедурой к которой придется привыкнуть если вы хотите пользоваться Custom Shader’ами. Свои вопросы, предложения и пожелания прошу на puppet@rambler.ru |
|
|