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
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
# set up for prman13.0 export HOUDINI_DEFAULT_RIB_RENDERER=prman13.0
Houdini uses the following variables in several places.
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
# Set up for 3delight export HOUDINI_VIEW_RMAN=renderdl
Customizing object parameters
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.
Raster Oriented Dicing
Automatically Compute N for Polygons
Render as points
Polys as subdivision
Camera Hit Mode
Cull Shading of Backface Surfaces
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.
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
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.
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.
Windows requires you to run hython in order to run Python.
hython sdl2otl.py -l myrmanshaders.otl *.sdl
Hython will not find the
sdl2otl.py script unless
$HB is included in the Python path.
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.
You can improve shading quality by adding the Shading Interpolation rendering parameter.