渐进插值的LOOP 曲面细分

Posted 拉风小宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渐进插值的LOOP 曲面细分相关的知识,希望对你有一定的参考价值。

本文的算法来源于

哈尔滨理工大学孙立镌,鞠志涛的论文——渐进插值的LOOP 曲面细分

摘要

目前很多细分方法都存在不能用同一种方法处理封闭网格和开放网格的问题。对此,一种新的基于插值技术的LOOP 曲面细分方法,其主要思想就是给定一个初始三角网格 M ,反复生成新的顶点,新顶点是通过其相邻顶点的约束求解得到的,从而构造一个新的控制网格M¯,在取极限的情况下,可以证明插值过程是收敛的;因为生成新顶点使用的是与其相连顶点的约束求解得到的,本质上是一种局部方法,所以,该方法很容易定义。它在本地方法和全局方法中都有优势,能处理任意顶点数量和任意拓扑结构的网格,从而产生一个光滑的曲面并忠实于给定曲面的形状,其控制网格可以是封闭的或者开放的。我们这里主要讨论的是封闭网格

插值细分的几何细分过程

基于渐进插值的LOOP 曲面细分在封闭网格情况下的概念如下: 给定一个三维三角网格 M=M0 ,如果初始网格不是三
角网格要首先用Delaunay 三角化算法对网格进行处理。对LOOP 细分曲面的 M0 插入新顶点,首先要找到一个封闭控制网格 M¯ ,使其LOOP 曲面通过 M0 的所有顶点,其次要找到 M¯ 的顶点和 M0 的顶点的直接关系。本文使用迭代的过程来进行这项工作。
考虑 M0 上的LOOP 曲面 S0 ,对于 M0 的每个顶点 V0 ,计算该顶点与它在 S0 上的极限顶点 V0 的距离为 D0=V0V0 。将该距离与 V0 相加得到细分一次后的顶点为 V1=V0+D0
所有顶点 V1 的集合构成一次细分网格 M1 ,接下来计算 S1 上的极限顶点 V1 V0 的距离为 D1=V0V1 。将该距离与 V1 相加得到细分一次后的顶点为 V2=V1+D1
所有 V2 构成第二次细分网格 M2 ,重复该过程可以得到第 k 次插值后的控制网格Mk,并且 Dk=V0Vk
将这个距离与 Vk 相加得到 Vk+1 Vk+1=Vk+Dk 。所有
✠OpenGL-12-曲面细分

Tessellation (曲面细分) Displacement Mapping (贴图置换)

细分网格建模

渲染管道几何阶段三“曲面细分着色器”

渲染管道几何阶段三“曲面细分着色器”

渲染管道几何阶段三“曲面细分着色器”子阶段