MayaMan Help Contents

# MayaMan Magic Shaders

MayaMan will automatically write RenderMan shaders for you based on the material hierarchies defined in Maya's HyperShade. These shaders written and compiled by MayaMan are referred to as 'Magic Shaders'.

### Supported Maya Shader Nodes

Most of the shading nodes that are built into Maya are supported by MayaMan's Magic Shaders mechanism. We have done our best to support all the shader nodes, but we are trying to emulate Maya's own code, and so there are bound to be many situations and combinations of parameters that yield a somewhat different result when rendering with MayaMan.

If there are any nodes that do not appear to be supported, or any nodes which give a result that is significantly different to the Maya renderer's result, then please let us know at support@al.com.au. Also let us know if there are any 3rd party shading nodes written for Maya that you would like to see supported. We cannot guarantee that we can support these, but if there is sufficient support we will look into it.

For a comprehensive listing of the nodes supported with any given MayaMan release, please refer to the file 'maya_texture_description' in the MAYAMANROOT/shaders directory. This is the file actually used by MayaMan, so any nodes not mentioned in that file will not be supported.

### How it works

MayaMan analyses the HyperShade networks to determine how your materials are constituted. For each shading node in a material network, MayaMan will write a chunk of RenderMan code into a temporary source file. When all the nodes are written it will then call the shader compiler of the renderer being used to compile the source ready for use.

These files are written into a subdirectory of the RIB output directory named 'shaders'. The source and compiled shader filenames are based on the Maya material names. For example, if your RIB output directory was 'c:\temp\mayaman' and you had a material node called 'lambert1' in your scene, then MayaMan would write out a source file of 'c:\temp\mayaman\shaders\mms_lambert1.sl' and compile it into that same directory.

This shader file will be correctly attached to the geometry in the RIB files MayaMan creates.

### Texture File Substitution

Sometimes you have a pre-converted renderman texture that you want to use with a file node or image plane. Perhaps the image is a floating point displacement map (which doesn't work well with maya's file node) or is very high rez (and maya bogs down). In these cases you can prepare the texture and a proxy image for maya. After mayaman does a rib-gen each file node will get a string attribute called 'MayaManTexture'. Put the name of your texture map in the attribute and it will be used instead (maya will still display it's low rez image).

MayaMan inspects the file and if it's already a texture file then it's used as is... otherwise mayaman will attempt to convert it to a texture and put the result in the texture cache. Note that conversion of texture files that have project relative path names is not currently supported in this context.

Use of the texture search path is recommended so that these paths can be kept simple.

MayaMan Help Contents