Hi there,
My TOPnet is running on our renderfarm with a couple of clients using HQueue.
On the clients I want to use the Perforce TOP to sync certain files. The files differ per workitem.
Those synced files are the input for an HDA Processor. The files are actually textures and set as parameters on the HDA by using workitem attributes so they don't use the PDG input and output files, if you know what I mean.
The problem is that I want to run the Perforce sync on the same client as the HDA Processor because else the input files might not be there or not the latest version.
So I'm looking for a way to sort of group the Perforce and HDA Processor TOPs together in a way they are executed on the same client.
Or maybe get some info from the workitem coming from the Perforce TOP and figure out which client was used. And then wrangle the workitems before they go into the HDA Processor to overwrite the job parameters to only execute on that specific client.
But I guess there might be a case where TOP nodes after the HDA processor would want the work items to run on any of the available clients again.
The problem is more general than just this case of Perforce and HDA Processor.
This is my first PDG network so I could be missing something obvious
cheers,
benS
Found 46 posts.
Search results Show results as topic list.
PDG/TOPs » PDG+HQueue running two subsequent TOPs/jobs on the same client
- ben5ch
- 76 posts
- Offline
Technical Discussion » how can I fetch constraint geometry from DOPs into SOPs
- ben5ch
- 76 posts
- Offline
Just for the record.. and future reference.
Solved this by using a regular Object Merge Sop.
Click the browse button next to the Object # parameter and you'll see you can select geometry from inside the Dop network.
In my case I'm selecting the constraintnetwork/overwrite_with_sops/fetch_old_value which contains the geometry I'm looking for.
If anyone know a cleaner way then please comment below..
cheers,
benS
Solved this by using a regular Object Merge Sop.
Click the browse button next to the Object # parameter and you'll see you can select geometry from inside the Dop network.
In my case I'm selecting the constraintnetwork/overwrite_with_sops/fetch_old_value which contains the geometry I'm looking for.
If anyone know a cleaner way then please comment below..
cheers,
benS
Edited by ben5ch - Feb. 5, 2019 09:54:55
Technical Discussion » how can I fetch constraint geometry from DOPs into SOPs
- ben5ch
- 76 posts
- Offline
This is not during the simulation in a Sop Solver inside a Dop network but inside a Sop Network/Geo object.
There are some examples that show how to break constraints in a Sop Solver and fetch the data using an Object Merge Sop.
But I'm in a regular Sop network so my guess is I should either use the Dop Import Sop or Dop Import Records Sop.
I've figured there is an object called Relationships that holds the data:
_my_dopnetwork_:Relationships/_my_relationship_/constraintnetwork/Geometry
And this relationshipnetwork can also be found per RBD object in the RelInAffectors and RelInGroup.
I've figured that relationshipnetwork in the RBD objects are just referencing the one in Relationships as it has the same uniqueid.
If I fill in the Relationship object in the Object Mask of either Dop Import or Dop Import Record the I get a “No DOP object names specified.”
Trying to anything from the objects with various attempts on Data Path gives me empty geometry.
Anyone an idea what I'm overlooking here?
cheers,
benS
There are some examples that show how to break constraints in a Sop Solver and fetch the data using an Object Merge Sop.
But I'm in a regular Sop network so my guess is I should either use the Dop Import Sop or Dop Import Records Sop.
I've figured there is an object called Relationships that holds the data:
_my_dopnetwork_:Relationships/_my_relationship_/constraintnetwork/Geometry
And this relationshipnetwork can also be found per RBD object in the RelInAffectors and RelInGroup.
I've figured that relationshipnetwork in the RBD objects are just referencing the one in Relationships as it has the same uniqueid.
If I fill in the Relationship object in the Object Mask of either Dop Import or Dop Import Record the I get a “No DOP object names specified.”
Trying to anything from the objects with various attempts on Data Path gives me empty geometry.
Anyone an idea what I'm overlooking here?
cheers,
benS
Technical Discussion » Alembic: Getting correct transform/shape names back into Maya
- ben5ch
- 76 posts
- Offline
Technical Discussion » Alembic: Getting correct transform/shape names back into Maya
- ben5ch
- 76 posts
- Offline
Hi there,
In the past (I believe) I did manage to get correct names back into Maya for my packed objects.
I'm using packed geometry because this gives me transformations on the transform node in Maya.
When I use “Build Hierarchy From Attribute” and name my pack “Beam_0” I get:
But what I want is:
When I'm not using packed geometry and set the name attribute explicitly to “/Beam_0/Beam_0Shape” I get the correct names and hierarchy.
But then I loose the transformation so that's a no-go.
I rather not make a script to fix the names after import.
Are there any other attributes I can use or mis-use to get this working?
cheers,
benS
In the past (I believe) I did manage to get correct names back into Maya for my packed objects.
I'm using packed geometry because this gives me transformations on the transform node in Maya.
When I use “Build Hierarchy From Attribute” and name my pack “Beam_0” I get:
- Beam_0_packed1 (transform node) - Beam_0 (shape node)
But what I want is:
- Beam_0 (transform node) - Beam_0Shape (shape node)
When I'm not using packed geometry and set the name attribute explicitly to “/Beam_0/Beam_0Shape” I get the correct names and hierarchy.
But then I loose the transformation so that's a no-go.
I rather not make a script to fix the names after import.
Are there any other attributes I can use or mis-use to get this working?
cheers,
benS
Edited by ben5ch - June 14, 2018 06:02:43
Technical Discussion » Python SopVerb
- ben5ch
- 76 posts
- Offline
Hi Michael,
Very useful info! The manual could do with some examples.
The one you give here is already different to the ones in the video because they use hou.Geometry() rather than hou.pwd().geometry() to work on.
I've already solved my problem with a regular foreach sop network.
Also because I realized I needed a Refine Sop anyway which is not yet supported as verb.
I just needed to add a new point in my curve. Surely I could have used a Fuse verb afterward but that would be a bit dirty.
But I'm sure I will use verbs at some point!
And I'll also start using compile blocks soon.
I'm considering using the spare inputs also when not using compile blocks.
cheers,
benS
Very useful info! The manual could do with some examples.
The one you give here is already different to the ones in the video because they use hou.Geometry() rather than hou.pwd().geometry() to work on.
I've already solved my problem with a regular foreach sop network.
Also because I realized I needed a Refine Sop anyway which is not yet supported as verb.
I just needed to add a new point in my curve. Surely I could have used a Fuse verb afterward but that would be a bit dirty.
But I'm sure I will use verbs at some point!
And I'll also start using compile blocks soon.
I'm considering using the spare inputs also when not using compile blocks.
cheers,
benS
Technical Discussion » Python SopVerb
- ben5ch
- 76 posts
- Offline
I'm a little bit further. I've got some code that is executed and doesn't give an error
But I don't see any changes comming out of the Python Sop.
I would expect the carve with default parameters to cut something of my curve.
this is my code:
But I don't see any changes comming out of the Python Sop.
I would expect the carve with default parameters to cut something of my curve.
this is my code:
node = hou.pwd() geo = node.geometry() carve = hou.sopNodeTypeCategory().nodeVerb("carve") geo.execute(carve)
Technical Discussion » Python SopVerb
- ben5ch
- 76 posts
- Offline
Hi there,
Is there any examples available of how to use a SopVerb in a Python Sop?
cheers,
benS
Is there any examples available of how to use a SopVerb in a Python Sop?
cheers,
benS
Technical Discussion » how do I make a ramp parameter on an hda reference another ramp parameter by default
- ben5ch
- 76 posts
- Offline
And this other parameter would be on a higher level.
If the parameter would be a float I could just change the default channel of the parameter to: ch(“../../radius”)
But I want to link my ramp parameter to: ch(“../../radius_ramp”)
If I copy the parameter on the higher level and paste a relative reference I do get it working for that instance of the HDA. But I want the ch(“../../radius_ramp”) to be the default for the parameter so it will be there on any instance.
Actually the idea is that multiple instances will reference the same parameter on the higher level.
I can't seem to find an option for setting the default in the Edit Operator Type Properties window.
But I hope I'm wrong because this is the place where I would expect you can define a default.
I'm at the point of examining the mime file in the ascii version of the HDA on disk, so I've got the feeling I can't search any deeper.
Guess I could also use the creation script to add the parameter expression but I was hoping for a more elegant solution.
Anyone know of a way to set the default of this ramp parameter so it gets stored to the HDA?
thnx,
benS
If the parameter would be a float I could just change the default channel of the parameter to: ch(“../../radius”)
But I want to link my ramp parameter to: ch(“../../radius_ramp”)
If I copy the parameter on the higher level and paste a relative reference I do get it working for that instance of the HDA. But I want the ch(“../../radius_ramp”) to be the default for the parameter so it will be there on any instance.
Actually the idea is that multiple instances will reference the same parameter on the higher level.
I can't seem to find an option for setting the default in the Edit Operator Type Properties window.
But I hope I'm wrong because this is the place where I would expect you can define a default.
I'm at the point of examining the mime file in the ascii version of the HDA on disk, so I've got the feeling I can't search any deeper.
Guess I could also use the creation script to add the parameter expression but I was hoping for a more elegant solution.
Anyone know of a way to set the default of this ramp parameter so it gets stored to the HDA?
thnx,
benS
Edited by ben5ch - Dec. 14, 2017 12:32:48
Technical Discussion » Shader reading pointcloud/bgeo from file but need a transform
- ben5ch
- 76 posts
- Offline
Hi there,
Not sure if this is possible at all.
I've got a mesh that is saved to disk that I use as a pointcloud in my shader.
Until so far this works.
But I want to transform my pointcloud. The transform is simply a scale of 0 in Y.
Now I could just read the file, transform it and save again.
But that is extra disk space and IFD generation time that I want to avoid.
So I'm wondering if there is another way.
I was exploring delayed load and using the op: reference method, but I guess that doesn't work in mantra.
anyone?
benS
Not sure if this is possible at all.
I've got a mesh that is saved to disk that I use as a pointcloud in my shader.
Until so far this works.
But I want to transform my pointcloud. The transform is simply a scale of 0 in Y.
Now I could just read the file, transform it and save again.
But that is extra disk space and IFD generation time that I want to avoid.
So I'm wondering if there is another way.
I was exploring delayed load and using the op: reference method, but I guess that doesn't work in mantra.
anyone?
benS
Technical Discussion » "Save To Info Block" flag available in Python
- ben5ch
- 76 posts
- Offline
Hi there,
The Attribute Create Sop has the “Save To Info Block” toggle.
Now I have a detail attribute that I'm creating in Python… or I could say I'm doing this:
geo.addAttrib(hou.attribType.Global, “MyDetailAttrib”, “”)
geo.setGlobalAttribValue(“MyDetailAttrib”,MyValue)
…and I want to set this “flag” on the new attribute as well.
Is there any way to do it with Python in one go or should I involve the Attribute Create Sop?
cheers,
benS
The Attribute Create Sop has the “Save To Info Block” toggle.
Now I have a detail attribute that I'm creating in Python… or I could say I'm doing this:
geo.addAttrib(hou.attribType.Global, “MyDetailAttrib”, “”)
geo.setGlobalAttribValue(“MyDetailAttrib”,MyValue)
…and I want to set this “flag” on the new attribute as well.
Is there any way to do it with Python in one go or should I involve the Attribute Create Sop?
cheers,
benS
Technical Discussion » Varying Instanced Geometry
- ben5ch
- 76 posts
- Offline
Yes that example file works. But this doesn't solve my problem.
I want the colors to show up in the viewport. I'm not rendering in mantra but on a Playstation4 8)
Also.. I'm still on Houdini 14.
cheers,
benS
I want the colors to show up in the viewport. I'm not rendering in mantra but on a Playstation4 8)
Also.. I'm still on Houdini 14.
cheers,
benS
Technical Discussion » Varying Instanced Geometry
- ben5ch
- 76 posts
- Offline
This is exactly what I'm looking for.
I have a bunch of packed primitives and want to color them individually in the viewport. It's just for visual feedback in a tool.
Neither Cd attribute or shader seem to have an effect.
Any ideas?
cheers,
benS
I have a bunch of packed primitives and want to color them individually in the viewport. It's just for visual feedback in a tool.
Neither Cd attribute or shader seem to have an effect.
Any ideas?
cheers,
benS
Technical Discussion » Unifying Houdini under one context
- ben5ch
- 76 posts
- Offline
I think something like DOP's would also be a good candidate to unify different contexts.
But I just don't see how the same node could be used to delete a point attribute or an image channel. And I don't think I want COP nodes in the same network as my SOP nodes.
The current ability to have any network manager in any other network context is something I use a lot. I just position, color and name them to show their relation to the host context.
In theory unification is good but dedicated GUI is more practical I think.
It's all the secondary options on the delete nodes that makes them a one node solution. The GUI is more tailored for the specific context.
Houdini internally could use the same functions and the parameters should have a unified behavior and naming across contexts.
But that is already the case right now and enables us to have this discussion I guess.
But then I'm that guy that always turns on “Color Pane Headers with Network Context” in preferences as soon as he installs a new Houdini :wink:
cheers,
benS
But I just don't see how the same node could be used to delete a point attribute or an image channel. And I don't think I want COP nodes in the same network as my SOP nodes.
The current ability to have any network manager in any other network context is something I use a lot. I just position, color and name them to show their relation to the host context.
In theory unification is good but dedicated GUI is more practical I think.
It's all the secondary options on the delete nodes that makes them a one node solution. The GUI is more tailored for the specific context.
Houdini internally could use the same functions and the parameters should have a unified behavior and naming across contexts.
But that is already the case right now and enables us to have this discussion I guess.
But then I'm that guy that always turns on “Color Pane Headers with Network Context” in preferences as soon as he installs a new Houdini :wink:
cheers,
benS
Technical Discussion » Unifying Houdini under one context
- ben5ch
- 76 posts
- Offline
But isn't this already possible with VEX to at least some extent?
You could make a color correct VOP that you can use in SOP's, COP's and Mantra shader.
You only have to wrap it into a VOP network of that context.
cheers,
benS
You could make a color correct VOP that you can use in SOP's, COP's and Mantra shader.
You only have to wrap it into a VOP network of that context.
cheers,
benS
Technical Discussion » SOLVED: Alembic vertex colors export for Maya
- ben5ch
- 76 posts
- Offline
Technical Discussion » SOLVED: Alembic vertex colors export for Maya
- ben5ch
- 76 posts
- Offline
Oke thanks yes I read about this SOuP thing in another post but odforce is offline.
Someone here pointed me to the -rcs flag for the AbcImport MEL command in Maya:
AbcImport -mode import -rcs “houdini_sphere.abc”;
This actually worked when the incoming colorSet1 attribute is exported again!!!
Seems the name is not critical. Any attribute that is type “float” with size 4 and has the type qualifier set to “color” will work.
cheers,
benS
Someone here pointed me to the -rcs flag for the AbcImport MEL command in Maya:
AbcImport -mode import -rcs “houdini_sphere.abc”;
This actually worked when the incoming colorSet1 attribute is exported again!!!
Seems the name is not critical. Any attribute that is type “float” with size 4 and has the type qualifier set to “color” will work.
cheers,
benS
Technical Discussion » SOLVED: Alembic vertex colors export for Maya
- ben5ch
- 76 posts
- Offline
Did anyone got this to work?
The colors did import as colorSet1 from Maya.
Exporting this colorSet1 and importing back into Maya didn't work.
A bit unexpected as I was more afraid that material bindings wouldn't work but that did work.
Using the abcecho line command the alembic file does look different to the one exported from Maya.
Maya export:
CompoundProperty name=.arbGeomParams;schema=
CompoundProperty name=colorSet1;schema=
ArrayProperty name=.vals;interpretation=rgba;datatype=float32_t;arraysize=1560;numsamps=1
ArrayProperty name=.indices;interpretation=;datatype=uint32_t;arraysize=1560;numsamps=1
Houdini Export:
CompoundProperty name=.arbGeomParams;schema=
ArrayProperty name=colorSet1;interpretation=rgba;datatype=float32_t;arraysize=1560;numsamps=1
Normals and uv's are imported simular though and do work.
Using red, green, blue, alpha didn't work either.
Neither did Cd or Cd
So anyone got any good news for me?
cheers,
benS
The colors did import as colorSet1 from Maya.
Exporting this colorSet1 and importing back into Maya didn't work.
A bit unexpected as I was more afraid that material bindings wouldn't work but that did work.
Using the abcecho line command the alembic file does look different to the one exported from Maya.
Maya export:
CompoundProperty name=.arbGeomParams;schema=
CompoundProperty name=colorSet1;schema=
ArrayProperty name=.vals;interpretation=rgba;datatype=float32_t;arraysize=1560;numsamps=1
ArrayProperty name=.indices;interpretation=;datatype=uint32_t;arraysize=1560;numsamps=1
Houdini Export:
CompoundProperty name=.arbGeomParams;schema=
ArrayProperty name=colorSet1;interpretation=rgba;datatype=float32_t;arraysize=1560;numsamps=1
Normals and uv's are imported simular though and do work.
Using red, green, blue, alpha didn't work either.
Neither did Cd or Cd
So anyone got any good news for me?
cheers,
benS
Edited by - June 2, 2015 12:08:11
Houdini Engine for Maya » Ability to automatically hide non relevant parameters
- ben5ch
- 76 posts
- Offline
Not sure.. I'm not so familiar with Maya.. was just hacking around and found that collapse flag.
But I do see lots of if() statements so I guess it should be possible.
cheers,
benS
But I do see lots of if() statements so I guess it should be possible.
cheers,
benS
Houdini Engine for Maya » Ability to automatically hide non relevant parameters
- ben5ch
- 76 posts
- Offline
A bit of an old post but maybe it's still relevant..
I've fixed this tabs state issue here by defaulting to being collapsed. This seemed the less frustrating.
It was easy to do.
Open the file:
…/HoudiniEngine/maya2015/scripts/AEhoudiniAssetTemplate.mel
and change:
-collapse false
to
-collapse true
There is a second frameLayout where the flag was missing and I have added this there.
So this:
frameLayout
-collapsable true
-label $multiNiceName;
became this:
frameLayout
-collapsable true
-collapse true
-label $multiNiceName;
cheers,
benS
I've fixed this tabs state issue here by defaulting to being collapsed. This seemed the less frustrating.
It was easy to do.
Open the file:
…/HoudiniEngine/maya2015/scripts/AEhoudiniAssetTemplate.mel
and change:
-collapse false
to
-collapse true
There is a second frameLayout where the flag was missing and I have added this there.
So this:
frameLayout
-collapsable true
-label $multiNiceName;
became this:
frameLayout
-collapsable true
-collapse true
-label $multiNiceName;
cheers,
benS
-
- Quick Links