Данная статья посвещена правильному подключений нестандартных менталовских шейдеров к Maya 6.
Как наверное многие заметили Maya 6, при подключении к ней менталовских шейдеров не входящих в стандартную поставку, начинает ругаться,
выдавая предупреждение:
// Warning: (Mayatomr.Nodes) : Node "lambert_p" has no ID, assigning a temporary ID. Scene should be saved as .ma (ASCII). //
Перевод гласит: "Нода "lambert_p" не имеет уникального ID, назначен временный ID. Сцена должна быть сохранена как .ma (ASCII)."
Так что же это за ID и как избавиться от этой ошибки?
Дело в том что в Maya каждая нода имеет свой собственный ID(номер).
Для программистов, которые создают в Maya новые типы объектов, предусмотрен диапозон ID номеров из которого можно выбрать любой.
При подключении шейдера к Maya автоматически создается нода, которой должен быть присвоен свой собственный ID.
Шейдера из стандартной поставки уже имеют свои ID, поэтому это относится только к шейдерам которые устанавливаются дополнительно.
Если не обращать внимание на это предупреждение и работать дальше, то возможны проблемы при попытке импортировать в сцену с
кастомными шейдерами, шейдера из другой сцены. Так как в разных сцена временный номер назначенный шейдеру будет разным.
Решается проблема так:
Надо всего лишь присвоить ID каждому шейдеру, для этого надо добавить строку #: nodeid 440960 в *.mi фаил шейдера
до 'end declare' для каждого шейдера в фаиле.
Например так:
declare shader
color "myShader" (
scalar "param1"
)
version 1
#: nodeid 440960
end declare
Эта строка нужна только для Maya, для Ментал Рея это всего лишь коментарии.
Вы можете связаться с компанией Alias для получения своего собственного диапозона ID, но если я не ошибаюсь это не бесплатная услуга.
Диапозон значений ID предоставленный компанией Alias для тестирования от 0 до 524287.
Использование номеров из этого диапозона гарантирует, что ваши ноды никогда не будут конфликтовать с любыми Майскими нодами, но теоретически,
в случае совпадения номера, могут конфликтовать с плагинами официально не зарегистрированными.
Чтобы каждый не придумывал свой собственный номер я предлагаю договарится и назначать ID в соотвествии с данной таблицей.
Это вовсе не обязательно, просто рекомендация во избежания дальнейших разногласий.
Некоторые из этих номеров назначены самими разработчиками шейдеров.
| Dirtmap - |
#: nodeid 3000 |
Daniel "thebigMuh" Rind |
link |
| md_subScatter - |
#: nodeid 1067081 |
Mark Davies |
link |
| buffer_writer - |
#: nodeid 333003 |
Ledin Pavel aka Puppet |
link |
| z - |
#: nodeid 333004 |
Ledin Pavel aka Puppet |
link |
| md_rayDiffuse - |
#: nodeid 333005 |
Mark Davies |
link |
| Diffraction - |
#: nodeid 3001 |
Daniel "thebigMuh" Rind |
link |
| passthrough_deriv - |
#: nodeid 2002 |
Horvatth, Szabolcs |
link |
| ReflectionUtility - |
#: nodeid 2001
|
Horvatth, Szabolcs |
link |
| maya_rayDisplace - |
#: nodeid 333009 |
Olivier Renouard |
link |
| tranvol201 - |
#: nodeid 3003 |
Andy Hayes |
link |
| fisheye - |
#: nodeid 333011 |
Ledin Pavel aka Puppet |
link |
| Deriver - |
#: nodeid 333012 |
Daniel "thebigMuh" Rind |
link |
| lm_2DMV - |
#: nodeid 3002 |
Guy Rabiller |
link |
| RayType - |
#: nodeid 2003 |
Horvatth Szabolcs |
link |
| tiwdte_color - |
#: nodeid 333013 |
Image Works |
link |
| tiwdte_elevation - |
#: nodeid 333014 |
Image Works |
link |
| tiwdte_percent - |
#: nodeid 333015 |
Image Works |
link |
| tiwdte_color_uv - |
#: nodeid 333016 |
Image Works |
link |
| tiwdte_elev_uv - |
#: nodeid 333017 |
Image Works |
link |
| tiwdte_perc_uv - |
#: nodeid 333018 |
Image Works |
link |
| ML_Oren_Nayar - |
#: nodeid 2208010302 |
M. Oguz Tas |
link |
| Diffusion - |
#: nodeid 343712 |
Daniel "thebigMuh" Rind |
link |
Для некоторых шейдеров уже обновились *.mi фаилы, так что ничего править самим не придется, их можно скачать
здесь.
Если вы используете какие то другие шейдера, пожалуйста сообщите мне имя и ID, он будет добавлен в таблицу.
Так же, если приведенный ID конфликтуют с какими то плагинами, то прошу так же сообщить об этом мне.
Свои вопросы, предложения и пожелания прошу на puppet@rambler.ru
Удачи!
Ваш Puppet.