创建 CgFX 着色器

Cgfx 着色器基于传统技术,因此不再建议使用。请改用 GLSL 着色器

CgFX 着色器仅在“OpenGL - 旧版”(OpenGL - Legacy)“OpenGL - 核心配置(兼容性)”(OpenGL - Core Profile (Compatibility))显示模式下受支持。请参见 Viewport 2.0 渲染引擎

加载 CgFX 插件

  1. 选择窗口 > 设置/首选项 > 插件管理器(Window > Settings/Preferences > Plug-in Manager)
  2. 插件管理器(Plug-in Manager)中加载该插件,然后单击 “关闭”(Close)

创建“CgFX 着色器”(CgFX Shader)材质

  1. “Hypershade”中,从“Maya > 表面”(Maya > Surface)列表中选择“CgFX 着色器”(CgFX Shader)材质。

    “Hypershade”中将出现新的着色材质,并且“属性编辑器”(Attribute Editor)中将出现“CgFXShader”材质节点。

  2. “CgFX 着色器”(CgFX Shader)部分中,键入需要使用的 .cgfx 文件的路径,或浏览到 .cgfx 文件。

    一旦 .cgfx 文件连接到 CgFXShader 节点,插件会自动将属性(如果存在)加载至“属性编辑器”(Attribute Editor)“附加属性”(Extra Attributes)部分中。

  3. 打开“附加属性”(Extra Attributes)部分,然后根据需要调整任何属性。
  4. 将新的“CgFX 着色器”(CgFX Shader)材质指定给场景中的对象。详细信息请参见将现有材质指定给曲面
  5. 在场景视图中,打开面板:“着色”(Shading)菜单中的“硬件纹理”(Hardware Texturing)

将放置添加到 CGFX 着色器

由于 Cgfx 是一个使用可编程着色语言的节点,因此,Cgfx 着色器不会自动支持在 Maya(place2DTexture 节点或 place3DTexture 节点)内找到的纹理放置。使用此语言意味着无法从外部设定纹理变换。相反,它必须明确编码至着色器中。如果这类参数仅次于着色器中,则自动 UI 生成功能将创建 UI 元素。然后,您应将适当的属性从纹理放置节点连接到着色器内的属性。

注:

如果启用“选项 > Viewport 2.0”(Options > Viewport 2.0) > 下的“合并世界”(Consolidate world)选项,则依赖于局部顶点位置的 CgFx 插件可能不会按预期方式运行。

在以下示例中,check3d.cgfx 着色器将 3D 棋盘格图案应用于与该对象局部空间中的曲面位置相对的对象,因此可能会在 Viewport 2.0 中生成意外的结果。同一着色器将应用于两个球体,但在“合并世界”(Consolidate world)已启用时,如果翻滚场景或选择球体,则棋盘格图案将会移动。