Hi,
If I load an FBX file with multiple geometries I get a sub-network with multiple geometries (see image attached). I want to run all these geometries through the same SOP operation. The problem now is that the only way I know of doing this would be to go into the individual object SOP and add my network there which seems very cumbersome. Is it possible to send the top level subnetwork through some kind of node that merges all objects into the same SOP node so I can process them together. Ideally with some kind of primitive attribute saying which geometry it came from so I eventually can split them up again. Another potential solution would be to do some for each for every object sending them through a SOP node.
Advice is appreciated, I'm new to Houdini.
Batching processing multiple geometries
3883 9 1-
- David Larsson
- Member
- 32 posts
- Joined: Aug. 2014
- Offline
-
- jlait
- Staff
- 6793 posts
- Joined: July 2005
- Offline
-
- David Larsson
- Member
- 32 posts
- Joined: Aug. 2014
- Offline
-
- jlait
- Staff
- 6793 posts
- Joined: July 2005
- Offline
-
- David Larsson
- Member
- 32 posts
- Joined: Aug. 2014
- Offline
-
- edward
- Member
- 8081 posts
- Joined: July 2005
- Offline
-
- David Larsson
- Member
- 32 posts
- Joined: Aug. 2014
- Offline
Thanks,
I have another issue that came up in the process.
Most of my objects have object level material assignments as opposed to primitive level assignments. This means when I do a Object Merge I lose the materials since the primitives have no shop_material attribute. Is there a way of globally push the object materials down to primitives?
David
I have another issue that came up in the process.
Most of my objects have object level material assignments as opposed to primitive level assignments. This means when I do a Object Merge I lose the materials since the primitives have no shop_material attribute. Is there a way of globally push the object materials down to primitives?
David
-
- edward
- Member
- 8081 posts
- Joined: July 2005
- Offline
-
- tamte
- Member
- 9380 posts
- Joined: July 2007
- Offline
select your object nodes and run this script:
import hou
sel = hou.selectedNodes()
geos =
for geo in geos:
matpathparm = geo.parm(“shop_materialpath”)
matpath = matpathparm.unexpandedString()
if matpath != “”:
matpathparm.set(“”)
rendernode = geo.renderNode()
displaynode = geo.displayNode()
matnode = rendernode.createOutputNode('material')
matnode.parm(“shop_materialpath1”).set(matpath)
matnode.setRenderFlag(1)
matnode.setDisplayFlag(rendernode == displaynode)
matnode.moveToGoodPosition()
it will add material sop inside of every geo object in render stream
then just use one of above mentioned methods to combine the objects
import hou
sel = hou.selectedNodes()
geos =
for geo in geos:
matpathparm = geo.parm(“shop_materialpath”)
matpath = matpathparm.unexpandedString()
if matpath != “”:
matpathparm.set(“”)
rendernode = geo.renderNode()
displaynode = geo.displayNode()
matnode = rendernode.createOutputNode('material')
matnode.parm(“shop_materialpath1”).set(matpath)
matnode.setRenderFlag(1)
matnode.setDisplayFlag(rendernode == displaynode)
matnode.moveToGoodPosition()
it will add material sop inside of every geo object in render stream
then just use one of above mentioned methods to combine the objects
Tomas Slancik
CG Supervisor
Framestore, NY
CG Supervisor
Framestore, NY
-
- David Larsson
- Member
- 32 posts
- Joined: Aug. 2014
- Offline
-
- Quick Links

