Jump to content

konstantin magnus

  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


konstantin magnus last won the day on March 19

konstantin magnus had the most liked content!

Community Reputation

263 Excellent

About konstantin magnus

  • Rank
    Houdini Master

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location
    Stuttgart, Germany

Recent Profile Visitors

5,746 profile views
  1. 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.
  2. 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.
  3. Shadow and Sun Light Analysis

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

    Do you know about the polyexpand node?
  5. 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);
  6. 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
  7. 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
  8. (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
  9. (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
  10. On a grid-node just right-click in order to switch the expression language to Python and use this:
  11. Orient noise pattern along vectors

    Great idea @f1480187, creating the rotation matrices from the cage lines is definitely cleaner!
  12. Orient noise pattern along vectors

    Thanks for your help @tmdag. I had to invert the rotation matrix. So its: vector freq = chv('frequency'); vector dir = normalize( minpos(1, v@P) - v@P ); vector rect = normalize( cross(v@N, dir) ); vector nml = normalize( cross(dir, rect) ); matrix3 rot = set(dir, nml, rect); float deform = noise(v@P * invert(rot) * freq); v@P += v@N * deform * 0.05;
  13. Orient noise pattern along vectors

    I have made some progress in making the wrinkles run towards the outer edges. Unfortunately i still get lots of warping issues that I can't quite explain. Ideally I want all folds to run in a parallel manner towards their nearest outer edge. This is the code I am currently using: vector pos_b = minpos(1, v@P); vector dir = normalize(pos_b - v@P); vector rect = cross(v@N, dir); vector nml = cross(dir, rect); matrix3 rot = set(dir, nml, rect); vector freq = {8, 1, 40}; vector pos = rot * v@P * freq; float deform = noise(pos); v@P += v@N * deform * 0.05; folds_wrinkles_2.hiplc
  14. Multiply vectors to a plane (Trigonometry questions)

    One question remains: How would one scale radial vectors so a circle turns into an n-gon?
  15. Multiply vectors to a plane (Trigonometry questions)

    Well, there wouldnt been a single line without your brain ; )