Jump to content

Houdini not observing prman 13.5 syntax for transmission attributes


Recommended Posts

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 by mmontoya
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...