Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


tjeeds last won the day on September 25 2018

tjeeds had the most liked content!

Community Reputation

64 Excellent

About tjeeds

  • Rank
  • Birthday 06/22/1978

Personal Information

  • Name
  • Location
    Los Angeles

Recent Profile Visitors

4,781 profile views
  1. How can I cap this geo?

    If you turn off triangulation on the PolyCap you can use the Hole node which detects coplanar faces, then a Divide sop with Avoid Small Angles toggled on will give you decent triangles. polycap.hipnc
  2. Comparing volume bounds over time

    Best way to do this is to use Chops, since that cooks it's incoming values for the entire frame range on the first frame. Ideally you want to send as little information as possible over to Chops, so in this example I'm creating two points at minimum and maximum positions of the incoming geometry's bounding box each frame. Once in chops I'm using the Expression Chop with icmin()/icmax() to find the min/max values of the min/max points over the entire frame range. This then gets piped back out into sops, moving the points to these minmin maxmax positions. After that a Box Sop or Volume Sop can be plugged into these guys. This is the kind of thing you build once, make into and HDA and just use forever. Gets you around using a Solver/invoking Dops and having cook and cache the last frame, and it's super fast since you're only really working with 2 points. You'll notice that nothing is plugged into the first input of the Attribute Vop where the points are created, this is just one of many ways to get these points. The Attrib Vop is in Detail mode so it doesn't need input geometry to iterate over, in this case you don't want to carry through the geo that you are bounding so you plug it into Input 2 and leave Input 1 alone. Fun? max_bbox.hipnc
  3. How to use the new For Loop SOP?

    and the orange blob IS cute
  4. How to use the new For Loop SOP?

    Yeah, it's a little wacky but I think that's to be expected with any new workflow. I think it's pretty clever actually, love the unification of style between Vop and Sop loops too. It's easy to forget how weird using the ForEach Sop was at first, trying to figure out how to use stamp expressions inside there was not cool, but now it's second nature. Same with Vop If block and loops, you just gotta fiddle with it until it clicks and then it's easy breezy, no problemo, after a while crocodile.
  5. Scatter Points Interpolation

    Okay, that makes more sense. Check this one out, inside the solver there's a volume vop node that has two texture parm, you can use the current and next frame of the texture sequence here. This reads the textures into a volume and stores the delta values in voxels. This gives you a way to read the gradient of the difference between the images so you can advect your points. I did this in a crappy solver but it should probably be done in Dops and bundles with a Gas Particle Separate or soemthing to keep them from bunching up. interp_tex.hip
  6. Scatter Points Interpolation

    I agree with Miles, still not totally sure what you're after in the end but there's probably a simpler way to achieve it. Here's an example where the point count is constant, although the point numbers jump around from frame to frame. This is using animated UVs instead of a texture sequence but same diff, y'know? Nothing special needed for this, scattering a ton of points, reading a texture onto them and writing a scalar value from that ttexture to sort by. The points are sorted by luminance (and reversed in order so point 0 has the highest luminance), then you can just delete all points over your desired number. Is this getting closer? interp_tex.hip
  7. Just gonna pod onto Matt's file here with a Find Attribute Value by Index example. This uses an If statement to acheive the same results as running through a loop, but you can use the Find Attribute Value Count vop to set up a loop that will do something similar. @Matt, the reason for the difference in prim numbers can be seen if you look at the primitive numbers before the fuse. The first method creates one legitimate edge and one degenerate zero-length edge. The second method creates two legitimate primitives so the Fuse doesn't remove anything. vop_loops.hipnc
  8. Scatter Points Interpolation

    Sounds like you're trying to do this, right? interp_tex.hip
  9. You changed your Evaluation Node Path to "../scatter1", this means that any ch() references you make will look to that node instead of the wrangle node itself. So it's looking for a parameter called "threshold" on the scatter, which doesn't exist so it returns 0, thereby deleting all of your points.
  10. Arrays in H15 wrangle nodes

    Another strategy for anyone who's curious, VOPs supports arrays quite nicely now. All the array functions are subtabbed in the node menu, you can build up what you want and then right click on the Vopnet to view the VEX code that it generates.
  11. What exactly are you trying to do? There's a lot of alternate ways to accomplish this sort of thing.
  12. You can use the Find Attribute Value Count Vop, this will return the number of unique values contained within a String or Integer. You can use this to run a For Loop and inside you'll hook up i to Find Attribute Value by Index node to pull the current value. Just be aware, running this is in a Attrib VOP set to run on Detail (Only Once) will be analogous to the old ForEach sop. If you run it on points you'll be iterating numpts^numattribs (an assload) times, so if you have a high point count you should avoid doing that.
  13. Kill isolated particles

    You can use a POP Proximity and POP Kill node to handle this. Less headache than using a wrangle and accomplishes the same thing.
  14. Use a Ray sop set to Minimum Distance and pull the uv attribute from your mesh, you can then use this to do a texture lookup in Vops. You can do it all in Vops if you wish, the XYZDist node will give you the nearest primitive and the parametric uv on that face, you can plug that data into a Primitive Attribute vop and pull uv from your mesh that way. transfer_texture.hip