mmontoya Posted April 3, 2008 Share Posted April 3, 2008 (edited) Hello Houdini gentlefolk, When I render to Renderman I keep getting the following error: "P80005{ERROR} Parameterlist type mismatch in RIB stream. (al line 15 in stdin)" I have traced this error to the following line in the RIB file: Attribute "visibility" "transmission" ["Os"] It seems that in prman version 13.5 the string version of the transmission attribute has been replaced with an integer version. Despite having set my render target for prman 13.0 in Houdini, it looks like its using the string version of the attribute. Does anyone have a workaround for this (short of having to run a python script at the end of each render to find and replace the offending line?) Thanks Edited April 3, 2008 by mmontoya Quote Link to comment Share on other sites More sharing options...
crunch Posted April 3, 2008 Share Posted April 3, 2008 Hello Houdini gentlefolk,When I render to Renderman I keep getting the following error: "P80005{ERROR} Parameterlist type mismatch in RIB stream. (al line 15 in stdin)" I have traced this error to the following line in the RIB file: Attribute "visibility" "transmission" ["Os"] It seems that in prman version 13.5 the string version of the transmission attribute has been replaced with an integer version. Despite having set my render target for prman 13.0 in Houdini, it looks like its using the string version of the attribute. Does anyone have a workaround for this (short of having to run a python script at the end of each render to find and replace the offending line?) Thanks Try recreating your output driver. It could be that the property was created for an earlier version of prman. That is, make sure that the transmission property is specified for prman13.5. Quote Link to comment Share on other sites More sharing options...
mmontoya Posted April 4, 2008 Author Share Posted April 4, 2008 Thanks crunch, I just learned a wealth of information about output drivers. I had no idea that version 9 exposed all these parameters to the user... This is what I wound up doing: 1. Went into root_installation_folder>houdini>soho and made a copy of the existing Python script therein from"RIBprman13.0.py" to"RIBpramn13.5.py" 2. located line: Attribute("visibility", "string" "transmission", "ri_visibletransmission") and changed it into an integer type: Attribute("visibility", "int", "transmission", "ri_visibletransmission") 3. Copied file "RIBprman.ds" in root_installation_folder>houdini>soho and renamed to "RIBprman13.5.ds" 4. I opened this digital asset and changed every reference to "PRMAN13_0_" into "PRMAN_13_5_" (likewise with any reference to "prman13.0" into "prman13.5") 5. Finally, I inserted the new entry: #include "RIBprman13.5.ds" into file "SOHOparameters" in root_installation_folder>houdini>soho However, I must be missing something crucial because when I start up Houdini, though I can see the new output driver in my parameters pane, it won't show up in the RIB output driver tab under the "Render Target' pull down menu... Any ideas as to what I'm missing? Much appreciated Quote Link to comment Share on other sites More sharing options...
crunch Posted April 4, 2008 Share Posted April 4, 2008 Thanks crunch, I just learned a wealth of information about output drivers. I had no idea that version 9 exposed all these parameters to the user...This is what I wound up doing: 1. Went into root_installation_folder>houdini>soho and made a copy of the existing Python script therein from"RIBprman13.0.py" to"RIBpramn13.5.py" 2. located line: Attribute("visibility", "string" "transmission", "ri_visibletransmission") and changed it into an integer type: Attribute("visibility", "int", "transmission", "ri_visibletransmission") 3. Copied file "RIBprman.ds" in root_installation_folder>houdini>soho and renamed to "RIBprman13.5.ds" 4. I opened this digital asset and changed every reference to "PRMAN13_0_" into "PRMAN_13_5_" (likewise with any reference to "prman13.0" into "prman13.5") 5. Finally, I inserted the new entry: #include "RIBprman13.5.ds" into file "SOHOparameters" in root_installation_folder>houdini>soho However, I must be missing something crucial because when I start up Houdini, though I can see the new output driver in my parameters pane, it won't show up in the RIB output driver tab under the "Render Target' pull down menu... Any ideas as to what I'm missing? Much appreciated This should all be exposed in Houdini9.1... However, if you're stuck on H9.0 and need to use prman13.5, you might just want to hack the RIBprman13.0.py file (since it's the easiest route). If you feel comfortable enough with editing OTLs, the default parameters for the output driver are added using the creation script (which is embedded in the OTL itself -- you'll have to extract and put together using hotl). But, if I recall correctly, there's an environment variable to specify which RIB target you want to add for your output driver... The creation script looks like # Default script run when a geometry object is created # $arg1 is the name of the object to create if ("$HOUDINI_DEFAULT_RIB_RENDERER" == "") then set HOUDINI_DEFAULT_RIB_RENDERER = "prman13.5" endif set base = "scripts/out/targets/ribcreate_$HOUDINI_DEFAULT_RIB_RENDERER.cmd" set ribcreate = `findfile("$base") if ( "$ribcreate" == "$base") then # File wasn't found base = "scripts/out/targets/ribcreate_prman13.5.cmd" set ribcreate = `findfile("$base")` if ( "$ribcreate" == "$base") then set ribcreate = "" endif endif \set noalias = 1 if ( "$arg1" != "" ) then if ( "$ribcreate" != "" ) then source "$ribcreate" "$arg1" endif endif So, you should be able to set HOUDINI_DEFAULT_RIB_RENDERER to prman13.5... and create a file $HH/scripts/out/targets/prman13.5.cmd But it might just be easier to hack the prman13.0 to output the attribute for prman13.5. Quote Link to comment Share on other sites More sharing options...
mmontoya Posted April 5, 2008 Author Share Posted April 5, 2008 Thank you so much for all your help! This exploration has provided me with many great insights as to how Python integration in works in H9. Hacking the existing output driver was my first impulse, but I thought it would be far more educational to roll my own driver... For now, I'm going with the easy fix. But I intend to keep tinkering with the second, perhaps more convuluted approach - I'll let you know if I have any success. I appreciate the time you took to post the code - this is very helpful. 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.