Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Drughi last won the day on December 12 2019

Drughi had the most liked content!

Community Reputation

27 Excellent

About Drughi

  • Rank

Contact Methods

  • Website URL

Personal Information

  • Name
    Johannes Heintz
  • Location

Recent Profile Visitors

1,200 profile views
  1. Procedural texturing heavy meshes

    Why not bake it? You will need uvs. But once you have them - Houdini has an awesome bake function. No need for complex uvs and selecting uv-seams. Just use auto-seam. https://www.sidefx.com/docs/houdini/nodes/sop/uvautoseam.html https://www.sidefx.com/docs/houdini/nodes/out/baketexture.html
  2. Lambda

    Hi magicans! What does lambda mean in conjunction with PBD / Pop fluids?
  3. Random link of interest

    Mattias Lagergrens Highly Detailed Fluid Simulations on the GPU with Houdini http://webstaff.itn.liu.se/~jonun/web/teaching/2010-TNCG13/Lectures/OceansWithMathMattias.pdf
  4. FEM - baseP

    Hey magicans, I´m trying to understand FEM to make some contracting geometry. I´ve checked several example Files online worm-locomotion-with-fem and vimeo.com/258434651 . But all of them are not working. Animating restP and baseP in a Sop-solver (wired to multisolver) has no effect (vertices or point attrib). Are those files working for you?
  5. custom vel not working

    You are right! But it is a bit confusing. With smoke it is working this way and also I remember to have done this successfully with flip.
  6. custom vel not working

    I was facing the same problem recently. I just used a sop solver instead. Object merge your v source to the sop solver and add it to vel.
  7. flip fluid- sop solver vs pop wrangle

    Sop Solver is different to the solver on sop level. No. The Dopnet itself is taking care of this. The sop solver basicly allows u to use sops inside of dops, wich is very mighty.
  8. Flipbook not starting

    Make sure the output folder exists.
  9. Hey! this is something I'm interested in as well. I think if you check the GuidedRBDBulletSolver example files the answer should be burried in this setup, but I haven't had the time to dig deeper. I think this is the relevant wrangle (/obj/guidedrbdbulletsolver_example1/animated_guide_simulation/rbdbulletsolver4/dopnet/guide_geometry): int dotQuat(vector4 q1; vector4 q2){ int dotQ = (q1.w*q2.w+q1.x*q2.x+q1.y*q2.y+q1.z*q2.z) < 0; return dotQ; } // Unguide pieces with no guided neighbours int useneighbours = point(0, "__guide_useneighbours", @ptnum); int guide_count = point(0, "__guide_neighbourcount", @ptnum); if (chi("useneighbours") && guide_count && useneighbours) { int ns[] = point(0, "__guide_neighbours", @ptnum); int newns[]; foreach(int n; ns) { int guided = inpointgroup(0, "__guided", n); if (guided) append(newns, n); } setpointattrib(0, "__guide_neighbours", @ptnum, newns); int num = len(newns); if (num < min(guide_count, chi("minneighbours"))) { i@group___guided = 0; return; } } int pt = findattribval(1, "point", "name", s@__guide_name, 0); if(pt >= 0) { vector restpos = primintrinsic(0, "pivot", @primnum) + v@__guide_pivot_offset; int pr1 = pointprims(1, pt)[0]; vector restpos1 = primintrinsic(1, "pivot", pr1); vector pos1 = point(1, "P", pt); vector offset = restpos - restpos1; matrix3 xform1 = primintrinsic(1, "transform", pr1); vector pos = pos1 + offset * xform1; float timeMult = 1.0/@TimeInc; timeMult *= 1.0/chf("timescale"); matrix3 xform = primintrinsic(0, "transform", @primnum); rotate(xform, v@__guide_rot_offset, 0); vector4 quat = quaternion(xform); vector4 quat1 = quaternion(xform1); int reverse = dotQuat(quat1, quat) ? -1 : 1; quat *= reverse; if(i@active && s@__guide_name!="") { float bias = ch("bias"); if (haspointattrib(0, "__guide_blend")) bias *= clamp(float(point(0, "__guide_blend", @ptnum)), 0, 1); v@w = lerp(v@w, qconvert(qmultiply(quat1, qinvert(quat))) * timeMult, bias); v@v = lerp(v@v, (pos - @P) * timeMult, bias); int hasAdiff = haspointattrib(0, "__guide_angleDiff"); int hasLdiff = haspointattrib(0, "__guide_linearDiff"); if(hasAdiff && hasLdiff) { setpointattrib(0, "__guide_prP", @ptnum, pos, "set"); setpointattrib(0, "__guide_prQ", @ptnum, quat1, "set"); } } } else { i@group___guided = 0; }
  10. particles around the mesh

    Hi Michal, does this help? Pop_Follow_Surface_003.hiplc
  11. Smoke from scratch, add force

  12. Smoke from scratch, add force

    To do this the right way take a look into the gas wind. The quick and dirty way is to simply advert the fields with you force, but this is not recommended, because it leads to wrong velocities.
  13. Ah, your right better to use a dictionary. probably you need to add the script to the "code" paramterer defaults. But Tomas is right - better embed the code to a hda. The way I did it (this code parameter) is more of a hack to be able not to use a hda.
  14. If you want to keep it a subnet. This is the way to go. DropdownToChangeValues_fix.hipnc In the sliders working geo
  15. You will need a python script for this to work. Do you want to make a hda or keep it a subnet?