Using Houdini with 3Delight
I had to do a little detective work on what’s required to get Houdini to work smooth with 3Delight as there’s zero docs on any RMan setup stuff really.
Below is a description that aids in creating a local setup in you home folder (that’s how it works for me for now).
First, make sure the environment is set, aka ‘$HFS’ is defined. For a Bourne shell:
> source /opt/houdini/hfs8.0/houdini_setup_bash
All shaders in ‘$HFS/houdini/ri_shaders/*.sl’ must be compiled with shaderdl:
> cd $HFS/houdini/ri_shaders > sudo shaderdl *.sl
The display driver & noise collection for RenderMan must be installed (‘$HEXT’ in below examples would probably be in your home folder. In my case ‘HEXT=/home/moritz/houdini8.0`):
> proto_install.sh -i $HEXT -p RManDisplay.inst
> proto_install.sh -i $HEXT -p RiHNoise.inst
The display driver must be linked in the ‘~/rendermn.ini’ so 3Delight can find it (or preferrably become root and modify the ‘$DELIGHT/rendermn.ini’). Add the following line to your ‘~/rendermn.ini’:
/display/dso/houdini $HEXT/ri_shaders/d_houdini.so
Ensure the shaders, noises and display driver can be found by 3Delight. For a Bourne shell, you might want to add the following to your ‘~/.basrc’ or ‘~/.zshrc’ or the like.
export DL_SHADERS_PATH=$DL_SHADERS_PATH:$HFS/houdini/ri_shaders
export DL_DISPLAYS_PATH=$DL_DISPLAYS_PATH:$HEXT/ri_shaders
export DL_PROCEDURALS_PATH $DL_PROCEDURALS_PATH:$HEXT/ri_shaders
Houdini uses PRMan’s default commands to render and compile shaders and I haven’t found a way to change this (am I too lame or is Houdini lame in that regard?). I thus setup two shell scripts (not aliases, they work only inside shells!) that take care of this. Of course, you could also create symbolic links from ‘render’ and ’shader’ to ‘renderdl’ and ’shaderdl’ respectively.
One is called ‘render’ and contains:
#! /bin/sh
renderdl
You might want to try using
#! /bin/sh
renderdl -p 0
to have 3Delight use all CPUs of your box (I haven’t tested this)
The other one is called ’shader’ and contains:
#! /bin/sh
shaderdl
That’s it. With this setup you can build RenderMan shaders and render previews straight out of Houdini using 3Delight.
As of 3Delight 7, the last 3 shell scripts can be replaced by setting an environment variable.
From the 3Delight docs:
Integration in Houdini is substantially improved by letting Houdini know that 3DELIGHT is the preferred RenderMan renderer. This is done by setting the HOUDINI_DEFAULT_RIB_RENDERER environment variable to `3Delight7.0′. This variable will instruct Houdini to use 3DELIGHT for shader compilation and for rendering, and also provides relevant default properties for the RIB output driver.
Comment by flux — 27. 2008f 2008 @ 22:00