请在以下情况下遵循这些提示来查看您的自定义 mental 着色器:          

  • 渲染时

  • 在 Hypershade 或属性编辑器中作为样例

  • 在场景视图中

  • 在启用硬件纹理的场景视图中

有关用于编写自定义 mental Ray 着色器的语法的详细信息,请参见 mental Ray 着色器语言扩展。          

文件样例与交互式样例

 着色节点的分类字符串确定了该样例是文件样例还是交互式样例。文件样例作为静态图标显示在“Hypershade”中,而交互式样例会动态更新。      

 

样例类型 分类字符串包含...

文件样例

mentalRaySwatchGen

交互式样例

swatch/mentalRaySwatchGen

启动 Maya 时,注册着色节点时也会注册分类字符串。为了更改特定着色节点的分类字符串,必须在启动 Maya 之前编辑 mentalrayCustomNodeClass.mel 文件。可以在 <maya directory>/scripts/others 中找到该文件。

若要检查着色节点的分类字符串,请使用以下 MEL 命令:

getClassification <nodeType>

其中,<nodeType> 是要检查的着色节点。例如:

getClassification mib_illum_lambert;

在渲染时查看自定义 mental ray 着色器

有关如何导入自定义着色器库的信息,请参见加载着色器

此外,如果着色器针对 mayabase.lib 进行链接,那么 mayabase.dll 必须在 PATH 环境变量中。将下面一行添加到 Maya.env 文件:

PATH = $MAYA_LOCATION/mentalray/shaders;$PATH

在 Hypershade 或属性编辑器中作为样例查看自定义 mental ray 着色器

编辑 mentalrayCustomNodeClass.mel 文件(位于 $MAYA_LOCATION/scripts/others/)并添加着色器。该文件定义了 mental ray 着色器的分类字符串。确保着色器的分类字符串包括 swatch/mentalRaySwatchGen。mental ray 用于渲染着色器的样例。如果定义自定义 AE 模板,该样例将显示在 Hypershade 和属性编辑器中。

在着色模式下查看场景视图中的自定义 mental ray 着色器

场景视图将尝试实现简单的 Phong 着色模型以显示自定义着色器。硬件着色器将查找特定属性以符合 Phong 模型的要求。至少应满足漫反射通道的要求。

如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的漫反射通道将由其中的任何一个属性驱动。属性类型必须为颜色。    

  • diffuse

  • base_color

  • material

环境光通道将由以下属性(如果存在)驱动。该属性必须为颜色。    

  • ambient

环境系数属性用于缩放环境光值。该属性必须为颜色。    

  • ambience

如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的镜面反射通道将由其中的任何一个属性驱动。属性类型必须为颜色。    

  • glossy

  • specular

  • spec

  • primary_spec_color

如果着色器上存在以下属性(如果存在多个属性,那么将使用列表中的第一个属性),则 Phong 模型的指数将由其中的任何一个属性驱动。这些属性必须是标量(浮点)属性。    

  • shiny

  • exponent

  • roughness

Phong 模型的 Alpha 值将由该属性(如果存在)驱动。它必须为标量(浮点值)。    

  • transp

在启用硬件纹理的场景视图中查看自定义 mental ray 着色器

若要在着色器上启用纹理,需要为着色器节点创建自定义属性编辑器。若要在自定义属性编辑器中添加自定义控件,请按如下所示调用 MEL 程序:

AEhardwareTextureTemplate(string $nodeName, string $attrTokens)

使用以下参数:    

  • $nodeName = 节点的名称                

  • $attrTokens = 以空格分隔的属性名称(可以向这些名称应用纹理)列表                

该程序会向属性编辑器中添加控件,从而允许您选择一个通道以使用硬件纹理。

示例着色器

有关可实现上述所有过程的着色器示例,请参考:$MAYA_LOCATION/mentalray/devkit/docs/writingShaders/lightlink

相关主题  

  • mental ray for Maya 自定义着色器                

  • mental ray for Maya 中的样例渲染                

  • mental Ray 着色器语言扩展                

,