Примечание; Некоторые из типов менталовских шейдеров до сих пор не поддерживаются Мауа’ей, например(State Shader), но это достаточно специфичная групп,а и поэтому тот, кто знает, зачем они нужны и как ими пользоваться, найдет способ прикрутить их к Maya.
Другой разницей, которая иногда приводит к недопонимаю у людей, воспитанных других рендерах, является тот факт, что непосредственно на объект можно назначить олько Surface Shader, но и, например, напрямую Texture Shader. To есть можно просто положить на обьект текстуру без как такового материала. Говоря более широко, с точки зрения шейдера, в mental ray нет разницы между mib_illum_blinn и обычным mib_tex-ture_checkerboard или даже mib_reflect. To есть разделения на группы: material и texture достаточно условны. Разумеется, light shader’a, например, нельзя назначить на объект, но ряд других шейдеров можно.
Для лучшего понимания я приведу еще один пример. Все знают, что в Maya есть Lay-ered Shader и Layered Texture. Первая нода служит для смешивания нескольких шейдеров, а вторая - для смешивания нескольких текстур. В mental ray же в обоих случаях можно использоваться mib_.color.mix, потому что разницы как таковой, с точки зрения mental ray, между текстурой и шейдером нет.
Но все же есть некоторые ограничения, и не все шейдера можно назначить на поверхность. Главный шеидер, лежащий непосредственно на поверхности, должен возвращать только один цвет, все же остальные могут возвращать сколько угодно color^ или других типов данных.
Не следует забывать, что все майские поверхностные шейдера возвращают по 4 со!ог’а(цвета), и поэтому, при попытке положить на слот material shader’a любой из них, возникнет ни о чем не говорящая ошибка. Данную ошибку можно наблюдать, положив на material shader слот - например, майский Checker. Однако, все будет работать нормально если на его месте будет менталовский mib_ texture_checkerboard.
Примечание: На слот material shader все же можно назначить майский шейдер, но для этого потребуется включить галку ‘Export with Shading Engine ’ в shading group, В этом случае Maya во время рендера сама вставит ноду, которая сконвертит 4 color ’a в rgba.
Color
Майски й тип color отличается от менталовского color, хотя в интерфейсе они выглядят совершенно одинаково. Майский color - это структура, состоящая из 3 компонентов RGB, а менталовский color - структура, состоящая из 4 компонентов RGBA, то есть добавляется alpha канал. У Maya Software рендера не возникает проблем при попытке подсоединит Color на Vector (XYZ), так как оба эти типа представляют собой структуру, состоящую иза трех элементов rgb и xyz соответственно. При рендере mental ray все color’bi становятся четырехкомпонентные, добавляется альфа канал, и именно по этой причине возникают некоторые проблемы при попытке соединить color и vector друг с другом.
API 0.0 warn 302018: type conflict: “weight3d” is type vector, “maya_checker” returns type color
Ну, предупреждение есть предупреждение, и ничего особо страшного не произошло, и теоретически все должно работать корректно. При этом четвертый компонент цвета (Al-pha), скорее всего, будет просто игнорирован. Но все же, в идеале такой ситуации стоит избегать, потому что не известно как может повести себя рендер в различных ситуациях. Некоторые люди уже написали свои шейдера (ноды) для решения этой проблемы, позволяющие конвертировать vector в color. То есть в том месте шейдинг нетворка, где вам нужно соединить vector с color, вы просто вставляете эту ноду, и она правильно делает конвертацию.