Community
Arnold for Houdini Forum
Rendering with Arnold in Houdini and Solaris using the HtoA plug-in.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

htoa (operators) - how to get path to group in Arnold procedural?

14 REPLIES 14
Reply
Message 1 of 15
Slava_91
723 Views, 14 Replies

htoa (operators) - how to get path to group in Arnold procedural?

Hi!
I have a ass file loading to Arnold Procedural, and I need get path to groups inside of him for hide some of them.
Does any one know how to get it, and get groups list without opening ass file in text editors?
Thanks

Labels (5)
14 REPLIES 14
Message 2 of 15
madsd
in reply to: Slava_91

Pseudo UI.

In the operator canvas, create 2 nodes. A set parameter and a procedural node.

Set the settings to something like I did here:
visibility = 0

Then pick the nodes with the selection string.
In this case I pick /Sp*
This is all the spheres.

Then link the Set parameter node to a procedural node, and link this procedural into the Arnold Procedural scene node. ( you should have this slot in Houdini as well is my take )

Finally, atleast I have to: Set the "set parameters node" via rightclicking it, and promote it to be the "Target operator"

Unfortunately, I dont think you can see the list I can, as it would be sitting on the Arnold Procedural node directly, I would guess you could see this list already if it was integrated.

So, I guess the Houdini version of Procedural, should have a similar list like I got in the DCC I use here.

qweqweqwe.png

Message 3 of 15
Slava_91
in reply to: madsd

Thanks for you example Mads
but what you write works fine only in max and maya, and doesn’t work normaly in houdini, and no, procedural interface here different than in maya and max, and it does not give you list of groups.

Message 4 of 15
Slava_91
in reply to: madsd

For it work, I need to specify in the operator, path to this procedural node to the objects context, and this works globally for it, but I not understand get groups from it, because, examples from maya or max, simply cease to influence on procedural node, and in the docs they did not bother to add anything for htoa except "we have a nodes and they can do something"

Message 5 of 15
Slava_91
in reply to: madsd

besides, why use Set operator if we have Disable operator?
I would like to see a practical example or clearer clarifications from a artist working in houdini.

Message 6 of 15
Slava_91
in reply to: Slava_91

and maybe web developers fix limitation for Comment answers?
1608372816972.png

Message 7 of 15
Slava_91
in reply to: Slava_91

it was necessary to first show this, and ask, how to access these groups?
1608375533907.png

Message 8 of 15
Stephen.Blair
in reply to: Slava_91

Ultimately we want a UI like in MtoA. But for now...

If you use an operator and select *.(@node=='polymesh'), then a Debug-level log will show the names of the matched polymesh. So that's one way.

If you have Maya, load the ass file and use the aiStandin ui.

A command-line script, either with the Arnold API or maybe just a perl-one liner.



// Stephen Blair
// Arnold Renderer Support
Message 9 of 15
Slava_91
in reply to: Stephen.Blair

Hi Stephen,
yes maya as a temporary option good for now
as for UI - I hope that someday it will appear after 7 years of connector development, want to believe it)

May I ask you more explained, it is possible to invert the selection in SetParameter (screen1) and how to turn off the light source for a specific group?
I tried create group in collection but not see how to use it with Disable operator

Thanks


screen1.jpgscreen2.jpg

Message 10 of 15
Stephen.Blair
in reply to: Slava_91

screen1: You want to invert the selection, which I understand to mean you want to select all polymesh nodes not named /ast_wc_orc_v001/wc_orc_body/wc_orc_bodyShape ?

In that case:

*.(@node == 'polymesh') and not *.(name=='/ast_wc_orc_v001/wc_orc_body/wc_orc_bodyShape')




// Stephen Blair
// Arnold Renderer Support
Message 11 of 15

screen2: how to reference a collection

You use the # symbol and the collection name in your selection expression.

So instead of /obj/hdr*, you would put #my_collection, where "my_collection" is the name of your selection





// Stephen Blair
// Arnold Renderer Support
Message 12 of 15
Slava_91
in reply to: Stephen.Blair

Thanks
but both examples are not working
in the first expression, all geometry is hidden.
Expression work only if I baked to *.ass unpacked geometry, but in this case I have *.ass with alembic procedural(plz look at *.ass source screen below)
In the second, I needed not only to specify the collection there, but also to exclude only one special light source for this collection, light in the scene, not in *.ass
Sorry for I don't give you clearly information initially

Message 13 of 15
Slava_91
in reply to: Stephen.Blair

I found some answer in this thread, but not understand what is mean?
https://answers.arnoldrenderer.com/questions/17184/operator-light-group-with-an-array-possible.html

Message 14 of 15
Slava_91
in reply to: Slava_91

becouse expression like light_group[0] = '/obj/rim' amd light_group[1] = '/obj/hdr' not working and give message [parameter] index 0 exceeds the number of array elements 0 for parameter "light_group": '/obj/rim'
[parameter] index 1 exceeds the number of array elements 0 for parameter "light_group": '/obj/hdr'
work only with one group like "light_group = '/obj/rim'"

Message 15 of 15
Slava_91
in reply to: Stephen.Blair

and good work like this
1608419050837.png

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report