Jump to content

Aizatulin

Members
  • Content count

    163
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    10

Aizatulin last won the day on January 8

Aizatulin had the most liked content!

Community Reputation

110 Excellent

1 Follower

About Aizatulin

  • Rank
    Initiate

Personal Information

  • Name
    Aizatulin

Recent Profile Visitors

1,279 profile views
  1. Hi, you can try to iterate. Start with a first try and find the u-value, where the length between the u-values matches the length of the vector. Here is some VEX Code. Peri is the length of the curve (you can use measure here). L is the length of the vector. u the position of P1. This will surely not work in every situation. But if you start with L / Peri, you have a first guess and probably length between the curve points is greater. So the next du should be a bit bigger. If the length are same, the du should not change anymore. float get_deltau(float u, L, Peri) { float du = L / Peri; int maxcount = 10; int count = 0; while (count < maxcount) { vector A = primuv(1, 'P', 0, u); vector B = primuv(1, 'P', 0, u + du); float delta_u = L / length(A - B) * du; du = delta_u; count += 1; } return du; } P.S. it will be better to add a stop condition in the function and also apply resample on the curve. If interested here is a modification of an older experimental file of my collection. objects_along_curveC.hipnc
  2. Polyextrude - transform extruded front - by attribute

    C is here the Center point (prim center), substracting it will the prim center to zero. M is an orientation matrix (rotation) constructed by the normal of the prim and the difference vector between the first and second point. It should represent the orientation of the primitive. Applying transpose(M) is the inverse of M, which makes the prim X,Y,Z aligned. Now we can perform our scale just on x and y. After scale we apply M and add C to transform the prim back to original position. P.S. M is not a rotation in this case (determinant(M) = -1 ~ reflection) but this does not matter.
  3. Polyextrude - transform extruded front - by attribute

    Hi, you can workaround it by using a reference prim for each point. After extrusion you can store the prim number as point attribute (limited to the extrusion group). Once you have the information you can rescale the points base on the primitives orientation. extrude_non_uniform_scale_ref.hipnc
  4. Split Curve Trail decay

    Hi, here is an example doing the split and shrink part by an array input. The base method is using a clip node in the background. The array represent the u-parameters on curve (which should be sorted ideally). If you want to use particles along the curve, you can probably capture them using xyzdist() and take the uv.x value to create an array. Haven't tried this yet but it should work. split_shrink_curve.hipnc
  5. Orbit or Twist Points Around a Curve

    Hi, you can use a path deformer on the input geometry for example and apply a volume wrangle to peform a rotation/scale on the density (using an orientation frame on the curve). tornado_path.hipnc
  6. Displace points along normal in VEX

    Hi, remove the second "@P" in the second line.
  7. Orbit or Twist Points Around a Curve

    Hi, you can capture by xyzdist() for example using an attribute wrangle and the curve as second input. The rotation matrix can be obtained from the curve's tangent. Basic Shape_mod.hipnc
  8. generate to fill up wire curves in tube meshes

    Hi, here is a Straight Skeleton approach (it seems to work fine even on remeshed geometry) ... tube_fill.hipnc
  9. Hi, here is a modification of an older file, which contains an numerical approach to calculate the inverse of the integral of a density function. I'm also looking for a better straightforward approach. line_density_approach.hipnc
  10. Path deform - loop geo on curve

    I like the new path defomer (at least there is one), it offers a lot of functionality, but sometimes there are little things, which are missing and it is hard reimplement them into the existing one. On the other side, VEX combined with low level operators is always a good fall back if you need flexibility.
  11. Path deform - loop geo on curve

    Hi, probably it is not possible with the path deformer, but with the new "orientation along curve" node you can create your own basic path deformer with a few lines of VEX. If you want to loop, you can apply %1 on the (curve)u parameter. Here is an example. loop_path.hipnc
  12. subdivide without smoothing

    Hi, have you tried resample by polygon edge? You can divide each edge by number and by segment length aswell.
  13. polysplit issue

    Hi, polysplit result strongly depends on the curve input and the tolerance aswell. I get acceptable results for tolerance = 1e-8 in polysplit. To avoid artifacts (after polysplit loop), you can use connectivity node (after foreach) without for type = prim and seam group = split. Probably there might be better workarounds. Q_split_mod.hipnc
  14. findshortest path problem

    Hi, do not use merge here, just apply all groups in one line.
  15. Sorting in order

    If I speak for myself, I've started VEX doing really simple things again and again. I've haven't watched many tutorial, so I can't give you advices here, but you will probably find some interesting ones on the sidefx.com homepage. Here some ideas I would recommend and all of these are from my personal experience how are point/prim/vertex/detail wrangles working what are point/prim/vertex/detail attributes and how are they working what are the different functions good for the relationships between points/prims/vertices etc... (at least some basic) math like vectors and matrices (linear algebra) -> if you don't know everything from start it might be not a problem, but as soon as you learn more you can do alot of more (but houdini also offers alot inbuild) other areas of math can be usefull aswell (depending on your needs) like (graph theory, differential geometry, analysis, stochastic, etc...) -> houdini already offers alot of tools/functions which can help you there if you have a problem, try to divide it into smaller parts, which can be easier solve (this should be possible in many cases) if you want to solve a problem, try to describe the problem aswell (like if you are trying to explain it to someone else) don't get desperated, if you can't solve a problem -> this will happen alot (sometimes sleeping one or few nights can have positive effects) I've never regretted learning VEX and I'm still learning, there is so much to you can do with VEX (even if not everything is that easy as with other languages). You will find many good example from this forum and from sidefx.com, which can give you good inspirations to do new things or think in different ways. But at the beginning I would do some basic stuff (by using the VEX language reference) and maybe looking into some basic tutorials.
×