Jump to content

konstantin magnus

Members
  • Content count

    560
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    27

Everything posted by konstantin magnus

  1. Curvesect intersection points

    Feed all curves into the first input of 'intersection stitch' instead.
  2. Can't consecutively cut with knife sop

    You can 'remote-control' and repeatedly call the clipping SOP with python verbs.
  3. UV map saturn rings in Mantra

    You can turn a wide grid into a ring using sine and cosine on the bounding box of the grid. That way you can also create UVs on the fly. float radius_inner = chf('inner_radius'); float radius_outer = chf('outer_radius'); vector bbox = relbbox(0, v@P); vector bbpi = fit01(bbox, -M_PI, M_PI); vector uv = set(bbox.z, bbox.x, 0.0); v@uv = uv; vector pos = set( cos(bbpi.x), 0.0, sin(bbpi.x) ); pos *= fit01(bbox.z, radius_outer, radius_inner); v@P = pos; saturn_rings.hipnc
  4. Smoothing 90 degree curve turn

    You could try to partition a grid and round its corners. network.hipnc
  5. L-Systems- are they actually used for anything?

    I havent really tried them yet myself. But from the tutorials I have seen they seem neither much natural nor particularly art-directable to me. So depending on what you are trying to achieve its probably more convincing to come up with a tailored system of your own. But I am curious to see what others will present!
  6. Modelling Zen Stone Garden

    Welcome Harry, you could put a sine wave on the distance from each particle to the closest position on the rocks. zen.hipnc
  7. Discretize 2d shapes

    Hi Antoine, to pixelate a curve put a grid on top of it and remove primitives by their distance to the curves surface before removing shared edges with the divide SOP. if(xyzdist(1, v@P) > 0.01) removeprim(0, @primnum, 1); gridify_curve.hipnc
  8. Rendering Cola

    Last time I looked into shading fluids it was done with a combination of surface hull and bubbles with nested dielectrics enclosing a uniform volume. Roughly like this: Why don't you publish your attempt so we have something more elaborate to start from? coke.hipnc
  9. You can see how this can be done here:
  10. Vertical stripes texture

    You can feed one-dimensional noise in a random-function to get vertical stripes in COPs. COP_stripes.hipnc
  11. moving tile by tile

    Btw: If you really want the tiles to flip one after the other, just set it to: clamp((($FF - 1) * 10) - ($PR * 180), 0, 180)
  12. moving tile by tile

    You could split a grid into separate tiles using facet -> unique points and use the primitive node for rotations. clamp((($FF - 1) * 8) - ($PR * 10), 0, 180) in rotate Z for example.. $FF - 1 makes the rotation dependent on frame number, - 1 so it starts at zero instead of 1, * 8 for speed - $PR to get an time offset between primitives, * 10 to increase it clamp(x, 0, 180) to block primitives to start from negative angles (using 0) and 180 to avoid overshooting flip_tiles.hipnc
  13. bbox (beginner question)

    Hi mani, you might find this useful, as well:
  14. Sweep multiple curves?

    Try the hole SOP (see attachment). And maybe look at this thread in case you need regular quads: extrude_2_curves.hipnc
  15. Why is the circle born with inverted normals?

    I also find the decision unfavorable. But once you reverse the winding order the polygon will face positive axis directions.
  16. Procedural modellling

    In my opinion this particular tutorial series is way too complicated and long-winded for beginners. In case you are just getting started with procedural modeling I would rather recommend Kim Goossens Youtube-Channel and the Gametutor website.
  17. Shadow and Sun Light Analysis

    Would anyone know a simple formula to very roughly approximate the sun path (or rather sun vector)?
  18. How to generate interior levels with modular pieces

    Do you know about the polyexpand node?
  19. 3d Volume from Image?

    Hi Justin, in order to fill a voxel field with image pixels put this code in a volumewrangle after a volume node: vector bbox = relbbox(0, v@P); vector map = colormap(chs('image'), bbox.x, bbox.y); f@density = luminance(map);
  20. Resample Curve by N attribute

    Hi philpappas, to extract main features of your curve you could first measure its curvature with the new measure SOP or by calculating the dot product of your tangents (see attachment). Afterwards a derivation of the curvature might be useful to only keep "break points" that are important to the visual appearance of your curve. I just would not know how to calculate this though. curve_curvature.hiplc
  21. Tileable Noise

    Hi Niels, I tried the torus route as suggested on twitter: float r_torus = chf('radius_torus'); float r_tube = chf('radius_tube'); float freq = chf('frequency'); v@pos_rest = v@P; vector bbox = relbbox(0, v@P) * M_TWO_PI; v@P.x = (r_torus + r_tube * cos(bbox.x)) * cos(bbox.z); v@P.y = (r_torus + r_tube * cos(bbox.x)) * sin(bbox.z); v@P.z = r_tube * sin(bbox.x); v@Cd = noise(v@P * vector(freq)); v@P = v@pos_rest; seamless_noise.hip
  22. (Animated) dashed line?

    Yes, you could take the convertline SOP, promote the wave attribute to primitives and delete by this attribute. @DévinOdforce: I attached an example. dashed_curves_prims.hiplc
  23. (Animated) dashed line?

    Let a sine wave run across your curves, set the dash length with frequency, animate by adding time and define the gap size by comparing the value with a custom threshold. float u = vertexprimindex(0, @vtxnum) / float(primvertexcount(0, @primnum)); float u_length = u * primintrinsic(0, 'measuredperimeter', @primnum); float u_anim = (u_length + @Time * chf('speed')); int waves = sin(u_anim * M_PI * chf('frequency')) < chf('gaps'); v@Cd = hsvtorgb( set(u, 1.0, 1.0) ) * waves; If you want your dashed line to be static just replace u_anim inside the sin() function by u_length. dashed_curves.hiplc
  24. On a grid-node just right-click in order to switch the expression language to Python and use this:
  25. Orient noise pattern along vectors

    Great idea @f1480187, creating the rotation matrices from the cage lines is definitely cleaner!
×