VDB Activate: Deactivate not working as expected

   4569   4   1
User Avatar
Member
339 posts
Joined: Aug. 2007
Offline
I'm attempting to make an iterative levelset growth tool using a Solver sop and have run into an issue where Deactivation seems to stop working.

The first example in the attached file shows 3 iterations laid out and tied to $F, step through to see each operation. You can see that the Expand works correctly (though I wish you could limit it to exterior expansion only), but when using Deactivation it only affects the Exterior band. So each iteration the interior collects more and more needless voxels.

The second example shows what happens when a Volume VOP operation is applied after exapnsion and before deactivation. Not sure why but here deactivation stops working entirely.
I've tried clamping the output to the +/- background intrinsic and that doesn't seem to help. What I'd really like is for deactivation to respect the initial Interior/Exterior bandwidths, or to have parameters for them on the Deactivate tab. Anything above or below should get deactivated.

Any thoughts on what's going on here?
Is there any other way to control deactivation of voxels?

Attachments:
VDB_activate_deactivate.hip (143.5 KB)

Jesse Erickson
Fx Animator
WDAS
User Avatar
Member
92 posts
Joined: Aug. 2010
Offline
hey, any reason you're not doing an dilation instead of activate, vop, deactivate?

i mocked up a quick example with masked dilation with a solver sop; the morphological operations in vdbReshapeLevelSet are cool in that the level set is dynamically rebuilt (so you don't have to worry about going outside of the narrow-band).

i hope that helps!
-jeff

Attachments:
vdb_activate_deactivate_102_jbud.hip (193.9 KB)
tmp.jpg (73.8 KB)

User Avatar
Member
339 posts
Joined: Aug. 2007
Offline
Hey Jeff, thanks for the reply. You are correct, dilation with a mask accomplishes the same effect as displacing in a volume vop. It is a bit more elegant than the activation/deactivation scheme, but you do take a performance hit.

I sent this issue to support as well and as it turns out the real trick here is to use a VDB Resample to rebuild the levelset after each iteration. When I introduced that into my setup there's actually no need for activation or dilation assuming a small enough displacement distance is within the starting exterior bandwidth.
Jesse Erickson
Fx Animator
WDAS
User Avatar
Member
92 posts
Joined: Aug. 2010
Offline
tjeeds
no need for activation or dilation assuming a small enough displacement distance is within the starting exterior bandwidth.

yep, totally. if what you are doing in the vop stays within the narrow-band, you can simply rebuild the level set and you are good to go.
User Avatar
Member
339 posts
Joined: Aug. 2007
Offline
Cheers, Thanks again man
Jesse Erickson
Fx Animator
WDAS
  • Quick Links