Jump to content

Exporting indirect components


Recommended Posts

Hi Everyone,

can someone explain me how the Surface Model node exports separate indirect

contribution planes, like "indirect_diffuse" for example. I'm unable to find

the parameter node which exports the plane. Not even "opfind indirect_diffuse"

inidicates that there is one.. Is the export code implemented at the API level?

If so in which node is it?

Thanks in advance


Edited by beeemtee
Link to comment
Share on other sites

:) it's quite funny

they are just Parameter VOPs but they are not named accordingly, so you cannot find them by name

they are called :

parameter1 for Ce

parameter2 for direct_reflex

parameter3 for direct_specular

parameter4 for direct_diffuse




parameter15 for indirect_reflect

and so on, some are in different subnets, but usually not named accordingly as a VOP node

Link to comment
Share on other sites

Thanks Tomas,

while I was aware of the 'direct' parameter nodes, whith your help I found

a bunch of other parameter nodes. Since the inners of the Surface Model node

shows the signs of heavy pastafarian influences, I decided to write a little

script that does the search instead of me. Here is the output:

/obj/SHOP/Test/surfacemodel1/parameter4: direct_diffuse
/obj/SHOP/Test/surfacemodel1/parameter2: direct_reflect
/obj/SHOP/Test/surfacemodel1/parameter3: direct_specular
/obj/SHOP/Test/surfacemodel1/parameter12: direct_volume
/obj/SHOP/Test/surfacemodel1/parameter5: direct_refract
/obj/SHOP/Test/surfacemodel1/parameter6: direct
/obj/SHOP/Test/surfacemodel1/parameter7: direct_noshadow
/obj/SHOP/Test/surfacemodel1/parameter8: direct_shadow
/obj/SHOP/Test/surfacemodel1/parameter13: direct_samples
/obj/SHOP/Test/surfacemodel1/if2/multiglobclr: multiglobclr
/obj/SHOP/Test/surfacemodel1/if2/parameter1: sss_single
/obj/SHOP/Test/surfacemodel1/if2/parameter2: sss_multi
/obj/SHOP/Test/surfacemodel1/parameter14: indirect_refract
/obj/SHOP/Test/surfacemodel1/parameter15: indirect_reflect

it's clear that "indirect_diffuse", "indirect_specular" and some other

planes are not exported this way. So the question now is, where those

"missing" planes got exported?

Just for the sake of completeness, here is the code of the script:

nn = hou.hscript("opfind -p /obj/SHOP/Test/ -t parameter")[0].split()

p = [(n,hou.node(n).parm("parmname").eval()) for n in nn]

for l in p:
    print l[0] + ": " + l[1]



Link to comment
Share on other sites

for PBR, you probably need to look at pbrexports.h and pbrpathtrace.h files

I don't know if "missing" export variables are valid for non-pbr, I am not sure that for example if indirect_diffuse works with non-pbr, it contains nothing when rendered with mp or rt with env + indirect light, 1 diffuse limit as opposed to pbr which works under those conditions

Link to comment
Share on other sites


I have to appologize, since my problem was an IPR refreshing problem. After switching

between a Mantra Surface node and my own, those "missing" planes were evaluated to zero,

and I thought I don't know how to export them. Restarting the IPR process made them

evaluate correctly.

It turned out that the PBR engine exports them "automatically", so no parameter nodes are

needed for these exports.

Thanks again for your help


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.

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...