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.
Found 101 posts.
Search results Show results as topic list.
Technical Discussion » How to - ONNX Inference on volumes ?
- ObeidaZakzak
- 101 posts
- Online
Technical Discussion » Feather Interpolate Setup Questions.
- ObeidaZakzak
- 101 posts
- Online
You need to setup two primitive attributes on guides :
-
-
Most of the work would be adjusting weights in
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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
- 101 posts
- Online
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]
Technical Discussion » What is the difference between =set() and ={}
- ObeidaZakzak
- 101 posts
- Online
metaclay2
Thanks, my next question is : if set() can also use static value the what is the benefit of using {} ? or If the value is just static then what makes the {} preferable compared to set() ?
Hello,
Using set() function should result with a run-time evaluation of values provided inside, no matter if they are static or dynamic.
When working with static values, curly braces {} are preferred as they do compile-time evaluation. This means that they will get computed once when the VEX code is compiled, and will not be computed again when the VEX code is running. This can save memory and time for run-time.
If you search "compile-time vs. run-time evaluation" on internet you can find a lot of questions/answers about this topic, as this is a generic programming question.
Technical Discussion » soptoolutils documentation
- ObeidaZakzak
- 101 posts
- Online
There is no official documentation for soptoolutils and other additional python packages. They evolve with newer Houdini versions, so it makes sense that you don't find the function you are looking for in this link, probably built with older Houdini version.
You can find soptoolutils and other python packages under "$HFS/houdini/pythonX.Ylibs", for example with Windows and Houdini 20.0.590 it's placed under "C:/Program Files/Side Effects Software/Houdini 20.0.590/houdini/python3.10libs"
If you use an IDE to read python files in this folder you could see how functions are written.
You can find soptoolutils and other python packages under "$HFS/houdini/pythonX.Ylibs", for example with Windows and Houdini 20.0.590 it's placed under "C:/Program Files/Side Effects Software/Houdini 20.0.590/houdini/python3.10libs"
If you use an IDE to read python files in this folder you could see how functions are written.
Edited by ObeidaZakzak - March 5, 2024 17:16:17
Mardini 2024 » Day 3 | Geometry | Scatter & Align | Image
- ObeidaZakzak
- 101 posts
- Online
Mardini 2024 » Day 2 | Geometry | Topobuild | Image
- ObeidaZakzak
- 101 posts
- Online
02 - TopoBuild
Used it to add headband and handbands to Capybara.
Then added some fur and rendered with Karma XPU.
Used it to add headband and handbands to Capybara.
Then added some fur and rendered with Karma XPU.
Technical Discussion » Arnold installation for v 19.5.805?
- ObeidaZakzak
- 101 posts
- Online
Hello,
I didn't install HtoA before, but there's a couple of things that would help if you check them in your situation :
1. Does the specified path exist at all ? in some places you are writing "htoa-6.2.5.2_r2dd89ed_houdini-19.5.805" two times in the same file path, and in other places one time. Maybe they do exist but it got me confused a bit.
2. Does the the specified path has the expected folders that look like "otls", "soho", "dso", "toolbar" etc... ? Just like ones that you can find under your HOUDINI_USER_PREF_DIR.
3. In lots of situations, Houdini doesn't like back slash "\" in file path as it could escape some characters, so always use forward slash "/" in package file.
Hope this helps.
I didn't install HtoA before, but there's a couple of things that would help if you check them in your situation :
1. Does the specified path exist at all ? in some places you are writing "htoa-6.2.5.2_r2dd89ed_houdini-19.5.805" two times in the same file path, and in other places one time. Maybe they do exist but it got me confused a bit.
2. Does the the specified path has the expected folders that look like "otls", "soho", "dso", "toolbar" etc... ? Just like ones that you can find under your HOUDINI_USER_PREF_DIR.
3. In lots of situations, Houdini doesn't like back slash "\" in file path as it could escape some characters, so always use forward slash "/" in package file.
Hope this helps.
Edited by ObeidaZakzak - March 2, 2024 08:43:25
-
- Quick Links