Views
3DelightSetup
From Odwiki
[edit] Houdini 9 and up
This is copied with permission from the 3Delight manual:
- 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.
- Houdini comes with a 'houdini' display driver that can be used with 3Delight. This display driver is installed using the proto_install Houdini command.
- 3Delight provides a digital asset library of all the shaders included in the package. Once this file is imported in Houdini, all 3Delight shaders will exist as shop nodes. The digital asset library file can be found in the 'shaders' directory of the 3Delight installation ('$DELIGHT/shaders').
- Custom shaders can also be packaged in a digital asset library file which can then be imported in Houdini. The sdl2otl.py Python script that comes with Houdini will parse the output of shaderinfo to create the digital asset library file from any compiled shader file.
- While the RIB output driver comes with the most common rendering parameters, several more can be added through the parameter pane’s tool menu. It is possible to add new parameters, remove unwanted ones and save the custom parameter set as the default set to be used for future RIB output drivers. This is done through the Save as Permanent Default option of the parameters pane's Tools menu.
- The same mechanism can be used to modifiy any object’s rendering properties. Again, it is possible to define a new default set of attributes, better suited for rendering with 3delight than the default properties that Houdini creates by using the Save as Permanent Default option of the parameters pane’s Tools menu.
[edit] Houdini 8 and older
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 (again for a Bourne shell):
> 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
You might want to add that to your ~/.basrc or ~/.zshrc or the like.
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!) that take care of this.
One is called render and contains:
renderdl
You might want to try using
renderdl -p 0
to have 3Delight use all CPUs of your box (I haven't tested this)
- Note: There was a bug with this at one point since renderdl couldn't read from a pipe from houdini in multi-processor mode. The work around was to have a shell script which catted the input to a temp file and rendered from the disk file. This may have been adressed in more recent releases, but your mileage may vary.
The other one is called shader and contains:
shaderdl
That's it. With this setup you can build RenderMan shaders and render previews straight out of Houdini using 3Delight. :)



