Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Everything posted by AntoineSfx

  1. I have not really spent much time on materials. I find the workflow a bit confusing to just start wiring things like in SOP. How can I have a texture look a bit more dirty ? What's a good intro to the current version of shaders in 16.5 ?
  2. How do I get rid of the extraneous triangles in the center ? I can't find a good way to group them
  3. Say I project a platonic solid on a grid using ray. How to remesh that set of points and edges so that the new topology matches the apparent (visual) one ? It would be something like compute all the self intersections, divide all the edges that intersect each other, and recompute all the primitives. Is there a node that already does that ? Here is an example: the projected icosahedron still has the edges and points of the original icosahedron I would like to have one primitive per apparent polygon, and one point at each edge intersection.
  4. Recompute topology after projection on a plane

    So this is not really working, the final assembly is not a set of non overlapping primitives. Maybe something with the constraints in triangulate2d to force the edges location
  5. Recompute topology after projection on a plane

    I edited the question.
  6. I like how the shatter / seam followed by a polybevel allows me to add details to a geometry. Is there a way to use the seam edges as a base for polyextrude to make a ridge instead ? Like the vertical ones on the bed of that CAT ?
  7. Extrude a seam after boolean / shatter

    Thanks. That works well especially if the intersecting surface (the body) doesn't have too much details, in this case in the direction of the copied items. Otherwise, the original, say, U edges start interfering with the seam U edges, and they get lost during the fuse.
  8. Paint robot trajectory

    (TSP= traveling salesman problem) So I'm trying to animate an arm, which would spray paint on a surface. I want to define a curve with respect to a surface, with those properties: 1/ cover the entire surface, within a radius (paint is sprayed within a cone) 2/ offset to the surface, and always on the same side -- every point on the final curve (not only control points) should be at a certain distance along the normal of the surface 3/ somehow minimal in length, but not necessarily. I have a first draft for the trajectory, which is really simple: scatter some points on the surface, then sort the points by spatial locality. However, it doesn't generate TSP-style trajectory, there are big jumps, which happen to cross the surface (violates the same side constraint -- 2) How can I do this without going full TSP ?
  9. Boolean shatter

    Trying to replicate https://www.sidefx.com/tutorials/boolean-shatter/ What kind of geometry is expected for the input A ? When A is a box, I have a working setup by marking abseams in shatter then polybevel that abseams group. When A is something else, like a polyextruded curve, I have a bevel between the two surfaces, and the two surfaces are in the output geometry. Can you give me an example of a box being used to draw a groove on a polyextruded surface ?
  10. Phone cord

    In the context of a keyframed animation, how can I ensure that a curve between two parts of a geometry remains plausible ? I'm not looking necessarily for something physically correct, just something that looks ok. I don't want too much self intersection, the ends should be normal to the corresponding surfaces. I have a few ideas in mind, like making two or three shapes manually and blending them with blendshapes according to the distance between the desired ends. Or maybe just compute it entirely on the fly in VEX. It should be easier to add some tangles in VEX Any ideas ?
  11. Freeze Copy

    and the question .. is ?
  12. Combining two Primitives

    Probably a bit beyond the scope of the question, but I will leave this link here::
  13. Is there a way to have one parameter control that would have no more individual controls than required to encode all the necessary values to define this furniture ? Ideally, something like one float ramp, which would serve as a way to define the segments in the x direction ({1,1,1} here). Then for each segment, an additional ramp for the other dimension (y) I could somehow encode all of this in something bigger, but it would be less intuitive. Also, how do you access the ramp stops from VEX ?
  14. Douglas-Peucker polygon simpification

    This works. Polyreduce doesn't reduce polygons though, as I suspected from the documentation.
  15. So , I assume it is not implemented by any node, otherwise I would have found that term ( Douglas-Peucker ) sidefx.com This is an algorithm to simplify polygon by removing points that are almost (less than some epsilon) colinear https://en.wikipedia.org/wiki/Ramer–Douglas–Peucker_algorithm Do you think it would be a nice addition to resample ? Maybe it's already there and I can't find it.
  16. Douglas-Peucker polygon simpification

    Thanks, it wasn't clear from the doc that it also applied to polygons.
  17. Not that it solves your problem, but here is a clarification of the problem you're trying to solve: https://doc.cgal.org/latest/Surface_mesh_skeletonization/index.html At least you have the name of the problem, and one implementation in C++ / CGAL. I'm working on something related, (CGAL + Houdini) maybe it's not that hard to offload some work to CGAL..
  18. Input is a line, I'm trying to set a different pscale attribute on the first and last point. In PointWrangle (Run over Points), I have this: f@pscale=chf("scl") ; float scale=chf("scl"); printf("begin %f\n",scale); printf("numpt=%d\n", @numpt); printf("ptnum=%d\n", @ptnum); if (@ptnum==0 || @ptnum== @numpt-1) f@pscale=chf("scl") ; else f@pscale=1 ; output: (twice the same thing) begin 0.101000 numpt=10 ptnum=0 ptnum=1 ptnum=2 ptnum=3 ptnum=4 ptnum=5 ptnum=6 ptnum=7 ptnum=8 ptnum=9 begin 0.101000 numpt=10 ptnum=0 ptnum=1 ptnum=2 ptnum=3 ptnum=4 ptnum=5 ptnum=6 ptnum=7 ptnum=8 ptnum=9 Is the compiler parallelizing portion of codes which refer to points attributes ?
  19. Why does a part of this code runs only once in VEX ?

    the real question is, why does printf("numpt=%d\n", @numpt); seems to be outside of the points loop, while printf("ptnum=%d\n", @ptnum); seems to be be inside the points loop. I assume some optimization is made on the program, but I can't find exactly what. I know that vcc (or should I say the VM running its output) runs several threads, but it's unclear what happens to the VEX I wrote in that box.
  20. Why does a part of this code runs only once in VEX ?

    Operators precedence is such that non contrived expressions don't require additional parenthesis.. Unless you want to assign the result of a comparison or something. It's built-in in the BNF. However it doesn't explain why I have that behavior on the original code.
  21. How to make a skinned sweep that can be subdivided ?

    Here is how I solved it for simple (regular polygon looking) cross sections: make the first and last point closer to the second and second from last, then set pscale to 0 for the first and last point. then after the skin, fuse the points which are close to each other, and at this point you have the topology of a sphere. This works better if the "radius" of the cross section curve is about the same size of the segments of the sweep profile polygon, to keep the quadrilaterals about the same size. Otherwise, there will be abrupt changes in the curvature ( the same way you do angles in NURBS curves by doubling points) For more complex curves (not convex), I haven't yet found a good solution, because I think this would require to compute the straight skeleton, which is not something which has a good implementation in Houdini. Polyexpand2D is the closest Houdini has to offer, but it seems hard to uses it as a straight skeleton operator. CGAL has it function This works for polygons because the straight skeleton happens to be the center, which is the point where all the vertices converge when scaled to 0.
  22. I can't find a way to take two curves, make a sweep, skin the result, and have an output that is topologically equivalent to a box, so that it subdivides nicely in all directions.
  23. Unroll a planar curve

    Thanks. BTW the search function used by Invision is confusing. I didn't find it for some reason and I almost sent another Hawaii’s missile alert.
  24. Is there a clever way to unroll a planar curve, of course in a progressive way ? The effect I'm trying to achieve is a rug unrolling after an initial impulse , or with the effect of a constant force in a fixed direction. So far, I've tried to stitch curves created to the specifications explicitly (one line + 1 Archimedean spiral) but it's neither very stable nor procedural. This is highly dependent on the parametric equation of the initial curve. I was thinking of doing something like this: once I have the resampled curve as polygon, I could define the whole curve as a n-uple of (vector, angle), angle being the relative angle to the next point. Then flatten the curve by changing all the angles to zero, in a nice ease in / ease out, several points at a time.
  25. How do you define a VEX function in a pointwrangle node ? Using this: int[] myfunc( int input, int ptnum) { int result[]; return result; } Houdini complains about a syntax error at myfunc. What is the correct syntax, and where is it documented ?