Load shaders

You can import a custom shader library in the following ways:

These methods are explained in more detail below.

To import a custom shader library

  1. Copy the declaration file to the shaders/include directory of your mental ray for Maya installation.
  2. Copy the library file into the shaders directory of your mental ray for Maya installation.

    mental ray for Maya is able to load and render with your custom shader library. Placing the declaration file in the include directory also uses mental ray for Maya to parse the file and create new Maya node types that correspond to the shaders declared in the library.

With the mental ray Shader Manager

The Shader Manager lets you interactively load and unload mental ray shader libraries and work with them during a Maya session. (You do not need to shut down first, and you do not need to set the environment variable MI_CUSTOM_SHADER_PATH.)

You can select from a list of.mi library files that contain the mental ray shader declarations. The shaders contained in the selected.mi library files automatically appear in Hypershade, just like the Maya and mental ray for Maya base shader nodes. mental ray for Maya base shaders are now fully integrated into Hypershade and Create Render Node panel.

(You do not need to set the environment variable MAYA_MRFM_SHOW_CUSTOM_SHADERS to show custom shaders in Hypershade.)

To load or unload custom mental ray shaders

  1. Select Window > Rendering Editors > mental ray > Shader Manager.

    The Shader Manager opens and shows which declaration file Window > Rendering Editors > mental ray > Shader Manager are loaded.

  2. Click to load or unload a declaration file, auto load the file, or get information on the file. For descriptions of the buttons and options in the mental ray Shader Manager window, see Window > Rendering Editors > mental ray > Shader Manager.

With the MI_CUSTOM_SHADER_PATH and MI_LIBRARY_PATH environment variables

You need to add your .mi file to the MI_CUSTOM_SHADER_PATH environment variable path (unless you use the Shader manager) to load any shader that is to be rendered mental ray for Maya.

You also need to add the shader library binaries to the MI_LIBRARY_PATH environment variable.

Note: If you have shader library binaries in many directories, then you must use the maya.rayrc file in conjunction with the MI_CUSTOM_SHADER_PATH and MI_LIBRARY_PATH environment variables. See Edit the maya.rayrc file for more information.

MI_CUSTOM_SHADER_PATH

This variable tells mental ray for maya a directory where .mi files are located. Every .mi file located in MI_CUSTOM_SHADER_PATH will be parsed on plug-in load.

This environment variable should be set prior to loading the plug-in. mental ray for Maya interprets this variable in different ways. If it is not empty but does not point to an existing file or directory, a file dialog opens up as the mental ray for Maya plug-in is (auto-)loaded. A .mi file should be selected that contains mental ray shader/phenomenon declarations which the Factory should create Maya node types for. The file dialog comes up again in a loop to allow more than one .mi file to be loaded. It stops when the Cancel button has been pressed.

If the Factory should load all required files automatically, then a file or a directory containing .mi files should be given in the environment variable. For loading a single file, set MI_CUSTOM_SHADER_PATH as follows:

  • Linux

    setenv MI_CUSTOM_SHADER_PATH /usr/local//autodesk/Maya201x/mentalray/shaders/include/base.mi

  • Windows

    set MI_CUSTOM_SHADER_PATH=C:/Program Files/Autodesk/Maya201x/mentalray/shaders/include/base.mi

For parsing all files in a directory, you could use (in which no file dialog will appear) the following:

  • Linux

    setenv MI_CUSTOM_SHADER_PATH /usr/local/mi/rayinc

  • Windows

    set MI_CUSTOM_SHADER_PATH=c:/usr/local/mi/rayinc

The default value of MI_CUSTOM_SHADER_PATH is Maya201x/mentalray/include.

You can modify Maya.env to add your own directory to the path. For example, the following line in Maya.env will append C:\myshader\include to the path :

MI_CUSTOM_SHADER_PATH = C:\myshader\include

To make sure your shader is loaded by default, you can either add the directory to the path, or put the file in the path.

While mental ray plug-in is loaded, base.mi, contour.mi and physics.mi are parsed, nodes for each shader declared in the .mi files will be created. See the Script Editor for nodes being created.

Same for your shader. If the .mi file is in MI_CUSTOM_SHADER_PATH, you should be able to find your shader name in the Script Editor. For example, my Script Editor has following lines (if optionVar miFactoryVerbosity is set to 4 or higher. ( myshader1 and myshader2 are declared in myshader.mi )

 // generating nodes ...
 // parsing C:/myshader/include/myshader.mi
 // myshader1
 // myshader2

MI_LIBRARY_PATH

This variable tells mental ray for Maya where to locate the shader library binaries.

For loading a single file, set MI_LIBRARY_PATH as follows:

  • Linux

    setenv MI_LIBRARY_PATH /usr/local//autodesk/Maya201x/shaders/base.so

  • Windows

    set MI_LIBRARY_PATH=C:/Program Files/Autodesk/Maya201x/mentalray/shaders/base.dll

For parsing all files in a directory, you could use (in which no file dialog will appear) the following:

  • Linux

    setenv MI_CUSTOM_SHADER_PATH /usr/local/mi/raylib

  • Windows

    set MI_CUSTOM_SHADER_PATH=c:/usr/local/mi/raylib

You can modify Maya.env to add your own directory to the path. For example, the following line in Maya.env will append C:\myshader\lib to the path :

MI_LIBRARY_PATH = C:\myshader\lib

To make sure your binaries are loaded by default, you can either add the directory to the path, or put the file in the path.