Hi
The loop nodes have been updated since that tutorial was made. To add the old if node do the following:
- Open the Textport window
- Type “cd” + space
- Drag the attribute/point vop into the textport window so it reads someting like “cd /obj/box_object1/attribvop1” and press enter
- Type “opadd if”. This will insert the old if node into the vop node you dragged into the textport.
But i would strongly urge you to learn the new loop paradigm:
Loop master class [youtube.com]. It' a lot easier to use. You don't have to jump in and out of the logic-nodes all the time. Takes a little getting used to but it's worth it.
-b
Found 444 posts.
Search results Show results as topic list.
Houdini Learning Materials » Struggling to find an If-Then Block
- bonsak
- 459 posts
- Offline
Technical Discussion » Vex equivalent for shift + a
- bonsak
- 459 posts
- Offline
Hi
If I know two point id's on the same edge loop, is there an easy way to find the ids of the points between the two known points on the same edgeloop with VEX?
-b
If I know two point id's on the same edge loop, is there an easy way to find the ids of the points between the two known points on the same edgeloop with VEX?
-b
Edited by bonsak - Sept. 9, 2016 15:57:24
Houdini Lounge » Newbie expression question
- bonsak
- 459 posts
- Offline
Hi and welcome.
You should check out this [sidefx.com] section in the docs. And especially this [sidefx.com] chapter.
When building structures like this, it's much easier to first build a template of points (that goes into the second input on the copy node) and then copy your geometry onto those points. As you can see in the second link the copy node reads all the listed attributes by default. It's a lot easier to control attributes on single points in your template and have your copied geometry obey those attributes. Than trying to control N copies of full geo.
Check out that modified version of your file. First I set up the points to copy onto. Then i set the normal to point to the target. The copied geo aligns it self with the normal of the point automatically.
Hope this helps.
-b
You should check out this [sidefx.com] section in the docs. And especially this [sidefx.com] chapter.
When building structures like this, it's much easier to first build a template of points (that goes into the second input on the copy node) and then copy your geometry onto those points. As you can see in the second link the copy node reads all the listed attributes by default. It's a lot easier to control attributes on single points in your template and have your copied geometry obey those attributes. Than trying to control N copies of full geo.
Check out that modified version of your file. First I set up the points to copy onto. Then i set the normal to point to the target. The copied geo aligns it self with the normal of the point automatically.
Hope this helps.
-b
Houdini Indie and Apprentice » Clones vs Instances
- bonsak
- 459 posts
- Offline
Yes it works with instancing as well to a certain extent. You make variation by setting varying attributes [sidefx.com] on the points of geo you're instancing on.
-b
-b
Edited by bonsak - Aug. 28, 2016 17:16:30
Technical Discussion » HScript Syntax Highlighter (sublime)
- bonsak
- 459 posts
- Offline
Houdini Indie and Apprentice » POP wrangle to detect impacts ?
- bonsak
- 459 posts
- Offline
Cool. Didn't know you had to reference it with absolute paths. But i think that will only give you the first impulse value for each packed primitive. Not all the impulse values for each packed primitive?
I thought maybe something like this would work in a wrangle in the SOP Solver but it's not updating the detail attribute on the Geometry data in the dopnet. Anyway here it is:
This gets you an detail array attribute containing vectors that looks like this: ( recordnum, primnum, impulse value ).
-b
I thought maybe something like this would work in a wrangle in the SOP Solver but it's not updating the detail attribute on the Geometry data in the dopnet. Anyway here it is:
int npts = npoints(1); // Get the nuumber of points from input 2 vector impulse[]; // Declare the array to hold the values for(int i = 0; i < npts; i++){ int recordnum = point(1, "recordnum", i); // Get the pointnumber int primnum = point(1, "primnum", i); // Get the primnum / same as packed float imp = point(1, "impulse", i); // Get the impulse value impulse[i] = set(recordnum, primnum, imp); // Wrap all three into an array } v[]@_impulses = impulse; // Set the array as an attribute
This gets you an detail array attribute containing vectors that looks like this: ( recordnum, primnum, impulse value ).
-b
Technical Discussion » HScript Syntax Highlighter (sublime)
- bonsak
- 459 posts
- Offline
Edited by bonsak - Aug. 28, 2016 03:41:45
Houdini Indie and Apprentice » POP wrangle to detect impacts ?
- bonsak
- 459 posts
- Offline
If you add a Sop Solver before the POP Wrangle, you can get the impulse data from the “Impacts” node. Pass the values to the POP wrangle as a point array attribute or something.
-b
-b
Technical Discussion » Help using VDB Point Advect inside SolverSOP
- bonsak
- 459 posts
- Offline
Technical Discussion » Help using VDB Point Advect inside SolverSOP
- bonsak
- 459 posts
- Offline
Hi
This is a classic problem when using solvers nodes. Because “Output Streamers” are on in the Solvers VDB Advect Points, you're adding new points to already added points. Tripling the number of points for each iteration. One solution is to not use the VDB Advect Points in a solver (like you're already doing with “vdbadvectpoints1”) but set “Time Step” to $T and “Substep” to $F. This is basically the same.
If you need to have the advect node inside a solver, you need to figure out a way to isolate the incoming points from the new points that “Output Streamers” creates in one iteration. Check out how Moritz does that with vex in this tutorial [entagma.com] at around 17:20
But because the advect node doesn't generate any attributes or groups for the “Output Streamers” points, this could be a little tricky. I don't have a solution for you at the moment. Will have to dive into this a little more.
-b
This is a classic problem when using solvers nodes. Because “Output Streamers” are on in the Solvers VDB Advect Points, you're adding new points to already added points. Tripling the number of points for each iteration. One solution is to not use the VDB Advect Points in a solver (like you're already doing with “vdbadvectpoints1”) but set “Time Step” to $T and “Substep” to $F. This is basically the same.
If you need to have the advect node inside a solver, you need to figure out a way to isolate the incoming points from the new points that “Output Streamers” creates in one iteration. Check out how Moritz does that with vex in this tutorial [entagma.com] at around 17:20
But because the advect node doesn't generate any attributes or groups for the “Output Streamers” points, this could be a little tricky. I don't have a solution for you at the moment. Will have to dive into this a little more.
-b
Technical Discussion » DOP Force Wrangle node
- bonsak
- 459 posts
- Offline
Didn't know you where simulating RBD's
Try the Geometry Wrangle or the POP Wrangle and connect it to the Pre-Solve port on the Rigid Body Solver.
EDIT: Or a POP Force with “Use VEXpression” turned on.
-b
Try the Geometry Wrangle or the POP Wrangle and connect it to the Pre-Solve port on the Rigid Body Solver.
EDIT: Or a POP Force with “Use VEXpression” turned on.
-b
Edited by bonsak - Aug. 26, 2016 07:41:36
Technical Discussion » DOP Force Wrangle node
- bonsak
- 459 posts
- Offline
Technical Discussion » Prevent point added with "Add SOP" from rendering in Mantra
- bonsak
- 459 posts
- Offline
Mantra differentiates between connected and unconnected points. That's why your stray “Add SOP” point is rendered
-b
-b
Technical Discussion » Prevent point added with "Add SOP" from rendering in Mantra
- bonsak
- 459 posts
- Offline
You can create an pscale attribute on the point(s) and set it to zero?
Or jump up to scene level and go to the Render -> Geometry tab on your geo and set “Render As Points (mantra)” to “No Point Rendering”
-b
Or jump up to scene level and go to the Render -> Geometry tab on your geo and set “Render As Points (mantra)” to “No Point Rendering”
-b
Edited by bonsak - Aug. 17, 2016 18:09:23
Technical Discussion » Q: Ramp parameter expression syntax
- bonsak
- 459 posts
- Offline
Hi
I have a ramp parameter promoted on an Attribute Vop. Right clicking on the parameter name in the UI reveals the expression flyout.
- If i want to modify the existing ramp with an expression, what does the data look like that has to be returned to the ramp?
- How can i query the data passed into the expression. If any.
Preferably in Python.
On a more general note, is there a way to store ramp presets?
Any hints or tips appreciated.
- b
I have a ramp parameter promoted on an Attribute Vop. Right clicking on the parameter name in the UI reveals the expression flyout.
- If i want to modify the existing ramp with an expression, what does the data look like that has to be returned to the ramp?
- How can i query the data passed into the expression. If any.
Preferably in Python.
On a more general note, is there a way to store ramp presets?
Any hints or tips appreciated.
- b
Edited by bonsak - Aug. 17, 2016 14:30:39
Houdini Indie and Apprentice » VEX - addprim function: Conditions that change returned value
- bonsak
- 459 posts
- Offline
Correct me if i'm wrong but I think the doc's are implying that because a wrangle is multi threaded, it's making temporary prim id's when the prims are created (so it doesn't have to ping the other threads for id lookups) and then all the new prim id's are remapped/sorted when the wrangle finishes and passes data to the put port.
-b
-b
Houdini Learning Materials » Houdini Flip
- bonsak
- 459 posts
- Offline
Hi
The group drop down field in POP's doesn't always update immediately, so sometimes you have to just write in the group name manually.
-b
The group drop down field in POP's doesn't always update immediately, so sometimes you have to just write in the group name manually.
-b
Houdini Indie and Apprentice » add a custom point attribute to a grid from pixel values
- bonsak
- 459 posts
- Offline
You can set “Texture map” to
-b
op:/img/YOUR_COMP_NAME/YOUR_OUTPUTNODE
-b
Edited by bonsak - Aug. 10, 2016 10:59:01
Houdini Indie and Apprentice » add a custom point attribute to a grid from pixel values
- bonsak
- 459 posts
- Offline
Houdini Lounge » Remove prim from group in VEX
- bonsak
- 459 posts
- Offline
That will not work unfortunately. The parameter channel needs to be of type snippet for VEX to work.
Check this [sidefx.com] link for how to use parameter expressions.
-b
Check this [sidefx.com] link for how to use parameter expressions.
-b
-
- Quick Links