MayaMan Help Contents

# MayaMan Model Procedural

The MayaMan Procedural node is a mechanism for inserting calls to renderman procedurals. This node makes it easy to create a standard Maya GUI for procedural's parameters.

### Procedural

#### Program

The name of the procedural to run. Can be a program or a dll/dso.

#### Dynamic Load

Turn this on if the procedural is a dll/dso. This is required because ideally the name that is used in the program field is not decorated with an extension... using an extension results in ribs that can't work cross-platform.

### Bound

These values are interpreted one of two ways. If the inputMesh attribute is not connected then these values define a bounding box. If the inputMesh attribute is connected then they are offsets for the bounding box of the mesh.... note that these are offsets not a pad factor so the min x/y/z components should be negative at all times.

The displacementBound is used to expand the box to take into account the effect of displacement shader that the procedural may emit.

### Add Parameter

This is where the parameters for the procedural are configured. For each paramter enter it's Name, select it's Type, set the Default and choose how the parameter is passed then push the Create button.

The parameter is passed to the procedural according to the settings of the following switches:

Command Line | When checked the parameter will be passed on the command line to the program (ie: argc/argv) otherwise it will be passed as the argument string that follows the detail value.
No Name | When checked the parameter will only have it's value inserted into the argument, otherwise a name/value pair will be inserted and decorated according to the Leading Dash and Equals Symbol flags.
Leading Dash | When checked the parameter name as passed in the name/value pair will have a - prefixed, ie: -foo 1.0
Equals Symbol | When checked the parameter name as passed in the name/value pair will have a = between the name and the value, ie: foo=1.0

It will be common to use both the Leading Dash and Equals Symbol so that name/value pairs are formatted like this: -foo=1

Note that the choices made for these four flags can be changed at any time by adding/removing the parameter names from the Qualifiers section.

Tip, recording the MEL from a parameter configuration session and storing it as a script will make it easy to setup future uses of the procedural.

### Qualifiers

A record of the parameter passing choices made at parameter creation time... can be modified by adding removing parameter names (space separated) from these values. Being in the list implies that the parameter should be handled as if the corresponding flag was enabled when the parameter was created.

### Parameters

This is where the newly created parameters will appear as well as any other parameters that are added to the node with the MEL addAttr command.

### Extra Args

So that special flags like the ones outlined here can be passed there are two extra fields for passing arguments that fall outside the scope of what can be represented with regular parameters .

### What Material Will Get Used?

Materials can be assigned to the procedural node just like any other node type, unfortunately Maya does not display the material in the attribute editor tab. To work around this a Navigate To Material button features prominently at the top of the dialog, pressing it will navigate to the first material attached.

### Motion Blur

When backward motion blur mode is enabled the procedural *must* emit it's time samples in reverse order so that shadow application happens properly. That is to say... if you are evaluating frame 1 in backward motion blur mode you first need to output data for frame 1 and then output data for previous times.

If linear motion blur mode is enabled then procedurals should emit data on even frame numbers. Previously for forward motion blur of 50% a procedural would emit data at frame X and then at frame X+0.5. Now it should emit data at frame X and X+1 and the shutter will be used to create just the desired amount of blur. Likewise for backward blur the previous behaviour was to output frame X-0.5 and then X but under the new paradigm the procedural should output frame X and then X-1.

MayaMan Help Contents