Jump to content
Sign in to follow this  

'smooth' vdb according to normals ?

Recommended Posts



Does anyone know a way I could get the normal data to 'smooth' vdbs ? I'm trying to remesh geometry (polytovdb>smooth>convert vdb), but I always seem to get these hard edges


I might be overlooking something or it's something complicated.



In the following screenshot (which would be a more complicated mesh, of course) 1) is my base geo with smooth normals 2) is my vdb and 3) is the vdb i woul like to have. I can't always smooth incoming geo, unfortunately. 







Share this post

Link to post
Share on other sites

if you cant smooth or add subdv to source geo, then maybe try VDB smooth


I already have a vdb smooth, but it doesn't really do the trick for large, low poly objects

Share this post

Link to post
Share on other sites

Not based on technical knowledge on how VDB are built but from my experience. Not to be taken as absolute truth. Open thoughts on your problem:

What makes the eye think a low poly model is actually "smooth" is that viewports can average consecutive polygon's normals into one.
While it appears seamless, the actual geometry is still made of sharp edges.

When you convert to vdb, there is no viewport trick to blend the different polygons into a smooth surface, basically it's creating a voxel inside your geometry but none outside --> sharp edges are visible as if you switch your viewport to flat shaded.

Adding a VDBsmooth on top of that will indeed smooth the edges but more like doing a fillet than a smooth over the whole geometry. In the sense that it will not create the "outside" voxel needed to turn a flat surface into a smooth rounded one (see sketch) but will rearrange existing voxels to have a smoother distribution and smooth edges.

This is also why it does not work for your large low poly objects.

Considering this, you most likely need to refine your hard edges with more polygons to achieve what you are looking for.
First obvious idea would be to detect creases in your geo and only subdivide needed areas. Any reason why you "can't always smooth incoming geo" ? might be a lead to work around the problem.



If you are stuck to VDBs, have you tried to use VDBreshape to dilate, VDBsmooth then erode.

It should increase the radius of the "fillet" on edges at the cost of a loss of details.
Sharp edge can come as the 2nd input of your convertVDB later to relatively bring details back if needed.


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this