So just to be clear I'm looking for a hou module solution.
Or maybe someone can confirm it's simply not possible at the moment.
Found 46 posts.
Search results Show results as topic list.
Technical Discussion » Python: find the (last) Houdini version a HDA was saved from
- ben5ch
- 76 posts
- Offline
Technical Discussion » Python: find the (last) Houdini version a HDA was saved from
- ben5ch
- 76 posts
- Offline
Hi folks,
Can't seem to find any function for this in either hou.Node, hou.NodeType, hou.HDADefinition or hou.HDASection
Even the good old opstat hscript command doesn't help out..
I can kind of see what I need in the Contents.dir/Contents.houdini_versions file on disk inside the unpacked HDA.
But I'm hoping I don't need to parse the file on disk.
When I try to get to the Contents HDA Section it appears to be gzipped according to the hou module.
So when doing:
I get a block of unreadable hex code back.
Then I figured out you can set the Contents to be uncompressed (in TypeProperties/Save/CompressionType)and save the HDA to disk again. Apparently this is not influencing what's on disk but how the HDA is stored in memory.
When I then get the contents it seems to be the all the Contents files combined in I guess CPIO format.
Anyone has some leads here?
cheers,
benS
Can't seem to find any function for this in either hou.Node, hou.NodeType, hou.HDADefinition or hou.HDASection
Even the good old opstat hscript command doesn't help out..
I can kind of see what I need in the Contents.dir/Contents.houdini_versions file on disk inside the unpacked HDA.
But I'm hoping I don't need to parse the file on disk.
When I try to get to the Contents HDA Section it appears to be gzipped according to the hou module.
So when doing:
contents = node.type().definition().sections()['Contents.gz'] contents.contents()
Then I figured out you can set the Contents to be uncompressed (in TypeProperties/Save/CompressionType)and save the HDA to disk again. Apparently this is not influencing what's on disk but how the HDA is stored in memory.
When I then get the contents it seems to be the all the Contents files combined in I guess CPIO format.
Anyone has some leads here?
cheers,
benS
Edited by ben5ch - Oct. 27, 2023 12:09:55
Technical Discussion » save hipfile from Python SOP
- ben5ch
- 76 posts
- Offline
Aha found this..
Yes that seems to work
def runLater(): hou.ui.displayMessage("Hello World") import hdefereval hdefereval.executeDeferred(runLater)
Yes that seems to work
Technical Discussion » save hipfile from Python SOP
- ben5ch
- 76 posts
- Offline
Hi there,
Like the topic says.. just want to do afrom a Python SOP.
But I get an error.
I've also tried the Script SOP but that gives the same result.
Does anyone know how to deal with this properly or a way around it.
I'm doing this for debugging and have no control over the cooking of this HDA. Need to solve it in the HDA.
I'm considering a pressButton from the Python SOP to the parent HDA and then run a callback script.
In the hope the GUI command gets deferred and ran later than the Python SOP cook or something.
But maybe there is a cleaner way.
Anyone?
cheers,
benS
Like the topic says.. just want to do a
hou.hipFile.save()
But I get an error.
Python error: Traceback (most recent call last): File "<stdin>", line 14, in <module> File "D:/dev/HRZ2/tools/Software/Houdini/Houdini 18.0.499/houdini/python2.7libs\houpythonportion\ui.py", line 927, in decorator return func(*args, **kwargs) File "D:/dev/HRZ2/tools/Software/Houdini/Houdini 18.0.499/houdini/python2.7libs\hou.py", line 40011, in save return _hou.hipFile_save(*args, **kwargs) OperationFailed: The attempted operation failed. Node cook is in progress
I've also tried the Script SOP but that gives the same result.
Does anyone know how to deal with this properly or a way around it.
I'm doing this for debugging and have no control over the cooking of this HDA. Need to solve it in the HDA.
I'm considering a pressButton from the Python SOP to the parent HDA and then run a callback script.
In the hope the GUI command gets deferred and ran later than the Python SOP cook or something.
But maybe there is a cleaner way.
Anyone?
cheers,
benS
Edited by ben5ch - Oct. 14, 2021 13:01:09
Houdini Jobs » Guerrilla (Playstation Studios/Amsterdam) - Senior Houdini Artist / Technical Artist
- ben5ch
- 76 posts
- Offline
Hi folks,
We are looking for an experienced Houdini artist to join our game-dev team!
https://www.guerrilla-games.com/join/senior-houdini-artist [www.guerrilla-games.com]
Here is what we have shared of our current project so far:
Horizon Forbidden West - Announcement Trailer | PS5 [www.youtube.com]
Horizon Forbidden West - State of Play Gameplay Reveal | PS5 [www.youtube.com]
Job Overview
Create procedural systems to build astonishing virtual words in real-time 3D graphics!
Guerrilla's Tech Art Team works closely with other teams (Art, Tools, QA) to support efficient asset
generation and management. Using a unique combo of technical skill and artistic insight, our Tech Artists
create the connective tissue between Art and Code.
Technical Artists at Guerrilla
Guerrilla, the Amsterdam-based studio behind the critically acclaimed action RPG Horizon Zero Dawn and the upcoming Horizon Forbidden West is looking for a Senior Houdini Artist with extensive experience building procedural systems to join its Tech Art team and help build virtual worlds that push real-time 3D graphics to the limit.
What you will do
As a member of the Tech Art Team, you will have access to state-of-the-art real world data, artist created content and innovative rendering technology to help create procedural systems to generate and populate large areas, automate workflows, and optimize content.In this role, you will:
Who you are
We offer
A full-time position in a dynamic and challenging work environment, with excellent primary and secondary benefits and relocation (if required). You will get to work with some of the world’s most talented game developers, in our studio in the heart of Amsterdam!
Interested?
If you are up for the challenge, hit the “apply now” button on the linked web page [www.guerrilla-games.com] to submit your application to us. Be sure to submit your CV and a portfolio or show reel that shows your best and most recent work. We also welcome a motivation letter expressing your interest for the role and Guerrilla.
Hope to hear from you soon!
But please contact our HR department though the given link because I'm quite busy at the moment ;-)
benS
We are looking for an experienced Houdini artist to join our game-dev team!
https://www.guerrilla-games.com/join/senior-houdini-artist [www.guerrilla-games.com]
Here is what we have shared of our current project so far:
Horizon Forbidden West - Announcement Trailer | PS5 [www.youtube.com]
Horizon Forbidden West - State of Play Gameplay Reveal | PS5 [www.youtube.com]
Job Overview
Create procedural systems to build astonishing virtual words in real-time 3D graphics!
Guerrilla's Tech Art Team works closely with other teams (Art, Tools, QA) to support efficient asset
generation and management. Using a unique combo of technical skill and artistic insight, our Tech Artists
create the connective tissue between Art and Code.
Technical Artists at Guerrilla
Guerrilla, the Amsterdam-based studio behind the critically acclaimed action RPG Horizon Zero Dawn and the upcoming Horizon Forbidden West is looking for a Senior Houdini Artist with extensive experience building procedural systems to join its Tech Art team and help build virtual worlds that push real-time 3D graphics to the limit.
What you will do
As a member of the Tech Art Team, you will have access to state-of-the-art real world data, artist created content and innovative rendering technology to help create procedural systems to generate and populate large areas, automate workflows, and optimize content.In this role, you will:
- Create technically challenging assets to populate the game worlds in accordance with the artistic direction, design requirements and production deadlines;
- Develop new procedural tools or pipelines for: assembling dynamic assets, to assist in the authoring of roads or rivers; object placement, to enrich or optimize existing art assets;
- Ensure a high quality final look, through close collaboration with game designers, programmers, artist and producers;
- Contribute to and improve upon the existing collection of in-house Houdini Digital Assets and workflow improvements.;
- Research and prototype useful methods for automating the development of game worlds with Houdini;
- Act as a bridge between Art, Programming and the other teams in the studio.
Who you are
- You have multiple years of previous game and/or film industry experience and/or have shipped at least one AAA game title;
- You are highly experienced with Houdini and procedural/automated methods for creating asset pipelines;
- You have experience with the Houdini scripting APIs, writing expressions, VEX, and using Python to create pipelines to move content between Houdini and other applications;
- You have experience and understanding of using Houdini Engine to augment another engine such as Unreal or equivalent;
- You have a good knowledge of DCC tools such as Maya and texture creation tools like Substance Painter, Substance Designer and Photoshop;
- You are able to anticipate the needs of the (level) artists in order to streamline their productivity;
- You are able to create systems that are flexible and art directable, enabling hand-edited changes as needed when specific requests arise;
- You have solid communication skills and are a strong team-player;
- You have a passion for games and a strong game culture.
We offer
A full-time position in a dynamic and challenging work environment, with excellent primary and secondary benefits and relocation (if required). You will get to work with some of the world’s most talented game developers, in our studio in the heart of Amsterdam!
Interested?
If you are up for the challenge, hit the “apply now” button on the linked web page [www.guerrilla-games.com] to submit your application to us. Be sure to submit your CV and a portfolio or show reel that shows your best and most recent work. We also welcome a motivation letter expressing your interest for the role and Guerrilla.
Hope to hear from you soon!
But please contact our HR department though the given link because I'm quite busy at the moment ;-)
benS
Edited by ben5ch - June 7, 2021 06:04:41
Technical Discussion » How to get the normal vector of a heightfield?
- ben5ch
- 76 posts
- Offline
Back then in that video I was actually playing around with heightfields for the first time
Although the Volume Gradient gives you a nice "normal" when sampling a 3D volume it doesn't with a 2D heightfield.
It seems to not have a vertical Y component.
Actually the values in X and Z are the rate of change in height (Y) over those dimensions.
This is different than the X and Z components of the normal you are looking for.
But we can use the X and Z values to calculate a proper normal.
What you can do is the following in VOPs.
benS
Although the Volume Gradient gives you a nice "normal" when sampling a 3D volume it doesn't with a 2D heightfield.
It seems to not have a vertical Y component.
Actually the values in X and Z are the rate of change in height (Y) over those dimensions.
This is different than the X and Z components of the normal you are looking for.
But we can use the X and Z values to calculate a proper normal.
What you can do is the following in VOPs.
- Use a Volume Gradient VOP to sample the gradient of the heightfield.
- Use a Vector To Float VOP to split the components.
- Connect the X and Z components to the two Y inputs of Float To Vector VOPs.
- On the Float To Vector 1 that has the X as input to Y, set the X to 1.
- On the Float To Vector 2 that has the Z as input to Y, set the Z to 1.
- You have now created two tangent vectors.
- Now connect the two tangent vectors to a Cross VOP...
- ...but in reverse order: Float To Vector 2 to 1st input and Float To Vector 1 to 2nd input
- The output of the Cross VOP is you normal
benS
Houdini Lounge » Pre H18 viewport camera zoom shortcut
- ben5ch
- 76 posts
- Offline
Hi there,
In Houdini 18 using CTRL+RMB in the viewport to zoom now shows me a view mask.
Is there still an option to get the old behavior without the view mask?
Hopefully another key combination? Don't think I found an option in preferences.
I'm navigating in narrow indoor spaces and zooming out is an important part of my workflow.
I can see the viewmask and the 2D Pan & Zoom mode will be very useful for actual camera objects.
But when no camera is selected and I'm in 3D Camera mode I find this hindering my workflow.
Anyone?
cheers,
benS
In Houdini 18 using CTRL+RMB in the viewport to zoom now shows me a view mask.
Is there still an option to get the old behavior without the view mask?
Hopefully another key combination? Don't think I found an option in preferences.
I'm navigating in narrow indoor spaces and zooming out is an important part of my workflow.
I can see the viewmask and the 2D Pan & Zoom mode will be very useful for actual camera objects.
But when no camera is selected and I'm in 3D Camera mode I find this hindering my workflow.
Anyone?
cheers,
benS
Houdini Engine API » getting data from HDA with multiple outputs
- ben5ch
- 76 posts
- Offline
Hi Tom,
We have been working around this because tool coder time is the most valuable for us. *
Our implementation was not generally supporting any HDA but had a single HDA it should work with.
So we simply hard coded the paths to the other Output nodes.
Which has already bitten me when I wanted to rename those nodes. :-(
thanks for the RFE..
cheers,
benS
* if you are a coder and interested in working on PlayStation games then give me a message ;-)
We have been working around this because tool coder time is the most valuable for us. *
Our implementation was not generally supporting any HDA but had a single HDA it should work with.
So we simply hard coded the paths to the other Output nodes.
Which has already bitten me when I wanted to rename those nodes. :-(
thanks for the RFE..
cheers,
benS
* if you are a coder and interested in working on PlayStation games then give me a message ;-)
Houdini Engine API » getting data from HDA with multiple outputs
- ben5ch
- 76 posts
- Offline
Hi there,
We are investigating if we can use HDA's with multiple outputs.
Apparently there is HAPI_AssetInfo::geoOutputCount but can we actually get data from all outputs?
And if not then has anyone a good workaround?
We were able to find the Output Sop nodes inside the HDA with some custom codebut when trying to get data from those nodes directly we get an empty HAPI_GeoInfo.
Or does it have something to do with the display flag? Guess that functionality overlaps or conflicts with the Output Sops
edit:
So apparently our workaround with using the Output Sops worked.
If there is a way to stay on HDA level rather than dive inside then please let me know.
cheers,
benS
We are investigating if we can use HDA's with multiple outputs.
Apparently there is HAPI_AssetInfo::geoOutputCount but can we actually get data from all outputs?
We were able to find the Output Sop nodes inside the HDA with some custom code
edit:
So apparently our workaround with using the Output Sops worked.
If there is a way to stay on HDA level rather than dive inside then please let me know.
cheers,
benS
Edited by ben5ch - Feb. 14, 2020 11:36:25
Technical Discussion » VEX colormap scrcolorspace confusion (or is it a bug?)
- ben5ch
- 76 posts
- Offline
Hi Koen,
To answer the question; no my only way to work around is to tell people to use 16 bit.
I did not find a way to use the colormap() function to read in a 8 bit PNG file in a way that it wouldn't modify the values in the file.
Your problem doesn't sound like noise but more like you found another undocumented undesired feature of the colormap() function.
In my case it was wrongly assuming a certain colorspace based on bitdepth, in your case it is wrongly assuming a certain bit depth based on file format.
Although I like the flexibility loading images in VEX it has also caused more confusion because of caching the files.
I've been using the trick from the Game Dev bakers to link the Force Compile button to a Reload Textures button on my HDAs.
Using a File Cop might be better after all because it allows the control over bitdepth, colorspace and cache.
But every image would need it's own File Cop node. This would mean unlocking the HDA and doing some scripting.
cheers,
benS
To answer the question; no my only way to work around is to tell people to use 16 bit.
I did not find a way to use the colormap() function to read in a 8 bit PNG file in a way that it wouldn't modify the values in the file.
Your problem doesn't sound like noise but more like you found another undocumented undesired feature of the colormap() function.
In my case it was wrongly assuming a certain colorspace based on bitdepth, in your case it is wrongly assuming a certain bit depth based on file format.
Although I like the flexibility loading images in VEX it has also caused more confusion because of caching the files.
I've been using the trick from the Game Dev bakers to link the Force Compile button to a Reload Textures button on my HDAs.
Using a File Cop might be better after all because it allows the control over bitdepth, colorspace and cache.
But every image would need it's own File Cop node. This would mean unlocking the HDA and doing some scripting.
cheers,
benS
PDG/TOPs » access PDG_DIR in PythonScript Top when Evaluate In Process
- ben5ch
- 76 posts
- Offline
Hi Chris,
Yes I had a sneak peak at H18 already.
In H17.5 I had just figured out I needed to add the following to my script:
(yes that can be more compact maybe and does only copy the first input file)
So I was happy to see I the new Copy Inputs To Outputs parameter in H18.
I don't have time to take a deeper look yet.
cheers,
benS
Yes I had a sneak peak at H18 already.
In H17.5 I had just figured out I needed to add the following to my script:
work_item.addResultData(work_item.inputResultData[0][0],work_item.inputResultData[0][1],work_item.inputResultData[0][2])
So I was happy to see I the new Copy Inputs To Outputs parameter in H18.
I don't have time to take a deeper look yet.
cheers,
benS
PDG/TOPs » access PDG_DIR in PythonScript Top when Evaluate In Process
- ben5ch
- 76 posts
- Offline
Thanks Brandon,
That will do.
I must say it takes quite some time to get grip on the different modes PDG can run in.
For instance this Python Script Top can run in Dynamic or Static and can run out-of-process and in-process.
Each with their different syntax when it comes to attributes, inputs, results and variables.
But I still like PDG a lot!
cheers,
benS
That will do.
I must say it takes quite some time to get grip on the different modes PDG can run in.
For instance this Python Script Top can run in Dynamic or Static and can run out-of-process and in-process.
Each with their different syntax when it comes to attributes, inputs, results and variables.
But I still like PDG a lot!
cheers,
benS
PDG/TOPs » access PDG_DIR in PythonScript Top when Evaluate In Process
- ben5ch
- 76 posts
- Offline
…the benefits of using the (default) Evaluate In Process are:
- faster because PDG doesn't need to start separate sessions
- uses same Python environment as your Houdini session rather than a vanilla Python session
I'm using In Process whenever I can..
Just can't imagine the __PDG_DIR__ isn't available in an easy way.
cheers,
benS
- faster because PDG doesn't need to start separate sessions
- uses same Python environment as your Houdini session rather than a vanilla Python session
I'm using In Process whenever I can..
Just can't imagine the __PDG_DIR__ isn't available in an easy way.
cheers,
benS
PDG/TOPs » access PDG_DIR in PythonScript Top when Evaluate In Process
- ben5ch
- 76 posts
- Offline
Hi there,
At the moment I'm modifying the code in a PythonScript Top from running “external” to “in process”.
I was presuming that using:would be the replacement for:
But apparently it isn't as it errors that __PDG_DIR__ is not defined.
The solution can't be difficult right?
cheers,
benS
At the moment I'm modifying the code in a PythonScript Top from running “external” to “in process”.
I was presuming that using:
print __PDG_DIR__
print os.environ['PDG_DIR']
But apparently it isn't as it errors that __PDG_DIR__ is not defined.
The solution can't be difficult right?
cheers,
benS
PDG/TOPs » PDG distinguish workitems in Task Graph Table
- ben5ch
- 76 posts
- Offline
PDG/TOPs » PDG distinguish workitems in Task Graph Table
- ben5ch
- 76 posts
- Offline
Hi there,
When using the Task Graph Table it would be nice if the names of the work items would be a bit more descriptive.
Is there a way to have influence over the name of a workitem?
Or else it would be nice if I could display an extra attribute in the Task Graph Table.
For instance I'm processing tiles or meshes and want to see the name of those.
Didn't had the opportunity to see if this has changed for H18.
cheers,
benS
When using the Task Graph Table it would be nice if the names of the work items would be a bit more descriptive.
Is there a way to have influence over the name of a workitem?
Or else it would be nice if I could display an extra attribute in the Task Graph Table.
For instance I'm processing tiles or meshes and want to see the name of those.
Didn't had the opportunity to see if this has changed for H18.
cheers,
benS
Technical Discussion » VEX colormap scrcolorspace confusion (or is it a bug?)
- ben5ch
- 76 posts
- Offline
Technical Discussion » VEX colormap scrcolorspace confusion (or is it a bug?)
- ben5ch
- 76 posts
- Offline
Actually now that I read the manual again there is a contradiction where it describes the “linear” option.
I missed the bit where it says “interpretation” which is actually the expected behavior.
This is wrong.. as is the result of the colormap() function.
This could be left away for linear.
This is correct. Although not the result of the colormap()
This could be left away as well in my opinion…
I missed the bit where it says “interpretation” which is actually the expected behavior.
Transform to linear space.
This is wrong.. as is the result of the colormap() function.
This currently only affects 8-bit textures, since all others are assumed to be already in linear space.
This could be left away for linear.
Use this option to force linear interpretation
This is correct. Although not the result of the colormap()
of textures used for bump or displacement maps.
This could be left away as well in my opinion…
Technical Discussion » VEX colormap scrcolorspace confusion (or is it a bug?)
- ben5ch
- 76 posts
- Offline
Hi there,
At the moment I'm creating a texture baker using COPs. Inspired by the GameDevs Maps Baker because it is so fast and a lot more straightforward than using Mantra/BakeTexture Rop and a shader that uses renderstate()
In a VOP COP I'm reading an 8bit PNG file and I want to read the pixel values untransformed and “untouched”.
There is the scrcolorspace argument but it seems it doesn't really matter which option you use.
If set to “auto” it assumes values are sRGB and transforms the values to linear.
If set to “linear” it treats the values as sRGB and transforms the values to linear.
The manual states the following:
The VEX colormap's scrcolormap “linear” option only does things correctly according the how this option is described in the manual.
But! The option is called Source Color Space so this should be the same as Image Color Space from the File Cop.
The manual for the VEX colormap's scrcolormap argument also describes the options as “from this space into linear space”
If the source colorspace is set to “linear” it should not do a transform if the target colorspace is linear.
The File Cop has some more features.
First I can disable Linearize Non-Linear Images parameter which gives me the desired untransformed and “untouched” values.
If I enable the Linearize Non-Linear Images parameter then I have 3 options for the Image Color Space parameter.
If set to Detect From File it assumes values are sRGB and transforms the values to linear.
If set to Linear it treats values as linear already and gives me the desired untransformed and “untouched” values.
If set to sRGB it treats the values as sRGB and transforms the values to linear.
If you ask me then the File Cop does things correctly.
I can't believe I'm the first one to use colormap() with an 8 bit image and bump into this issue.
Please tell me it's a human error on my side because I doubt Side Effects is going to change (fix) the behavior of such an essential function. Although adding an option for “Linearize Non-Linear Images” and setting its default to ON it would stay backwards compatible.
As work around I could just not use the colormap() and use the File COP, as a second input to my VEX COP, instead.
But I like to use the area sampling features that the colormap has. I don't want to write my own code for that.
Anyone?
Cheers,
benS
At the moment I'm creating a texture baker using COPs. Inspired by the GameDevs Maps Baker because it is so fast and a lot more straightforward than using Mantra/BakeTexture Rop and a shader that uses renderstate()
In a VOP COP I'm reading an 8bit PNG file and I want to read the pixel values untransformed and “untouched”.
There is the scrcolorspace argument but it seems it doesn't really matter which option you use.
If set to “auto” it assumes values are sRGB and transforms the values to linear.
If set to “linear” it treats the values as sRGB and transforms the values to linear.
The manual states the following:
“srccolorspace”, string
Specifies the color space in which the texture is stored. When texture values are accessed, they will be translated from this space into linear space for rendering if needed.
auto
(default) Determine the source color space based on the file. Currently, this will assume sRGB color space for 8-bit textures and linear for all other textures.
linear
Transform to linear space. This currently only affects 8-bit textures, since all others are assumed to be already in linear space. Use this option to force linear interpretation of textures used for bump or displacement maps.
The VEX colormap's scrcolormap “linear” option only does things correctly according the how this option is described in the manual.
But! The option is called Source Color Space so this should be the same as Image Color Space from the File Cop.
The manual for the VEX colormap's scrcolormap argument also describes the options as “from this space into linear space”
If the source colorspace is set to “linear” it should not do a transform if the target colorspace is linear.
The File Cop has some more features.
First I can disable Linearize Non-Linear Images parameter which gives me the desired untransformed and “untouched” values.
If I enable the Linearize Non-Linear Images parameter then I have 3 options for the Image Color Space parameter.
If set to Detect From File it assumes values are sRGB and transforms the values to linear.
If set to Linear it treats values as linear already and gives me the desired untransformed and “untouched” values.
If set to sRGB it treats the values as sRGB and transforms the values to linear.
If you ask me then the File Cop does things correctly.
I can't believe I'm the first one to use colormap() with an 8 bit image and bump into this issue.
Please tell me it's a human error on my side because I doubt Side Effects is going to change (fix) the behavior of such an essential function. Although adding an option for “Linearize Non-Linear Images” and setting its default to ON it would stay backwards compatible.
As work around I could just not use the colormap() and use the File COP, as a second input to my VEX COP, instead.
But I like to use the area sampling features that the colormap has. I don't want to write my own code for that.
Anyone?
Cheers,
benS
PDG/TOPs » PDG+HQueue running two subsequent TOPs/jobs on the same client
- ben5ch
- 76 posts
- Offline
Hi Chris,
Yes I realize now that there is not such a mechanism because:
A: it would be HQueue specific and not work for other shedulers
B: renderfarms seem to be made with share drives in mind.
I've tried the second option this morning and believe I saw it working once.
But I can't reproduce that case again.
It is nice to see the TOP nodes, that should run on a single client, in isolation in their own network.
The downside is that debugging the nodes can be tricky in a similar to debugging of Invoke networks because no workitem/data is flowing through them.
I'm now investigating the first option.
I've got both Perforce and HDA tops set up to use the HQueue server and trying to limit the hqueue_clients of the second one to the client of the first one. But unfortunately doesn't work yet.
I've tried the following expression in the hqueue_clients parameter (under Override Job Parameters):
And I've managed creating in attribute using simular code and set the hqueue_clients parameter to @upstream_client.
Both the pythonprocessor and the hda processor are set to Dynamic as I thought that would make sense.
But no success yet. The hda processor is executed on a random client.
Any further leads?
cheers,
benS
Yes I realize now that there is not such a mechanism because:
A: it would be HQueue specific and not work for other shedulers
B: renderfarms seem to be made with share drives in mind.
I've tried the second option this morning and believe I saw it working once.
But I can't reproduce that case again.
It is nice to see the TOP nodes, that should run on a single client, in isolation in their own network.
The downside is that debugging the nodes can be tricky in a similar to debugging of Invoke networks because no workitem/data is flowing through them.
I'm now investigating the first option.
I've got both Perforce and HDA tops set up to use the HQueue server and trying to limit the hqueue_clients of the second one to the client of the first one. But unfortunately doesn't work yet.
I've tried the following expression in the hqueue_clients parameter (under Override Job Parameters):
`import xmlrpclib; xmlrpclib.ServerProxy("http://ams-houdini:5000").getJob(@hqueue_jobid)['clients'] [0]['hostname']`
Both the pythonprocessor and the hda processor are set to Dynamic as I thought that would make sense.
But no success yet. The hda processor is executed on a random client.
Any further leads?
cheers,
benS
Edited by ben5ch - Aug. 8, 2019 11:54:33
-
- Quick Links