Hello,
A parameter expression should be used to set that parameter's value. You are attempting to read this parameter's vlaue in an expression that's is meant to set it, so no wonder that it's finishing with an infinit loop.
Take a look at parameter callbacks instead as they sound to fit your need of triggering an event when clicking on the toggle parm.
Found 106 posts.
Search results Show results as topic list.
Houdini Indie and Apprentice » Read Toggle Button with Python Expression
-
- ObeidaZakzak
- 106 posts
- Offline
Technical Discussion » How to make an HDA behave like a "node block"?
-
- ObeidaZakzak
- 106 posts
- Offline
Out of curiosity, what kind of data would these node blocks have to fetch and output ? And what kind of application would this help for ?
Technical Discussion » Guide Mask Sop - Visualisation colours
-
- ObeidaZakzak
- 106 posts
- Offline
Hello,
Noticed same thing on these nodes in Houdini 20.
Looking inside, these nodes use a visualize sop with "Attribute As Is" mode. So it looks like the behaviour of this mode has changed from black/red to black/white in Houdini 20, this applys to any attribute, on any class.
Current method for me is to set a Scene Visualizer with desired color ramp on @curvemask attribute, as it's used by Guide Mask and Guide Process nodes for visualization. This way you get same behaviour on all nodes without adding a visualize sop.
Noticed same thing on these nodes in Houdini 20.
Looking inside, these nodes use a visualize sop with "Attribute As Is" mode. So it looks like the behaviour of this mode has changed from black/red to black/white in Houdini 20, this applys to any attribute, on any class.
Current method for me is to set a Scene Visualizer with desired color ramp on @curvemask attribute, as it's used by Guide Mask and Guide Process nodes for visualization. This way you get same behaviour on all nodes without adding a visualize sop.
Technical Discussion » How to get a mean value along one axis ?
-
- ObeidaZakzak
- 106 posts
- Offline
Here's a possible method without having to loop over samples, which executes fast on 13M points.
Couldn't find your model to test over it, as it wasn't attached on your post.
1. Create f@h attribute and zero-out altitude on points
2. Use a Fuse SOP to snap points and average their f@h value : this will result with an average along Y-axis
3. Transfer f@h from fused/averaged points to the zero-altitude points
4. Copy back f@h to original points
Couldn't find your model to test over it, as it wasn't attached on your post.
1. Create f@h attribute and zero-out altitude on points
2. Use a Fuse SOP to snap points and average their f@h value : this will result with an average along Y-axis
3. Transfer f@h from fused/averaged points to the zero-altitude points
4. Copy back f@h to original points
Edited by ObeidaZakzak - May 27, 2024 16:18:46
Technical Discussion » OpenCL QuadTree for N body optimisation
-
- ObeidaZakzak
- 106 posts
- Offline
In Houdini 20, SideFX introduced a new syntaxe for OpenCL, similar to VEX with @-syntaxe, and they provided a documentation for this one https://www.sidefx.com/docs/houdini/vex/ocl.html [www.sidefx.com]
So it might help in case you are familiar with VEX.
So it might help in case you are familiar with VEX.
Technical Discussion » How to - ONNX Inference on volumes ?
-
- ObeidaZakzak
- 106 posts
- Offline
You can find an example with Heightfields (which are 2D volumes) in the Content Library https://www.sidefx.com/contentlibrary/ml-terrain/ [www.sidefx.com]
This node expects Houdini's native volumes, not VDBs, so in your scene you can use a VDB Convert node to convert VDB to Volume and be able to use ONNX Inference node.
However, the onnx model you are using seems to output 1D volumes, so you need to copy data to 3D volume using 3D to 1D index conversion, I used formula from this site to do the conversion and copy results from ONNX node to expected output volumes https://ennogames.com/blog/3d-and-2d-coordinates-to-1d-indexes [ennogames.com]
Also added an example without VDBs, by creating either a 2D (image) or 3D (smoke) volume.
This node expects Houdini's native volumes, not VDBs, so in your scene you can use a VDB Convert node to convert VDB to Volume and be able to use ONNX Inference node.
However, the onnx model you are using seems to output 1D volumes, so you need to copy data to 3D volume using 3D to 1D index conversion, I used formula from this site to do the conversion and copy results from ONNX node to expected output volumes https://ennogames.com/blog/3d-and-2d-coordinates-to-1d-indexes [ennogames.com]
Also added an example without VDBs, by creating either a 2D (image) or 3D (smoke) volume.
Technical Discussion » Feather Interpolate Setup Questions.
-
- ObeidaZakzak
- 106 posts
- Offline
You need to setup two primitive attributes on guides :
-
-
![](/forum/attachment/8c02304372c143e00fada211a8ffbf75513542b0/)
Most of the work would be adjusting weights in
![](/forum/attachment/36ad7e56877c28bfbf13d89a204e579dcf671194/)
Attached a hip file with an example using this approach.
-
templatenames
: string array of feather names that you want to interpolate-
templateweights
: float array of feather weights, it tells the blend amount to take from each feather templateMost of the work would be adjusting weights in
templateweights
attribute. For example, a possible way would be to adjust a weight attribute for each template, then build an array of all these attributes. This opens the possibility of controling weights procedurally with Attribute Adjust Float node or Guide Mask node, and manually painting weights with Attribute Paint node. You could adjust weights on guides directly, or do this on the skin then transfer to guides using Guide Skin Attribute Lookup node.Attached a hip file with an example using this approach.
Technical Discussion » Heightfield Erode Error when using Freeze at Frame
-
- ObeidaZakzak
- 106 posts
- Offline
Since you have steps to reproduce the error you would get a better help by logging a bug to SideFX support https://www.sidefx.com/bugs/submit/ [www.sidefx.com]
I tested with 19.0.657 and 20.0.653 and couldn't reproduce the error on my side, so you can tell the support more about your system configuration and Houdini version, they would maybe ask for hip file where you get this error.
I tested with 19.0.657 and 20.0.653 and couldn't reproduce the error on my side, so you can tell the support more about your system configuration and Houdini version, they would maybe ask for hip file where you get this error.
Houdini Lounge » UV Image Viewer
-
- ObeidaZakzak
- 106 posts
- Offline
malexanderIt was there all that time and never noticed it ^^ Thanks !
If you open the file browser for the texture image parameter on the VOP node, in the lower left corner you'll see a button called "Preview". If you have a file selection, it'll launch mplay with that file.
Houdini Lounge » UV Image Viewer
-
- ObeidaZakzak
- 106 posts
- Offline
Maybe you could use a File COP inside a copnet to load a texture and view it in the Composite View.
Technical Discussion » Saving HDAs to network drive on Windows problems.
-
- ObeidaZakzak
- 106 posts
- Offline
Sounds like a similar issue reported in this thread https://www.sidefx.com/forum/topic/93227/ [www.sidefx.com] that was already fixed in recent versions
Technical Discussion » Point cloud: Where does this web-like pattern come from?
-
- ObeidaZakzak
- 106 posts
- Offline
More of an optical illusion in Perspective view (not sure if it has a proper name ^^).
You can notice that points are evenly separated in Front/Top/Right Orthographic views.
You can notice that points are evenly separated in Front/Top/Right Orthographic views.
Technical Discussion » it is my first question about vex
-
- ObeidaZakzak
- 106 posts
- Offline
raincole
Is it possible to define a verb with SOP nodes (or python, or vex?).
A possible way to do something like this is to define a compiled block (or a compiled graph), then use the Invoke SOP (or Invoke Compiled Graph SOP) as a verb to invoke your compiled block (or compiled graph).
SideFX is using these two methods :
- compiled blocks for custom brushs in SOP-level HDA viewer state, you can take a look at the HDA Python module of the Texture Mask Paint SOP (added in Houdini20)
- compiled graphs for render-time procedurals in Solaris, they do the invoke stuff using a python script called
invokegraph.py
that you can find under $HFS/houdini/husdplugins/houdiniprocedurals
Houdini Lounge » Help browser
-
- ObeidaZakzak
- 106 posts
- Offline
NicTanghe
After a resinstall of my system i seem to have fergotten what i changed to have this be the default behaviour though.
Does annyone know ?
Houdini has an environment variable that allows you to pick a web browser for documentation HOUDINI_EXTERNAL_HELP_BROWSER. Are you looking for this variable or is there anything else that stops Houdini from picking the browser even if this variable is set ?
Technical Discussion » Heightfield filecache
-
- ObeidaZakzak
- 106 posts
- Offline
The interface of File Cache node has changed since Houdini 19.0, by default it acts in a way where you focus on folder path and file baseneme, then it constructs the full file path for you.
To have more control on the file path, you can change "File Path" parameter from "Constructed" to "Explicit", and write a filename with .obj extension.
To have more control on the file path, you can change "File Path" parameter from "Constructed" to "Explicit", and write a filename with .obj extension.
Edited by ObeidaZakzak - April 24, 2024 14:09:14
Technical Discussion » read an attribute name
-
- ObeidaZakzak
- 106 posts
- Offline
Gerardo Castellanos
Thanks, but I would like to access to the values of that attribute with a @`chs("../attrMask")`, and I get the same error message when it is empty.
If you are willing to only use @-syntaxe, you would likely need to use bindings :
1. On attribute wrangle > Bindings tab > add one in Number of Bindings > link Attribute Name to your parameter and set the VEX Parameter name
2. In your VEX code, whenever you write @maskAttribute you will be reading/writing the attribute entered by user on the "attrMask" parameter
If it's ok to use other functions like point() and prim() to read attrib value, then it's already covered in previous answers.
Technical Discussion » Copy 1st value of vertex array attribute to a point float
-
- ObeidaZakzak
- 106 posts
- Offline
When the return type of the called function is vector (for example minpos), then you can use this syntaxe to extract the desired component without having to store a new variable :
But when the function has more possibilities of return type, like the vertex/prim/point functions, then you have to cast the return type to a vector to be able to use this kind of syntaxe :
f@x = minpos(1, v@P).x; f@y = minpos(1, v@P)[1];
But when the function has more possibilities of return type, like the vertex/prim/point functions, then you have to cast the return type to a vector to be able to use this kind of syntaxe :
f@u = vector(vertex(0, "uv", @vtxnum))[0]; f@v = vector(vertex(0, "uv", @vtxnum)).y;
Technical Discussion » Copy 1st value of vertex array attribute to a point float
-
- ObeidaZakzak
- 106 posts
- Offline
In a point wrangle you can extract the uv attribute from the corresponding vertex in this way :
vertex() function reads attribute data from a given vertex number of the geometry, and @vtxnum evaluates to a vertex number thats wires to the point being looped over in the wrangle
vector uv = vertex(0, "uv", @vtxnum); f@u = uv.x;
vertex() function reads attribute data from a given vertex number of the geometry, and @vtxnum evaluates to a vertex number thats wires to the point being looped over in the wrangle
Technical Discussion » AWS Deadline Cloud Integration
-
- ObeidaZakzak
- 106 posts
- Offline
Didn't test it yet, but it looks like you need a login to AWS account to get access to the download of Deadline Cloud submitter :
https://docs.aws.amazon.com/deadline-cloud/latest/userguide/submitter.html [docs.aws.amazon.com]
The doc says that after installation of the submitter you get access to the submitter inside ROP network, like the classic submitter. As I didn't install it yet I can't tell if it's the same ROP node with additional parms, or if it's a separate ROP node.
https://docs.aws.amazon.com/deadline-cloud/latest/userguide/submitter.html [docs.aws.amazon.com]
The doc says that after installation of the submitter you get access to the submitter inside ROP network, like the classic submitter. As I didn't install it yet I can't tell if it's the same ROP node with additional parms, or if it's a separate ROP node.
Solaris and Karma » Custom Husk Procedurals
-
- ObeidaZakzak
- 106 posts
- Offline
Check this post https://www.sidefx.com/forum/topic/85494/#post-369964 [www.sidefx.com]
And Houdini 20's keynote feather hip files, there's a custom feather procedural https://www.sidefx.com/houdini-hive/houdini-20-hive/#feathers [www.sidefx.com]
And Houdini 20's keynote feather hip files, there's a custom feather procedural https://www.sidefx.com/houdini-hive/houdini-20-hive/#feathers [www.sidefx.com]
-
- Quick Links