Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Aizatulin last won the day on November 18 2021

Aizatulin had the most liked content!

Community Reputation

164 Excellent


About Aizatulin

  • Rank

Personal Information

  • Name

Recent Profile Visitors

1,914 profile views
  1. How to unify orientation of a Divide SOP?

    Hi, if you take the idea of Animatrix of expanding prim properties to their neighbours until you reached all primitives. You can create reference lists foreach prim. Once you have the references, you can compare each vertex arrays and calculate the offset and the sum of the offet over all references. This offset(sum) can be used, to shift the vertices. Here is an example using some VEX. The polygons should be all quads and the geometry should be (edge) connected aswell. reorder_vertex_shift.hipnc
  2. Hi, I think for this you will need copystamp or foreach. In some cases copytopoints will work with variants aswell. But you pay the price with performance. Copytopoints is much faster. Here is an example comparing three methods, where boxes are copied to sphere points and bended by an point attribute (on the sphere). The variant method is by far the fastest, but it is using a different approach compared to the both other methods (which are equivalent). You can use the performance monitor to visualize the difference. copystamp_alternative_methods.hipnc
  3. It seems, that two prims are connected, if they share a same point (this is less restrictive than sharing an edge). If you want the edge only case you can use the divide sop (dual graph). In your case, clean sop is fusing the points, which makes the geometry connected, if you turn it of (clean sop) you will get two classes and you see, that there are duplicated points (show point numbers). explodeview is just using the name attribute and breaks the points again. connectivity_prims.hipnc
  4. For-Each-Loop Question

    Hi, here is a simple example using bend in foreach. bend_foreach.hipnc
  5. Curve from two points and vectors

    Hi, there is also a VEX function called "spline", which can evaluate bsplines (equivalent to cubic bezier). Once you have the attributes on the points (surface position/normal), you can build the curve from these attributes. The spline function is quite similar to the resample subdivision result. Another VEX function which is quite helpful here to get the attributes from the surface is xyzdist(). curve_between_surfaces.hipnc
  6. Hi, you can also use relbbox(@P).y instead of @P.y to make it 0-1. After this you can use fit function. UV_Y_obj_mod.hipnc
  7. Stop Sweep from interseting itself

    Hi, probably not working in every situation, but you can collect all points, which have a sharp corner. Once you have these points, you can clip the geometry by the dividing planes (u-value aswell). The clipping part should be restricted to the intervals between each corner. Sweep_avoid_intersection.hipnc using carve can be another option, to split the curve into several parts (applied sweep), which can be merged together, after the ends are clipped by the planes. Sweep_avoid_intersection_segments.hipnc
  8. divide/split curve from intersection point?

    Hi, you can use a list/array for example to store all u-values. Now you can pick any pair of u-values from this list and create detail attributes (u0 and u1 for example) and call them in the carve node. @edit: you can also interpolate inbetween points. intersection_mod.hipnc intersection_modA.hipnc
  9. Here are some ideas. calculate the closest distance to geo for all points and calculate attributes (closest point on target geo or ray projected point, Normal optionally ...) find best point (closest point) add the target point of the best point (add attributes if needed) substract closest point (source) to move object to center (reorient optionally using the direction to center point of the object and up vector the point with highest y-value for example) move geo to target point (reorient geo optionally using N,up) snap_closest_point.hipnc
  10. removepoint problem

    It works, but only if the vertex number is low enough (2 for open, 3 for closed polygons after removal). If you want to remove the primitive (where the point belongs to), you can always apply removeprim(...).
  11. Sweeping the wall before conforming the terrain is working well for me. You can use curve attributes (like curveu or pointnumber) to determine the difference in y between the planar and the projected curve. @edit: instead of only y, you can also use the whole difference vector (delte_x,delta_y,delta_z) between both curves. sweep_mountain.hipnc
  12. Group Curves by Image Color

    Hi, another way might be using partition sop or something similar to create equivalence classes based on a function, which can be a (vector -> int) function or whatever. Primitives are equivalent (in the same class), if the result of the function is equal. group_curves_by_color.hipnc
  13. gradient ripples defined by paint

    Hi, maybe you just blend the positions between both objects using the color attribute (red value for example). I think it should enough, since ripple is only moving points on straight lines. issue_ripples_lerp_r.hipnc
  14. Point deform piece attribute not working

    Hi, the problem is here, which is not obvious of course, that the point deformer is using the "id" attribute internally. If this attribute exists, it is capturing the id and not the point number. To avoid this, use something else as name (class for example). If you need the id somewhere else, you can temporary create/delete it. pointDeformPieceNotWorking_dont_use_id_here.hipnc
  15. How to generate "contour" lines

    Hi, you can use surfdist() function for example to get the distance along the surface to given group, which can be the point on top of the head. Once you have the distance, you can clip the lines. contour_geodist_clip.hipnc @fixed file ...