PRman and Houdini 10


PRman and Houdini

OK first off, lets link some resources:

The odforce wiki page on this subject. DCT systems has a writeup. SCAD student Alex Lim has one too. As does Hubert Weldon.

However there aren't any for PRman 14.3, OSX 10.5 and Houdini 10, which was the combination I had to deal with at the time. An odd one I know but the setup should be pretty similar to *nix, just with OSX's weirdness.

Right, so go grab PRman from Pixar's website and install as per usual. You want to install Renderman Pro Server. If you need it, install the licensing utils so you can use it. Now that that is in place, start up a houdini shell and type proto_install (a houdini shell icon is in the same rollout as where you normally start houdini on a mac- ie under Applications). You should see a list of options, one of them will be RmanDisplay.inst, enter the number and install that. Don't worry if the test flakes out for it, it will work without passing that. This util is to display the Rman complient shaders in Houdini's shader editor, plus you can get renderman to output to mplay instead of IP.

In the houdini shell, add the path $RMANTREE to $PATH by typing this:

export RMANTREE=/Applications/Pixar/RenderMan.app/Versions/RenderManProServerR-14.3/

You MAY need to change your shell type to CSH to do this, the memory is hazy. You also need to add $RMANTREE/bin to $PATH, an easy way to do all of this is with a script:

echo 'Setting up prman' export RMANTREE="/Applications/Pixar/RenderMan.app/Versions/RenderManProServerR-14.3 export PATH="$PATH:$RMANTREE/bin"

So... save that bunch of code as scriptname.sh, chmod it to 777, and type 'source scriptname.sh' in the shell to run it. This will make sure your environment variables are all good, and the shell can find things like the PRman executable. Now type 'houdini' in the shell to start houdini itself, it will be running in the shell's environment.

In your new houdini session add a sphere, a camera, don't worry about a light for now. Add a Renderman output driver, and set it's command to $RMANTREE/bin/prman. Change the Render Target to the version of Renderman you are running. Hit render, and you should have a sphere with a headlight added by prman.

How to add your own shaders:

You need to compile from a .sl to a .slo using "shader test.sl" found in $RMANTREE/bin/ Then in the houdini shell, run "slo2otl.py -l theshader.otl theshader.slo" to turn the .slo into an otl. This is why it was important to add the $RMANTREE/bin to $PATH, since the shell needs to be able to find sloinfo for this to work. You also need to add your shader's directory to $HOME/rendermn.ini, so open that and append a shader path after the /lib/shaders by doing this: /shaderpath /Applications/Pixar/RenderMan.app/Versions/RenderManProServerR-14.3/lib/shaders:/Users/msawtell/Projects/Carpaint/shaders

Now that you have an otl from slo2otl and PRman will find your shaders when called, install the OTL in houdini as per normal (file- install digital asset library), it should be available in Shops as a new node you can put down, and you can now render with it. If the shader invokes raytracing, you should add the parameter "ri_visibletransmission" to your geo object that the shader is applied to. It still seems to work without it, but the houdini shell will complain. Note that you can also now put down a VOPs node in SHOPs called VOP RSL Surface Shop, which gives you a Renderman VOPs environment to build up your shader graphically. Very cool!

Lights

The houdini shell also seems to complain if you put down a standard spotlight, and the light isn't rendered. A simple way to get around this is to make a renderman light shader in SHOPs, and use that in a light template. IE in shops, make a RMan Point Light, in SOPs make a light template, and assign the SHOPs node as it's light shader. I haven't played around with it beyod this as yet, but it shows how to get a light shader in there.

So now the workflow goes like this:

1) Open a houdini shell, type "source prmansetupscript.sh" 2) type "houdini" to start houdini 3) render with your rman output driver using the above setup.

Now, I have no doubt missed a whole bunch of really small simple steps that will hold you up. So when you find out what they are, tell me and I'll put them in here. I'll also look at doing a windows one too.