New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Obtain normal from NanoVDB's Level Set intersection (ZeroCrossing) #1772
Comments
I'm looking for the same thing, and I'm not having a lot of success trying to calculate this myself. I was hoping I could use a Edit: Edit2: |
After studying the NanoVDB documentation & code a little bit more I think I now understand how these are supposed to work. @marcardenas I had some success with this approach using a very simple iterative approximation that steps along the ray, in the direction towards the surface as determined by the distance value (negative distance = reverse direction, positive distance = forward direction), halving the step size at each iteration, up to at most 8 steps). The resulting coordinates I use to sample the gradient. This seems to work well for interior points but not for edges of the level-set, as So all in all it seems the NanoVDB raytracing interfaces are lower level than OpenVDB (which makes sense I guess) and you will have to do more work to get what you want. It would be nice if either the documentation would mention some of this, even better if there was an example of some very simple raytracer that just uses primary rays and shades intersections using |
Hi all!
Is there any way to compute normal after intersecting ray in a level set grid in NanoVDB? OpenVDB's LevelSetRayIntersector provides a method called intersectsWS() which among other return values, provides you with the normal vector.
Thanks
The text was updated successfully, but these errors were encountered: