渐进插值的LOOP 曲面细分
Posted 拉风小宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渐进插值的LOOP 曲面细分相关的知识,希望对你有一定的参考价值。
本文的算法来源于
哈尔滨理工大学孙立镌,鞠志涛的论文——渐进插值的LOOP 曲面细分
摘要
目前很多细分方法都存在不能用同一种方法处理封闭网格和开放网格的问题。对此,一种新的基于插值技术的LOOP 曲面细分方法,其主要思想就是给定一个初始三角网格
M
,反复生成新的顶点,新顶点是通过其相邻顶点的约束求解得到的,从而构造一个新的控制网格
插值细分的几何细分过程
基于渐进插值的LOOP 曲面细分在封闭网格情况下的概念如下: 给定一个三维三角网格
M=M0
,如果初始网格不是三
角网格要首先用Delaunay 三角化算法对网格进行处理。对LOOP 细分曲面的
M0
插入新顶点,首先要找到一个封闭控制网格
M¯
,使其LOOP 曲面通过
M0
的所有顶点,其次要找到
M¯
的顶点和
M0
的顶点的直接关系。本文使用迭代的过程来进行这项工作。
考虑
M0
上的LOOP 曲面
S0
,对于
M0
的每个顶点
V0
,计算该顶点与它在
S0
上的极限顶点
V0∞
的距离为
D0=V0−V0∞
。将该距离与
V0
相加得到细分一次后的顶点为
V1=V0+D0
。
所有顶点
V1
的集合构成一次细分网格
M1
,接下来计算
S1
上的极限顶点
V1∞
与
V0
的距离为
D1=V0−V1∞
。将该距离与
V1
相加得到细分一次后的顶点为
V2=V1+D1
。
所有
V2
构成第二次细分网格
M2
,重复该过程可以得到第
k
次插值后的控制网格
将这个距离与
Vk
相加得到
Vk+1
为
Vk+1=Vk+Dk
。所有
✠OpenGL-12-曲面细分