Geometry Nodes: SDF Grid filtering nodes

This PR gives access to OpenVDB's level set filtering operations
through individual **SDF Grid** nodes.

- **Mean Curvature**: Smoothens high curvature areas more than flatter
  ones.
- **Laplacian**: Approximates mean curvature flow for true SDFs at lower
  computational cost.
- **Median**: Reduces noise while preserving sharp features.
- **Mean**: Fast separable averaging filter for general-purpose
  smoothing with linear computational complexity.
- **Offset**: Uniform dilation/erosion operation that shifts the SDF
  surface by a world-space distance.
- **Fillet**: Rounds off concave internal corners by operating only on
  regions with negative principal curvature.

Pull Request: https://projects.blender.org/blender/blender/pulls/147224
This commit is contained in:
Brady Johnston
2025-10-06 17:54:25 +02:00
committed by Hans Goudey
parent d33a6a1723
commit 438b8c303e
12 changed files with 493 additions and 0 deletions

View File

@@ -950,6 +950,12 @@ class NODE_MT_gn_volume_operations_base(node_add_menu.NodeMenu):
self.node_operator(layout, "GeometryNodeVolumeToMesh")
self.node_operator(layout, "GeometryNodeGridToMesh")
self.node_operator(layout, "GeometryNodeSDFGridBoolean")
self.node_operator(layout, "GeometryNodeSDFGridFillet")
self.node_operator(layout, "GeometryNodeSDFGridLaplacian")
self.node_operator(layout, "GeometryNodeSDFGridMean")
self.node_operator(layout, "GeometryNodeSDFGridMeanCurvature")
self.node_operator(layout, "GeometryNodeSDFGridMedian")
self.node_operator(layout, "GeometryNodeSDFGridOffset")
self.node_operator(layout, "GeometryNodeFieldToGrid")
self.node_operator(layout, "GeometryNodeGridPrune")
self.node_operator(layout, "GeometryNodeGridVoxelize")