NVIDIA .mi 文件是通过 NVIDIA 场景描述语言创建的,可以是 ASCII 或二进制文件。
在 mental Ray for Maya 中,您可以在 Maya 内编写并插入自定义 mental Ray 着色器的纯文本集成。它允许创建特殊用途的 Maya 节点,用于保存自定义的 NVIDIA (.mi) 文本。
可以借助于“自定义文本编辑器”(Custom Text Editor)和特殊的自定义文本控件将这些节点指定给某些 Maya 场景实体。
通过 mental Ray for Maya 生成的 mi 文件可以包含以下内容的自定义版本:包括镜头、体积和环境着色器、灯光着色器、材质着色器、纹理或实用程序着色器以及对象定义的摄影机输出语句。此外,还可以生成在输出的特定阶段写入的文本。
有关详细信息,请参见将自定义文本指定给对象或着色器。
mental Ray for Maya 插件提供专有的节点类型,即 mentalrayText 节点。与该节点一起提供了简单的用户界面,允许您在其中编辑 ASCII 文本。有关详细信息,请参见将自定义文本指定给对象或着色器。
使用“自定义文本编辑器”(Custom Text Editor),可以在特定情况下将这些节点连接到场景中的其他节点。
将 mentalrayText 节点指定给 Maya 节点是在“附加属性”(Extra Attributes)区域的 .mi 文本中完成的。mental Ray for Maya 在遍历场景和着色器图表时检查这一新属性。如果找到该属性,将编写已连接 mentalrayText 的内容而不执行进一步检查。
根据文本模式属性,附加自定义文本、添加前缀或完全替换所生成 .mi 文本中的现有文本。
Maya 渲染器将忽略这些附加属性,可以与通常一样安全地渲染场景。另一方面,由于灯光、对象与材质之间的依存关系断开,可能不再通过 mental Ray 渲染已更改的场景。请参见一般性说明。
“自定义文本编辑器”(Custom Text Editor)包含默认情况下处于暗显状态的两行下拉列表和按钮。
在 Maya 中选择对象或着色器时,“自定义文本编辑器”(Custom Text Editor)将根据选定的实体进行更新,所生成 .mi 文本中的现有文本。
自定义文本可以使用在变换过程中能识别的特殊占位符字符或字符串。它们在导出时将替换为实际值。有四种自定义文本变量受支持。
创建自定义文本节点并将其指定给在场景中选定的节点时,“属性编辑器”(Attribute Editor)将更新。
选项菜单列出先前创建的所有可用文本节点。通过在该选项菜单中选择新实体,将当前场景实体的文本指定替换为该新选择的文本节点。将场景保存到 Maya 文件的同时也会存储所有已连接或未连接的现有文本节点。必须通过标准的 Maya 方法删除自定义文本节点,因为“自定义文本编辑器”(Custom Text Editor)不提供相关的操作方法。
指定给摄影机的文本节点采用插件所创建的第一个输出语句。因此,可以创建自定义图像文件和帧缓冲区。此外,也可以添加镜头、体积和环境着色器。其他摄影机参数不受影响,仍根据 Maya 中设定的设置写入。
指定给灯光的文本节点会影响原始灯光着色器输出。灯光参数保持不变,并且将与通常一样写入。使用标准 Maya 灯光着色器的替代项时,将断开 Maya 材质的照明,因为这些替代项依赖于特殊的灯光依存关系节点。
指定给着色组的自定义文本节点会影响 mental Ray 材质的导出。如果在替换模式下应用文本,则根本不会导出已连接的曲面、体积和置换着色器。否则,这些着色器将与通常一样写入,包括它们自己的从属节点。
如果将场景保存到 Maya 文件中以后进行还原,由于不可删除的默认 lambert1、particleCloud1、initialShadingGroup 和 initialParticleSE 节点是以非标准方式处理的,则它们不会存储指定的附加文本。文本节点已存储,但到这些节点的连接都会丢失,必须重复建立连接。任何其他 Maya 曲面节点将按照预期方式保存和还原。
自定义文本节点支持有限的动画。导出动画时,会逐帧检查常规节点属性是否存在更改,并在每个后续帧中增量式导出节点。即使附加自定义文本,也会发生这种情况。
不检查 mi 语法的正确性,可以在自定义文本中使用有效的名称引用。
对于包含空白文本并不打算附加、但连接到实体的自定义文本节点,将移除着色器或它所属对象的输出。
由于受 Maya 灯光依存关系的限制,无法再通过 mental Ray 成功渲染包含自定义文本和标准 Maya 节点的场景,尤其是在使用自定义的灯光节点时更是如此。
自定义文本不应使用返回结构的任何着色器。在连接中,始终仅通过节点名称写入节点,不附加输出栓的名称,例如 .outColor。