网格细分 Loop细分算法

网格细分有很多种方式,其中loop subdivision是一种三角网格细分方法(只能用在三角形面上)

loop细分的基本思想就是把一个三角形分成四个三角形,区分新顶点和老顶点分别进行位置的改变,最终让模型表面变得更加光滑

对于Loop细分其实就是两步:先细分,再调整

非边界更新策略

网格细分 Loop细分算法_第1张图片
对于非边界情况:
细分时: 新顶点被两个三角形共享,为了进行细分引入了新点E,E根据ABCD的位置进行定位
调整时:对于点N进行位置更新,部分保留自己的位置,部分受周围顶点的影响,最后使得整个模型更加光滑

边界更新策略:

网格细分 Loop细分算法_第2张图片
对于边界情况:
细分时边界中点的位置由边界边的两个顶点定义
更新三个三角形的顶点位置时,点N部分保留自己的位置,部分受周围顶点的影响,最后使得整个模型更加光滑

实现过程:

每次细分时,每条边上计算并插入一个新顶点,插入完毕后对于每一个原始顶点更新位置。

边界点,边界边,非边界点,非边界边具有不同的插入计算方法和更新方法

你可能感兴趣的:(快乐图形学大作业,算法)