Если не указывать никакой nodeid, то шейдер будет работать, но при загрузке Maya напишет предупреждение:
// Warning: (Mayatomr.Nodes) : Node "my_phong" has no ID, assigning a temporary ID. Scene should be saved as .ma (ASCII). //
Это обозначает, что шейдеру будет назначен временный ID, проблема в том, что одному и тому же шейдеру в разных ситуациях могут быть назначены разные временные номера, что может привести к разным проблемам.
Теперь же вернемся немного назад к комментариям напротив параметров. Это так же Майские параметры, которые сам mental ray не видит. Возьмем строку:
#: shortname "dif" default 0.8 0.8 0.8
Слово shortname обозначает короткое имя параметра. Данное имя будет использоваться Maya во время сохранения сцены. Чтобы лучше понять, что я имею ввиду, можно создать простую сцену с несложным шейдинг нетворком, сохранить ее в *.та, после чего открыть ее в текстовом редакторе и посмотреть, как там записаны коннекшены и значения параметров.
Если короткое имя не указано, то Maya будет использовать для именования параметров в *.гпа и *.mb файлах что-то вроде “s01”, “s02”, “s03” и тд. , где число - это номер параметра (начиная сверху). Наверное, не сложно догадаться, что при таком подходе любое изменение количества параметров или просто при их перестановке старая сцена (сохраненная со старым шейдером) может просто потерять все коннекшены. Например, вы разрабатываете шейдер, который уже активно используется в производстве, и вот вам захотелось добавить новый параметр, вы это делаете, открываете старую сцену и видите, что все связи съехали или просто пропали. Чтобы этого не происходило, нужно добавлять новые параметры в самый конец, но это не всегда возможно (иногда это может выглядеть не очень красиво с точки зрения интерфейса), поэтому лучше всего использовать короткие имена. Тогда Maya при сохранении сцены будет использовать именно их. Рекомендую с самого начала придумать короткие имена для всех параметров, чтобы потом было меньше проблем.
Но что же делать, если у вас уже есть сцена, которая была сохранена без использования коротких имен? На этот случай можно открыть сцену со старым шейдером и пересохранить ее с опцией “Use Full Names for Attributes and Nodes”.
После чего сцена должна открыться целой и невредимой, с новой версией шейдера, разумеется, если вы не переименовывали параметры. После слова shortname у нас идет слово default, как вы, наверное, могли догадаться, - это значение параметра по умолчанию. Если этого не указывать, то при создании нового шейдера все параметры всегда будут равны нулю. Если кто-нибудь помнит, именно так выглядели все шейдера в Maya 5.0, обнуленные и черные. Понять, какое значение нужно поставить, чтобы шейдер заработал, было временами очень сложно, поэтому не пренебрегайте правильными значениями параметров по умолчанию. Так же у параметра могут иметься дополнительные служебные слова, например, min 0.0 max 100.0 говорит о том, что параметр не может быть меньше нуля и больше 100. Слова softmin и softmax отличаются от min и max тем, что они лишь ограничивают ползунок, но при желании параметр можно установить за пределы этих границ, вбив значение в поле вручную. Если ни мягкие, ни жесткие границы не установлены, то в интерфейсе у параметра вообще не появится ползунок. Ну вот, кажется, все основные аспекты мы рассмотрели.