
Aizatulin
Members-
Content count
227 -
Donations
0.00 CAD -
Joined
-
Last visited
-
Days Won
13
Aizatulin last won the day on November 18 2021
Aizatulin had the most liked content!
Community Reputation
164 ExcellentAbout Aizatulin
-
Rank
Initiate
Personal Information
-
Name
Aizatulin
Recent Profile Visitors
-
How to unify orientation of a Divide SOP?
Aizatulin replied to NoSOPforStupidity's topic in General Houdini Questions
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 -
beginner questions re attributes/parameters
Aizatulin replied to thesejm's topic in General Houdini Questions
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 -
What exactly decides if two primitives are connected?
Aizatulin replied to raincole's topic in General Houdini Questions
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 -
Hi, here is a simple example using bend in foreach. bend_foreach.hipnc
-
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
-
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
-
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
-
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
-
How to snap an object to another precedurally?
Aizatulin replied to raincole's topic in General Houdini Questions
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 -
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(...).
-
Sweep along topology has corner issues... How can I fix?
Aizatulin replied to jessela's topic in Modeling
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 -
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
-
gradient ripples defined by paint
Aizatulin replied to pan.mentolka's topic in General Houdini Questions
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 -
Point deform piece attribute not working
Aizatulin replied to andehpandeh's topic in General Houdini Questions
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- 3 replies
-
- 1
-
-
- connectivity
- connected pieces
- (and 5 more)
-
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 ...