I'd suggest using this instead of Unified Noise if you have to be sure of the ranges
https://github.com/fxnut/siLib/tree/master/build/stable_noise [github.com]
Found 172 posts.
Search results Show results as topic list.
Technical Discussion » Unified Noise study
- tjeeds
- 339 posts
- Offline
Technical Discussion » it’s possible to export a .svg??
- tjeeds
- 339 posts
- Offline
FakePilot
I am, however, looking for a way to export a sequence.
Just put $F4 in the svg filename and hit play. If you're sending off to a farm you'd want to set this up as a Pre-frame Script in a Shell Rop instead of a Python Sop.
Technical Discussion » Min/Max values for VDB?
- tjeeds
- 339 posts
- Offline
That's correct Sho. I originally posted this so long ago so I can't remember what the issue was. I've been converting to native volumes and pulling the volumeminvalue and volumemaxvalue prim intrinsics without issue for as long as I can recall.
Houdini Learning Materials » Not sure what use Angular Velocity has
- tjeeds
- 339 posts
- Offline
Yeah they'll motion blur just fine with v, in a straight line, but angular velocity gives rotational blur. If you have a packed prim spinning around at the origin v is gonna be {0,0,0}. This is why w is stored on RBDs too, it is rotation about the center of mass, which can be converted to linear point velocity but also expressed as a single vector for the whole rigid body.
I'm assuming Matt's file shows this, can't seem to open it on my dumb dang Windows machine.
I'm assuming Matt's file shows this, can't seem to open it on my dumb dang Windows machine.
Technical Discussion » Q: Rotate primitive in VEX
- tjeeds
- 339 posts
- Offline
Ooh, I like that primpoints() function, good method! You can also minimize the complexity of the rotation by directly multing the matrix and applying the pivot yourself:
float angle;
matrix3 rotm;
// first calculate rotation around the axis, convert to orient
angle = ch('angle');
angle += (@primnum/float(@numprim))*ch('waveoffset');
rotm = ident();
rotate(rotm, angle, v@axis);
//move to origin, apply rotation, move back
@P -= v@pivot;
@P *= rotm;
@P += v@pivot;
float angle;
matrix3 rotm;
// first calculate rotation around the axis, convert to orient
angle = ch('angle');
angle += (@primnum/float(@numprim))*ch('waveoffset');
rotm = ident();
rotate(rotm, angle, v@axis);
//move to origin, apply rotation, move back
@P -= v@pivot;
@P *= rotm;
@P += v@pivot;
Houdini Learning Materials » Not sure what use Angular Velocity has
- tjeeds
- 339 posts
- Offline
I believe packed primitives/render-time instances can use angular velocity for motion blur.
Houdini Indie and Apprentice » Any way to keep Point Vops sync ?
- tjeeds
- 339 posts
- Offline
Actually, it sounds like an OTL is exactly what you need Why do you think it's too complicated?
Unless there's some way to promote up parms to Sops when referencing a CVEX shade builder shop… that'd be cool, maybe hard to keep in sync though
Unless there's some way to promote up parms to Sops when referencing a CVEX shade builder shop… that'd be cool, maybe hard to keep in sync though
Houdini Indie and Apprentice » Any way to keep Point Vops sync ?
- tjeeds
- 339 posts
- Offline
You can set it up to use a CVEX Shader Builder from the Shops context instead of it's own internal contents. Paste the contents of the Point Vop into the shop node, including globals and outputs, then on the Point Vop change the Vex Source parameter from “Myself” to “Shop”. Point the newly exposed Shop Path parm to your shader network and now all copies of this node can be updated from one place. Promoted parameters can be changed individually, so if you want that to stay the same you must do reference copies of the node.
Technical Discussion » About Vop array limitations/bugs
- tjeeds
- 339 posts
- Offline
I don't know of a “good” way, only nightmare way that might not even work. I'd like to see a clever response to this too
You can look into this though:
http://www.sidefx.com/docs/houdini15.0/vex/halfedges [sidefx.com]
Also filter the VEX function list by “vertex” and look at those functions.
I think you'd have to loop through your array and compare each vert to the other verts in the list and see if they share a half edge, then convert the vertices to point numbers and run it into a print node to format it like “p0-p1 p2-p3”, write that as a detail string or something and reference it in the group field with an expression.
So my question is, do you really need an edge group?
You can look into this though:
http://www.sidefx.com/docs/houdini15.0/vex/halfedges [sidefx.com]
Also filter the VEX function list by “vertex” and look at those functions.
I think you'd have to loop through your array and compare each vert to the other verts in the list and see if they share a half edge, then convert the vertices to point numbers and run it into a print node to format it like “p0-p1 p2-p3”, write that as a detail string or something and reference it in the group field with an expression.
So my question is, do you really need an edge group?
Technical Discussion » About Vop array limitations/bugs
- tjeeds
- 339 posts
- Offline
Houdini Lounge » Post your favourite Wrangle SOP presets
- tjeeds
- 339 posts
- Offline
Convert sphere primitive intrinsic transform to pscale:
matrix3 m3 = primintrinsic(@OpInput1, “transform”, @primnum);
vector extracted = cracktransform(0, 0, 2, { 0, 0, 0 }, m3);
@pscale = max(extracted,max(extracted,extracted));
matrix3 m3 = primintrinsic(@OpInput1, “transform”, @primnum);
vector extracted = cracktransform(0, 0, 2, { 0, 0, 0 }, m3);
@pscale = max(extracted,max(extracted,extracted));
Technical Discussion » To VEX, or not to VEX...?
- tjeeds
- 339 posts
- Offline
Just to add a different viewpoint: I'd stick with VOPs for the most part. You will pick up VEX along the way. If you LOVE coding then you probably wouldn't be asking this question, right?
Advantages:
*You don't need to worry about syntax, if your vopnet doesn't work it's because your logic is wrong rather than a missing semi-colon/misspelled argument.
*If you keep your networks clean they will be more readable than a big block of code, vops makes it easy to see what attributes are being written to and trace back the connections from there.
*Vops is great for figuring out which vex command you need, (open Type Properties on the node and go to the code tab)
*While it's correct that vops is incomplete, it is mostly complete. By the time you run into something you can do in vex but not vops, you will likely be experienced enough to work it out
Advantages:
*You don't need to worry about syntax, if your vopnet doesn't work it's because your logic is wrong rather than a missing semi-colon/misspelled argument.
*If you keep your networks clean they will be more readable than a big block of code, vops makes it easy to see what attributes are being written to and trace back the connections from there.
*Vops is great for figuring out which vex command you need, (open Type Properties on the node and go to the code tab)
*While it's correct that vops is incomplete, it is mostly complete. By the time you run into something you can do in vex but not vops, you will likely be experienced enough to work it out
Houdini Indie and Apprentice » Adjust gradient produced by Volume Analysis
- tjeeds
- 339 posts
- Offline
It's not a bad idea, it's just that the Advect node is an all-in-one and the Field Force is a lot more complicated to set up. For this particular instance they pretty much do the same thing.
I used the Name SOP to add a the primitive string attribute that the Advect POP is looking for.
'name' is a reserved attribute that identifies volumes, you can see that grad.* now shows up when you middle mouse on the node. On the Advect node it looks for the vector volumes named grad, as shown in the Field Name parameter.
I used the Name SOP to add a the primitive string attribute that the Advect POP is looking for.
'name' is a reserved attribute that identifies volumes, you can see that grad.* now shows up when you middle mouse on the node. On the Advect node it looks for the vector volumes named grad, as shown in the Field Name parameter.
Houdini Indie and Apprentice » Adjust gradient produced by Volume Analysis
- tjeeds
- 339 posts
- Offline
Do you gradient field modifications in SOPs. Otherwise you can attach it as a sop vector field to an empty object and run a Gas Field VOP on it though a Multiple Solver…. So do it in SOPs Then you can just read it instead of copying the data over, I would use POP Advect in this case.
Houdini Lounge » vopsop H14?
- tjeeds
- 339 posts
- Offline
The Add Attribute Vop declares a local variable from within Vops, but it seems to only work if the attribute does not exist yet, otherwise it is ignored. You have to explicitly type in the local variable string too. I'm not seeing the behavior you describe with the variable getting wiped by the vopnet.
Might be a bug that it doesn't work with a pre-existing attribute.
Might be a bug that it doesn't work with a pre-existing attribute.
Houdini Indie and Apprentice » IF statement and WHILE loop in Vops
- tjeeds
- 339 posts
- Offline
That's correct, you generally use a Compare node to get the boolean. Threre are also And and OR nodes.
Technical Discussion » Q: calculate particle distance attrib vop
- tjeeds
- 339 posts
- Offline
Houdini Indie and Apprentice » Which points are on my primitives?
- tjeeds
- 339 posts
- Offline
Technical Discussion » Q : H14 pop position replacement node
- tjeeds
- 339 posts
- Offline
Technical Discussion » Q: H13 attribute vop import attribute ?
- tjeeds
- 339 posts
- Offline
If you just want the current point then use Bind, if you want a different one use Get Attribute, make sure to plug in the OpInput you want.
-
- Quick Links