Jump to content

konstantin magnus

  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


konstantin magnus last won the day on February 20

konstantin magnus had the most liked content!

Community Reputation

809 Excellent

About konstantin magnus

  • Rank
    Houdini Master

Contact Methods

  • Website URL

Personal Information

  • Name
    Konstantin Magnus
  • Location
    Stuttgart, Germany

Recent Profile Visitors

9,266 profile views
  1. How handle this mushroom shape procedurally ?

    I have updated the plant generator a bit. It contains a few examples of modeling growth. seashell.hiplc
  2. Create point in center of each surface

    Just take a primitive wrangle: addpoint(0, v@P);
  3. Control width per box

    Hi yujiyuji, just set the width attribute on the points before copying, and set the wire radius to $WIDTH polywire_width.hipnc
  4. Applying Scales to Mesh Surfaces

    Two rather short tutorials showing a simple approach on covering mesh surfaces with scales: Houdini file and discussion here:
  5. Dual mesh to Voronoi mesh

    You could look into displacing a high-resolution mesh with voronoise in a point VOP. For the time being, here is a way to populate a surface with real scales. scales.hiplc
  6. Plus button for dynamically adding parameters

    A way to dynamically set the number of multiparm blocks based on the number of unique primitive classes: nuniquevals('../classes', D_PRIMITIVE, 'class')
  7. Help trying to model a bevelled needle

    The shear transformation can create an angle. needle.hipnc
  8. Custom Raytracer in COPs

    Hi Matt, I can relate to that. The only way to even top this, might be finding your own postings really interesting and new after a few years ; )
  9. Detailed Terrain with a road cutting through it

    A more elaborate example for cutting roads through height fields: Identifies flat areas for settling locations Connects them to a road network Bends and resamples paths into avoiding slopes Smoothes out height variations and blends them into the terrain. heightfield_roads.hiplc
  10. How can I close an open polyline?

  11. I think we had this before:
  12. Creating a primitive

    Or simply extrude an 8-sided disc inwards and clip it twice.
  13. Creating a primitive

    Hi Robert, it's the same in Houdini. Just take a tube, set the first radius and the height to 0 and append a fuse node. disc.hipnc
  14. DIfference or angle between two quaternions

    float qdistance(vector4 q1, vector4 q2) Returns the approximate angle, in radians, between two quaternions.
  15. @petz: Thanks for the insight. Purely out of curiosity: Would it be beneficial to separate generating matrices and actual point transformations? // calculate transform matrices per class in DETAIL wrangle float offset = chf('offset'); 4[]@xform = {}; int num = nuniqueval(0, 'prim', 'class'); float dist_sum = offset; for(int i = 0; i < num; i++){ int class = uniqueval(0, 'prim', 'class', i); string grp = sprintf("@class==%g", class); float size = vector(getbbox_size(0, grp)).z; dist_sum += size * 0.5; float u = primuvconvert(1, dist_sum, 0, 10); vector pos = primuv(1, 'P', 0, u); vector tangent = normalize(primuv(1, 'tangentu', 0, u)); matrix m = matrix(dihedral({0,0,1}, tangent)); translate(m, pos); append(@xform, m); dist_sum += size * 0.5; } // apply transforms in POINT wrangle matrix xforms[] = detail(0, 'xform', 0); int class = prim(0, 'class', i@primnum); v@P *= xforms[class]; precalculate_transforms.hipnc