Create a CgFX shader

The use of the CgFx shader is no longer recommended as it is based on legacy technology. Use the GLSL shader instead.

CgFX shaders are only supported in the OpenGL - Legacy and OpenGL - Core Profile (Compatibility) display modes. See Viewport 2.0 Rendering engine.

To load the CgFX plug-in

  1. Select Window > Settings/Preferences > Plug-in Manager.
  2. In the Plug-in Manager, load the plug-in, then click Close.

To create a CgFX Shader material

  1. In Hypershade, select the CgFX Shader material from the Maya > Surface list.

    The new shading material appears in the Hypershade, and the CgFXShader material node appears in the Attribute Editor.

  2. In the CgFX Shader section, type in the path to the .cgfx file you want to use, or browse to the .cgfx file.

    Once the .cgfx file is connected to the CgFXShader node, the plug-in automatically loads attributes (if any exist) into the Extra Attributes section in the Attribute Editor.

  3. Open the Extra Attributes section, and adjust any attributes as necessary.
  4. Assign your new CgFX Shader material to an object in your scene. For more information, see Assign existing materials to surfaces.
  5. In the scene view, turn on Hardware Texturing in the Panel: Shading menu.

Adding placement into CgFx shaders

Cgfx shaders do not automatically support texture placement which is found inside Maya (place2DTexture or place3DTexture node) because CgFx is a node which uses a programmable shading language. Using this language means that the texture transform cannot be set from outside. Instead, it needs to be explicitly coded into the shader. If such parameters are in the shader, then the automatic UI generation creates the UI elements. You should then connect the appropriate attributes from the texture placement node(s) to the attributes on the shader.

Note:

If you enable the Consolidate world option under Options > Viewport 2.0 > , CgFx plug-ins that depend on local vertex position may not behave as expected.

In the example below, the check3d.cgfx shader applies the 3D checkerboard pattern to the object relative to the position of the surface in the local space of the object, and therefore may produce unexpected results in Viewport 2.0. The same shader is applied to both spheres but the checkerboard pattern moves when you tumble the scene or select the spheres when Consolidate world is turned on.