Found 477 posts.
Search results Show results as topic list.
Technical Discussion » Find Closest Primitives to a point
- Aizatulin
- 477 posts
- Offline
You can also try to (pre)filter the primitives using their (local) bounding box, because the distance from any point to the bounding box is always less or equal compared to the distance itself. But the prefiltered distances doesn't need to have the same order as the original distances, so if you want to use something like maximum search number, you need more points to be sure to get all (or maybe check the maximum distance to the primtives aswell).
Technical Discussion » PolySplit equivalent of NURBS surface?
- Aizatulin
- 477 posts
- Offline
Technical Discussion » Conform modifier
- Aizatulin
- 477 posts
- Offline
Sure ,
the method is very experimental and I don't have a good idea at the moment to make it more straight forward without adjusting many parameters. But I think there are more elegant solutions out there (especially for the shrink wrap cases, with multiple direction rays).
the method is very experimental and I don't have a good idea at the moment to make it more straight forward without adjusting many parameters. But I think there are more elegant solutions out there (especially for the shrink wrap cases, with multiple direction rays).
Technical Discussion » Conform modifier
- Aizatulin
- 477 posts
- Offline
If interested, here is an experimental file (trying to reimplemented some examples)
Edited by Aizatulin - Nov. 25, 2023 10:15:12
Houdini Indie and Apprentice » Objects along a curve with random scale in one axis
- Aizatulin
- 477 posts
- Offline
Sure
as additional information:
The left input of the chain node are the objects which are placed along the curve and they are treated independently. The copy node is just an example to duplicate objects and scale them after that. You can also just use merge to create different objects. The chain node has the option "find pieces" by connectivity or piece attribute, so if you have connected objects like boxes, use for "find pieces" the option "by connectivity". If you already have a piece attribute (a primitive attribute like copynum in my example), you can set the option to "by piece attribute" with the right name in the edit field (copynum in my case). This can be important for the right order of each object on the path.
In my example I use VEX for scaling the z-axis of each box by a random value based on copynum (i.e. the number of the copy given by the copy node).
as additional information:
The left input of the chain node are the objects which are placed along the curve and they are treated independently. The copy node is just an example to duplicate objects and scale them after that. You can also just use merge to create different objects. The chain node has the option "find pieces" by connectivity or piece attribute, so if you have connected objects like boxes, use for "find pieces" the option "by connectivity". If you already have a piece attribute (a primitive attribute like copynum in my example), you can set the option to "by piece attribute" with the right name in the edit field (copynum in my case). This can be important for the right order of each object on the path.
In my example I use VEX for scaling the z-axis of each box by a random value based on copynum (i.e. the number of the copy given by the copy node).
Edited by Aizatulin - Nov. 17, 2023 05:54:58
Houdini Indie and Apprentice » Objects along a curve with random scale in one axis
- Aizatulin
- 477 posts
- Offline
Houdini Indie and Apprentice » Orientation
- Aizatulin
- 477 posts
- Offline
Here is one way:
the first direction should be z-axis and the other direction, should be to the neighbour, which has the closest distance to the average direction.
the first direction should be z-axis and the other direction, should be to the neighbour, which has the closest distance to the average direction.
Houdini Indie and Apprentice » Help with a more procedural method to generate steps
- Aizatulin
- 477 posts
- Offline
This depends on the point number from the "resample2", if you resample by "curve_resample_by_density1" the number changes and so the height as well.
Houdini Indie and Apprentice » Help with a more procedural method to generate steps
- Aizatulin
- 477 posts
- Offline
Hi,
maybe you can use a ramp to control the relative length of each step. If you have a fixed point number you can loop over all points and accumulate the ramp values from zero to this point. Once you have maximum value you can normalize it to one.
maybe you can use a ramp to control the relative length of each step. If you have a fixed point number you can loop over all points and accumulate the ramp values from zero to this point. Once you have maximum value you can normalize it to one.
Technical Discussion » Group Primitives by bounding geo
- Aizatulin
- 477 posts
- Offline
Using group promote is a fast way but if you want to check, if every single point of the surface is inside a geo, you probably need something like boolean and compare the area between the the faces. If the areas are equal the geometry is completely inside.
Here is an example
Here is an example
Technical Discussion » Deform Mesh to Face
- Aizatulin
- 477 posts
- Offline
Yes the deformer is influenced by the uv. If you want to change the orientation of the uvs, you can try to sort the points by a specific rule, which gives you one fixed point (which has the lowest sort rank). This point represents a specific index of the primpoints (which are unique) and can be used to rotate(shift) the uv-coordinates.
Edited by Aizatulin - Oct. 17, 2023 13:17:19
Technical Discussion » Deform Mesh to Face
- Aizatulin
- 477 posts
- Offline
You can use uv-coordinates for example to transform geometry onto another similar to creep (but the coordinates must unique). As uv-coordinates the intrinsic uv-attribute can be used.
Technical Discussion » Control the curvature using Polybevel on a polyline
- Aizatulin
- 477 posts
- Offline
It might be probably better to loop over vertices of each prim and assume, that each prim has unique points probably?
Because if you take a point (vtc(i)), then vtc(i-1) and vtc(i+1) will always be the correct neighbours (taking modulo of course).
Here is a modification of an older file, which is quite similar to Nuuk's example.
Because if you take a point (vtc(i)), then vtc(i-1) and vtc(i+1) will always be the correct neighbours (taking modulo of course).
Here is a modification of an older file, which is quite similar to Nuuk's example.
Edited by Aizatulin - Sept. 30, 2023 03:13:24
Houdini Indie and Apprentice » Using an edge of my torus sim to run path deform
- Aizatulin
- 477 posts
- Offline
I'm not sure if this works for you, but if you have NURBS-surface (you can usually convert swept surface to it), you can extract iso-curves (same u/v value). You can also push it away from the surface using the normal. Once you have the curve (it can be evaluated using VEX for example), you can resample it and apply orientation attributes, which can be used for the path deformer.
Technical Discussion » How could I select edges between selected points in VEX?
- Aizatulin
- 477 posts
- Offline
You can also loop over all neighbours of a point and check if both points are in the selection.
Technical Discussion » Edge flow curvature
- Aizatulin
- 477 posts
- Offline
If someone interested, here is an experimental file adding simple edge flow by using tangents of neighbour points and bspline (bezier) interpolation.
Technical Discussion » Extrude Inset by curve
- Aizatulin
- 477 posts
- Offline
Here is a way using polyextrude with feedback loop. You can create an array from a ramp and use the differences between the values to control the inset.
Technical Discussion » How to sweep or loft multiple profiles along path?
- Aizatulin
- 477 posts
- Offline
You can use variants for sweep. So can create a 1:1 mapping between each point of the backbone and a cross section. For example, if you have 100 points of the back bone and 3 cross sections -> section 0 ~ point 0, section 1 ~ point 50 and section 2 ~ point 100 and point 10 is 20% blend between section 0 and section 1 (and so on).
Here is an modified example
Here is an modified example
Technical Discussion » UV transfer between similar but different topology
- Aizatulin
- 477 posts
- Offline
Technical Discussion » How to reference @ptnum in a point() Expression Function
- Aizatulin
- 477 posts
- Offline
In addition:
If you don't need an attribute anymore you can delete it (in VEX and there is also a node for it "attibute delete"), but in many cases you don't even have to create one. So if you are in VEX for example, you can also create a local variable without @, which lives only during evaluation (and not longer) until you have the result you want. Attributes are useful, if you want have access multiple times from different nodes (without recalculating the value every time).
If you don't need an attribute anymore you can delete it (in VEX and there is also a node for it "attibute delete"), but in many cases you don't even have to create one. So if you are in VEX for example, you can also create a local variable without @, which lives only during evaluation (and not longer) until you have the result you want. Attributes are useful, if you want have access multiple times from different nodes (without recalculating the value every time).
-
- Quick Links