celmer Posted February 7, 2006 Share Posted February 7, 2006 hi, i'm relatively new to houdini, and very new to prman. i have a shader written and compiled as an .slo file, which houdini recognized via loading an otl library. but I get nothing when i render out. I've stripped the shader to just coloring the surface green, and still, nothing shows up, though it renders out fine from Cutter, the program i'm using to write the shader. just wondering what i'm doing wrong... i'd appreciate any help, -chris Quote Link to comment Share on other sites More sharing options...
RickWork Posted February 7, 2006 Share Posted February 7, 2006 hi, i'm relatively new to houdini, and very new to prman. i have a shader written and compiled as an .slo file, which houdini recognized via loading an otl library. but I get nothing when i render out. I've stripped the shader to just coloring the surface green, and still, nothing shows up, though it renders out fine from Cutter, the program i'm using to write the shader. just wondering what i'm doing wrong... i'd appreciate any help, -chris 24481[/snapback] how did you make it into an otl? with rmands? I'm going by memory here but I think the command is something like: rmands -l myshader.otl *.slo I believe this should make all the dialog scripts for you and point to your shader source. Quote Link to comment Share on other sites More sharing options...
Mcronin Posted February 7, 2006 Share Posted February 7, 2006 Rick is correct, the easiest method to create the dialogue script is with rmands. Also, something which you may not understand, when you create an HDA from a .slo, all you are doing is creating an interface that controls variables that have been exported from your .slo. When you render to PRMan from Houdini, Houdini creates a rib with your parameters and a link to the .slo you compiled for PRman. The .slo is not in the HDA and the HDA does not know where the .slo lives. So, what you need to do is set a specific environment variable to tell Houdini where all your .slo files live. Then when you try to render with PRMan it will use the variable to substitute a path in the rib for your .slo files so PRMan can find the actual shaders. The variable you want is "HOUDINI_RI_SHADERPATH". Set it to the path to where you are storing all your shaders and you should be good to go. Another thing, and this is pure stupidity, but I have to mention it because I do it all the time... Make sure there is a light in your scene. You won't see anything if you don't have a light. You can use a Houdini light, but I think you will need to have the PRMan default light shaders in your shaderpath somewhere as well in order for it to work (just throw all the shaders that ship with PRMan in your shader directory and it should all work out). Quote Link to comment Share on other sites More sharing options...
celmer Posted February 7, 2006 Author Share Posted February 7, 2006 thanks! did the trick! Quote Link to comment Share on other sites More sharing options...
RickWork Posted February 7, 2006 Share Posted February 7, 2006 The .slo is not in the HDA and the HDA does not know where the .slo lives. So, what you need to do is set a specific environment variable to tell Houdini where all your .slo files live. Then when you try to render with PRMan it will use the variable to substitute a path in the rib for your .slo files so PRMan can find the actual shaders. The variable you want is "HOUDINI_RI_SHADERPATH". Set it to the path to where you are storing all your shaders and you should be good to go. ohh yeah! I forgot about the HOUDINI_RI_SHADERPATH. I was under the impression that it referenced the path in the hda since my shaders always worked Learn something new everyday. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.