Rendering Rendering with RenderMan
See also: How to use AIR
Houdini is set up to render using mantra. It is possible to use RenderMan; however, a lot of the parameters on objects are intended for rendering with mantra.
Choosing a renderer
Each RIB target renderer has its own executable, way of compiling shaders, attributes, options, and features. Much of this is handled by Houdini behind the scenes. However, as a big head start, you can give Houdini a hint as to which render you are using by setting the environment variable
HOUDINI_DEFAULT_RIB_RENDERER
to the render target you want to use. The list of renderers can be inferred by looking at the $HH/soho directory and scanning the files. The current renderers are
-
3Delight6.5
-
air4.0
-
prman12.5
-
prman13.0
-
rdc3.4
# set up for prman13.0 export HOUDINI_DEFAULT_RIB_RENDERER=prman13.0
Houdini uses the following variables in several places.
|
hrmanshader |
The wrapper around the shader compiler. Based on the value of this variable, Houdini will invoke the appropriate shader compiler. |
|
RIB output driver |
The initial properties on the output driver are determined by the value of this variable. |
Customizing the View: RenderMan menu
The render menu in viewports has an entry View:RenderMan This will render the scene without having to create an output driver. However, Houdini needs to know which application to invoke to render the scene. This is determined by setting the environment variable HOUDINI_VIEW_RMAN.
# Set up for 3delight export HOUDINI_VIEW_RMAN=renderdl
Customizing object parameters
In Houdini, geometry objects are set up for rendering with mantra. However, this can be changed to work with RenderMan.
-
Create a geometry object in Houdini.
-
Choose Edit Rendering Parameters in the the
menu in the parameter editor. -
Remove all of the mantra parameters.
-
Add the appropriate RIB parameters.
Different users may prefer different properties. The following list is not a complete list of all RenderMan parameters, but a list of useful ones.
-
Dicing
-
Binary Dicing
-
Raster Oriented Dicing
-
Motion Factor
-
-
Geometry
-
Automatically Compute N for Polygons
-
Render as points
-
Polys as subdivision
-
Backface Removal
-
-
Shading
-
Categories
-
Camera Hit Mode
-
Color (Cs)
-
Opacity (Os)
-
Matte
-
Cull Shading of Backface Surfaces
-
Shading Quality
-
-
-
Choose Save As Permanent Defaults from the
menu in the parameter editor. This will save the presets to the $HOME/houdiniX.X/presetsdirectory and can be moved to per-shot, per-job or per-site directories. For more information see the Houdini Path help.
Once you save the parameters as permanent default parameters, they will be applied to all new objects.
The same process can be done with lights and cameras, though lights should work fairly well out-of-the-box in Houdini.
Importing shaders
You can use VOPs to create RSL shaders, or you can import other shaders that you have written.
To import shaders, run a Python script which parse the output of sloinfo (prman), shaderinfo (3Delight), aqsltell (Aqsis), sdrinfo (Pixie), etc. Houdini ships with 2 scripts: slo2otl.py to convert prman shaders and sdl2otl.py to convert 3Delight shaders.
The scripts are reliant on being able to parse information about shader parameters, but should be fairly easy to customize for an unsupported renderer.
For example:
slo2otl.py -l myshaders.otl *.slo
This will create an OTL which can be imported into Houdini. All of the recognized shaders will exist as SHOP nodes.
Setting up the display driver
Houdini ships with a driver for prman. This driver works with 3Delight and possibly other renderers. You can install the driver using the proto_install command line tool.
Once this is done, the Houdini output driver will allow the RIB renderer to render directly to MPlay. There is an option to change the framebuffer device in prman so that all framebuffer renders to go MPlay as well.
Usage tips
You can improve shading quality by adding the Shading Interpolation rendering parameter.