Prev | Next

Ri for MEL

These features are supported by the RenderMan for Maya “Pro” plugin in RenderMan Studio and are not available with the regular RenderMan for Maya plugin.

RenderMan for Maya has superb support for RenderMan Attribute and Option control based on Maya attributes. This “data-centric” support is fundamental to Maya's operation and offers advantages for file reference parameter animation and general orthogonality with Maya tools.

There are times where procedural control of RenderMan state is desirable. We offer this capability in RfM 2 Pro through a MEL binding to RenderMan Interface procedures. Whether rendering directly (internally) or to produce RIB, these new commands can be used to tailor the Ri stream via mel procedures. New torattrs are supported to provide hooks for custom mel procedures. These can be assigned to shape, light and transform nodes and will be executed when RfM is rendering.

Runs during rendering/ribgen and provides a hook to override rendering options via script control.
Runs during rendering/ribgen and provides a hook to override default rendering attributes via script control
Runs during rendering/ribgen at each transform nodeimmediately following RiAttributeBegin.
Runs during rendering/ribgen at each transform node immediately following the setup of the transformation state.
Runs during rendering/ribgen at each transform nodeimmediately preceeding RiAttributeEnd.
Runs during rendering/ribgen at each shape node immediatelypreceeding geometry output.
runs during rendering/ribgen at each shape node immediately following geometry output.

Ri Commands


Ri commands fall into two broad syntactic classes: commands with and commands without variable length parameter lists. Those commands without variable length parameter lists generally accept typed, positional arguments following the RIB binding conventions. For example, a red color is specified this way:

 RiColor 1.0 0.0 0.0
Since Ri parameter lists are comprised of a heterogeneity of types, we follow the Ri-convention that requires parameter-type declarations be provided. Modern practice combines the type declaration with the parameter name to produce an inline declaration.

Inline Declaration Syntax
 "type name" ''value''
 "type[arraylen] name" ''value1'' ... ''valueArrayLen''
Parameterlist Examples
 RiAttribute "identifier" "string name" "myname"
 RiAttribute "visibility" "int camera" 1 "int trace" 0
 RiSurface "mySurfaceShader" "string[2] myFiles" "file one" "file two" 
            "float Ks" 1.0 "float[5] myweights" 1 2 3 4 5;
   RiBegin filename_string
   RiFrameBegin frame_int
   RiSolidBegin operation_string ("primitive", "intersection", "union", "difference")
   RiOption namespace_string ...parameterlist...
   RiHider hidername_string ...parameterlist...
   RiFormat xres_int yres_int pixelaspectratio_float
   RiPixelSamples xsamples_int ysamples_int
   RiScreenWindow left_float right_float bottom_float top_float
   RiCropWindow xmin_float xmax_float ymin_float ymax_float
   RiProjection projtype_string ...parameterlist...
   RiClipping near_float far_float
   RiDepthOfField fstop_float focallength_float focaldistance_float
   RiShutter min_float max_float
   RiDisplayChannel channeldecl_string ...parameterlist...
   RiDisplay name_string type_string mode_string ...parameterlist...
   RiRelativeDetail relativedetail_float
   RiAttribute namespace_string ...parameterlist...
   RiColor red_float green_float blue_float
   RiOpacity red_float green_float blue_float
   RiSurface shadername_string ...parameterlist..
   RiDisplacement shadername_string ...parameterlist..
   RiAtmosphere shadername_string ...parameterlist..
   RiInterior shadername_string ...parameterlist..
   RiExterior shadername_string ...parameterlist..
   RiLightSource shadername_string lighthandle_string ...parameterlist...
   RiIlluminate lighthandle_string onoff_bool
   RiShadingRate size_float
   RiGeometricApproximation type_string value_float
   RiShadingInterpolation interp_string  (smooth, constant)
   RiMatte onoff_bool
   RiDetail minx maxx miny maxy minz maxy (floats)
   RiDetailRange minvisible lowertransition uppertransition maxvisible (floats)
   RiSides sides_int  (1 or 2)
   RiOrientation orientation_string  (lh, rh, inside, outside)
   RiResource handle_string type_string ...parameterlist...
   RiRotate angle dx dy dz (floats)
   RiScale sx sy sz (floats)
   RiSkew angle dx1 dy1 dz1 dx2 dy2 dz2 (floats) 
   RiTranslate x y z (floats)
   RiCoordinateSystem  coordsysname_string
   RiScopedCoordinateSystem coordsysname_string
   RiSphere radius zmin zmax angle ...parameterlist...
   RiProcedural (work only with RIB out)
   RiProcedural "DelayedReadArchive" filename xmin xmax ymin ymax zmin zmax
   RiProcedural "DynamicLoad" dsoname xmin xmax ymin ymax zmin zmax ...paramlist...

Prev | Next



Pixar Animation Studios
Copyright© Pixar. All rights reserved.
Pixar® and RenderMan® are registered trademarks of Pixar.
All other trademarks are the properties of their respective holders.