Jump to content

Search the Community

Showing results for tags 'VS'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • General
    • Lounge/General chat
    • Education
    • Jobs
  • Houdini
    • General Houdini Questions
    • Effects
    • Modeling
    • Animation & Rigging
    • Lighting & Rendering
    • Compositing
    • Games
    • Tools (HDA's etc.)
  • Coders Corner
    • HDK : Houdini Development Kit
    • Scripting
    • Shaders
  • Art and Challenges
    • Finished Work
    • Work in Progress
    • VFX Challenge
    • Effects Challenge Archive
  • Systems and Other Applications
    • Other 3d Packages
    • Operating Systems
    • Hardware
    • Pipeline
  • od|force
    • Feedback, Suggestions, Bugs

Found 3 results

  1. Hi, how would you describe difference between lookat() and dihedral() VEX functions? Aren't both used to compute matrix3 to transform vector A onto vector B ?
  2. And you may find yourself using Marmoset Toolbag And you may find yourself in another application And you may find yourself behind the wheel of Houdini And you may find yourself with a beautiful door handle, in a beautiful viewport And you may say to yourself My God!... What they have done?! https://vimeo.com/142759892 And you may ask yourself how did he came up with this text And I may find myself Well... Telling you that I ripped it from this beautiful classic song:
  3. I'm writing a SOP node using the HDK for the first time and everything's been pretty cruisy so far, but, I've noticed that when switching collision methods between a volume SDF and a VDB SDF by getting the gradient pushing the points out by the SDF's negative value, the VDB calls are roughly 3-4 times slower than the same calls to a volume. I've optimised the code by forcing a bounds check first which seems to speed things up, (making the assumption that the SDFs are not inverted and only in the edge cases where the SDF bounds only intersect a small portion of the input geo) but still the VDB is substantially slower. Anyone have any trick to speed up these lookups? GU_Detail *sdfInput = new GU_Detail; if (inputGeo(1, context) != NULL) duplicateSource(1, context, sdfInput); ... const GEO_PrimVDB *vdb = NULL; const GEO_PrimVolume *vol = NULL; UT_BoundingBox sdfBBox; sdfBBox.makeInvalid(); if (sdfInput != NULL && doCollision(t)) { for (GA_Iterator it(sdfInput->getPrimitiveRange()); !it.atEnd(); it.advance()) { GEO_Primitive *prim = sdfInput->getGEOPrimitive(it.getOffset()); if(dynamic_cast<const GEO_PrimVDB *>(prim) != NULL) { vdb = dynamic_cast<GEO_PrimVDB *>(prim); vdb->getBBox(&sdfBBox); break; } else if (dynamic_cast<const GEO_PrimVolume *>(prim) != NULL) { vol = dynamic_cast<const GEO_PrimVolume *>(prim); vol->getBBox(&sdfBBox); break; } } } ... UT_Vector3 position; UT_Vector3 gradient; fpreal signDistance; GA_Offset ptOffset; GA_FOR_ALL_PTOFF(gdb, ptOffset) { position = gdb->getPos3(ptOffset); if (!sdfBBox.isInvalid() && sdfBBox.isInside(position)) { if (vdb != NULL) { signDistance = vdb->getValueF(position); if (signDistance < 0) { gradient = vdb->getGradient(position); gdb->setPos3(ptOffset, position - (gradient * signDistance)); } } else if (vol != NULL) { signDistance = vol->getValue(position); if (signDistance < 0) { gradient = vol->getGradient(position); gdb->setPos3(ptOffset, position - (gradient * signDistance)); } } } } If you compile the SOP, plug a vdb sdf into the second input, check the time, then feed the vdb sdf into a vdb convert first and then plug the volume into the 2nd input, you'll notice that the vdb sdf collisions take roughly 3-4 times longer to evaluate than the volume sdf collisions... Ideally I'd like to have the vdb run at least as fast as the volume, and ideally speed up both of them, a lot - as of now a deformer SOP which takes 0.3s to run on 100K points skipping the sdf collisions, takes upwards of 4s with volume collisions enabled, 13s with vdbs...