点云体素化算法研究续
0 简介
MC算法也被称作“等值面提取(Isosurface Extraction)”,是三维离散数据场面绘制的经典算法,算法的核心思想是通过线性差值来逼近等值面,它的2D版本叫marching squares。该算法的主要作用是,提取空间中的等值面,并用三角面近似表示出来。

Marching Cubes算法主要应用于医学领域的可视化场景,例如CT扫描和MRI扫描的3D重建等。
1 关键步骤原理
Marching Cube 算法流程
- 将原始数据[是啥?点云?]经过预处理之后,读入特定的数组中或者八叉树
- 从网格数据体中提取一个六面体,同时获取该六面体的所有信息,例如8个顶点的值、坐标位置等
- 将当前六面体8个顶点的函数值与给定等值面值进行比较,得到该六面体的状态表
- 根据当前六面体的状态表索引,找出与等值面相交的六面体棱边,并采用线性插值的方法,计算出各个交点的位置坐标
- 利用中心差分法,求出当前六面体8个顶点的法向量,再采用线性插值的方法得到三角面片各个顶点的法向【不能理解这步】
- 根据各个三角面片顶点的坐标,顶点法向量进行三角面的连接
为了进一步完善显示效果,需要调整顶点法向。假设顶点(i, j, k)上的值为f(i, j, k),采用中心差分方法可以计算该点处的梯度矢量:

对G进行归一化,得到顶点(i, j, k)上的单位法向量,然后对体素单元上8个顶点的法向量进行线性插值就可得到三角面片各个顶点的显示法向量。

1793

被折叠的 条评论
为什么被折叠?



