ViewDesignEngine  3.1.0
高性能 CAD 计算几何引擎
sdf_to_mesh.h 文件参考

SDF 到三角网格的转换 更多...

#include "vde/sdf/sdf_tree.h"
#include "vde/mesh/marching_cubes.h"
#include <functional>
sdf_to_mesh.h 的引用(Include)关系图:

浏览源代码.

命名空间

 vde
 
 vde::sdf
 

函数

mesh::MCMesh vde::sdf::sdf_to_mesh (const SdfNodePtr &root, int resolution=64, double iso_level=0.0)
 将 SDF 表达式树转换为三角网格 更多...
 
mesh::MCMesh vde::sdf::sdf_to_mesh_lambda (const std::function< double(double, double, double)> &f, const Point3D &bmin, const Point3D &bmax, int resolution=64, double iso_level=0.0)
 将 Lambda SDF 函数转换为三角网格 更多...
 

详细描述

SDF 到三角网格的转换

使用 Marching Cubes 算法将隐式曲面(SDF)转换为显式三角网格。

Marching Cubes 算法

在指定的包围盒内以固定分辨率采样 SDF 场,通过查表确定每个体素内的等值面三角形配置。

流程:

  1. [bmin, bmax] 范围内构建分辨率 res³ 的三维规则网格
  2. 在每个网格点求值 SDF
  3. 利用 Marching Cubes 查找表在等值面处生成三角形
  4. 返回包含顶点和三角形索引的 MCMesh

注意事项

  • 分辨率越高网格越精细,但计算量按 O(res³) 增长
  • 推荐分辨率 64~256,取决于几何复杂度
  • 结果网格需在 Marching Cubes 模块中定义(vde::mesh::MCMesh)

在文件 sdf_to_mesh.h 中定义.