20.02.2022, 19:41 fxtd

When using To NDC VOP node in a Volume VOP node, holes may appear in the volume:

This is because some threads are not calculating the VOP correctly. I think the reason of it is the To NDC node was created for shading context, and this may cause an error in the SOP context.

But To NDC node is a greate feature, because it doesn’t have any limits. We can use it for camera clipping, for example. If we do it with VDB, we need to think about the size and the depth of the masking VDB.

There is one method to check how it works. In bad areas z-component of NDC coordinates is the same like in source position P:

The first five records are the result of the erroneous working of the To NDC node

I tried doing it in inside a loop until z-components are the same (with fixed maximum number of steps), but it helped partically. Because sometimes they can be the same. I also tried doing it with SOP-loops, it didn’t help.

So, the only way to solve this problem is disabling multithreading on the Volume VOP node.


02.11.2020, 16:38 fxtd

It looks like you need to turn off Use Timestep in Volume Source when working with FLIP.
This is tested on 1, 2, 4 and 8 Dopnet Substeps for collisionvel. With the Use Timestep toggle off, the simulation was 100% correct. With it on, the sliding effect appeared.


19.06.2020, 11:37 fxtd

The point radius scale in the VDB From Particles must not be less than:

point radius scale = minimum radius in voxels * voxel size * 1.01

That is, the actual radius of the particle should not be less than the radius of one and a half voxels. In the opposite direction, the voxel size should not be greater than:

voxel size = point radius scale / minimum radius in voxels * 0.99

Using these expressions, you can bind parameters and adaptively set voxel size and point radius.


18.06.2020, 23:45 fxtd

The VDB Smooth SDF produces incorrect values for distance from the surface. If you convert it to geometry and make SDF again, the values will change. Therefore, the result cannot be used for accurate distance calculations (both outside and inside).


14.06.2020, 18:31 fxtd

Do not store attributes in points for VDB primitives. They can mix or change. For example, this can happen after the VDB Combine node with a simple multiplication by a constant value for the density field.


14.06.2020, 14:07 fxtd

The SDF with positive values inside and negative outside is used for collisions. But the SDF is negative inside by default. So you need to invert it.

Always use the fill interior parameter for custom collision sdf.


12.06.2020, 17:28 fxtd

Using the VDB Combine to multiply VDB by -1 gives unpredictable results. The Volume Wrangle gives the correct result.


04.06.2020, 13:35 fxtd

When you sample a VDB SDF outside its bounds, volumesample returns the value of the SDF border, volumegradient returns none.