Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


anim last won the day on April 12

anim had the most liked content!

Community Reputation

642 Excellent

About anim

  • Rank
    Grand Master
  • Birthday 02/28/1985

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location
    New York

Recent Profile Visitors

13,110 profile views
  1. POP Grains - Experiments and Issues!

    try disabling Constraint Averaging and adjust your weights as Jeff describes in this master class around 32:50 https://www.sidefx.com/tutorials/h15-masterclass-grains/
  2. just use stamp expression on your asset at Scene level and refer to the copy that you want to use to evaluate the value per copy simple example copystamp_scene_level.hip
  3. Turn selected folder into an absolute path

    abspath = hou.expandString(folder)
  4. Quaternion questions

    a) if the angle is 0, you will get identity quaternion {0,0,0,1} so no rotation as the angle/axis notation defines quaternion as a rotation of angle degrees around the axis, if the angle is 0, then the rotation around given axis is 0 and hence no rotation b) vector4 Q_Init = eulertoquaternion(radians(chv("q0")), 0); vector4 Q_Dest = eulertoquaternion(radians(chv("q1")), 0); vector4 Q_Diff = qmultiply(Q_Dest,qinvert(Q_Init)); // quaternion difference from Q_Init to Q_Dest int nsteps = chi("nsteps"); Q_Diff = slerp({0,0,0,1},Q_Diff, 1.0/nsteps); // compute Q_Diff rotation for single step p@orient = Q_Init; for (int i=0;i<nsteps;i++){ p@orient = qmultiply(Q_Diff, p@orient); } // after adding Q_Diff nsteps times to Q_Init p@orient will result in Q_Dest
  5. Beginner VEX variable questions

    @elemnum contains current element number so when iterating over Points it's the same as @ptnum, over Prims the same as @primnum, over Vertices the same as @vtxnum, over Numbers it's the current number same equivalency for @numelem
  6. you don't need loop at all, just promote your attribs to get average values per prim to each point compute transform attribute and invert transform then use Transform By Attribute SOP to transform back and forth as you need, see the file rotation_reset_at_origin_fix.hipnc
  7. Copy Stamp / For-Each / Compile-Block

    it looks like a bug, something with alembic and overall packed primitives viewport optimization in H16.5 H16.0 seems to be fine
  8. it's just because that piece has the same pivot as it's parent and it's oriented to the opposite way, so if you rotate the parent, it will follow, but it's own local rotation will cancel that perfectly so it will not move at all in the world space
  9. description in the file PolyTransforms_fix.hip
  10. Displacing displacements for curly paper

    here are 2 examples displace_example.hip
  11. Displacing displacements for curly paper

    just a lazy way to describe one displace along normal applied after another, or simply any operation that advects P along any vector until you get to final P and N in Houdini you can move P around to any position to create displacement, what can be tricky is to compute corresponding N, but however you get to new P doesn't have to be just moving along N or custom vector. Let's say you want to advect P through volume vel in a several steps, well, why not Mantra still needs to dice geometry to get enough resolution for Displacement or achieve perfect smoothness for Subd, so no, dicing is not only for micropoly, however micropoly has to dice every geo as it's shading corners of micropolygons, in Raytrace mode dicing is purely to generate hi res geo to raytrace against like in mentioned cases Shading Quality is controlling dicing density based on geometry before displacement Re-Dicing runs trial dice and displace pass just to measure area of displaced geometry, then adjusts dicing density accordingly and displaces for real, therefore hopefully giving you more micropolys where you need them
  12. Displacing displacements for curly paper

    just a note to displacing displacements it doesn't matter how many displacement steps you do as they are all added to single vector displacement value in the end so whether you do it at once with some function that maps starting point to the end or if you displace with recomputing new P and N and displace along the new N again, or in any direction it's essentially the same the only difference is in the cost of the calculations you decide to use to come up with the final P and N for very extreme displacements to make sure you have enough geometry to move around you can turn on Re-Dice Displacements property ( vm_redice )
  13. a poly primitive can't branch you can however try appending PolyPath SOP to minimize number of primitives your geo is composed of
  14. Combine VDB vectors

    accurate velocity is sort of arbitrary as it depends on the situation, I was reacting to the need of pure average also just using volumesamplev() will give you 0 or Background value for volumes sampled outside of their active regions, making it essentially the same, so other math is still requited to average just active velocities in either case I agree that in most of the real world cases just average of velocity field is not useful, it's much more useful if you compute weighted average based on length or density of all incoming vel fields
  15. you can read more about matte shading here: http://www.sidefx.com/docs/houdini/props/mantra.html#shading