计算机图形学:Mesh

您所在的位置:网站首页 mesh分割 计算机图形学:Mesh

计算机图形学:Mesh

2024-07-11 16:07| 来源: 网络整理| 查看: 265

第七章:Mesh 0 基本描述 网格有一系列的三角面片组成三角面片包含三个点的索引点索引可以在点表中找到相应的点 1 Tessellation 1.1 基础网格化方法(低效) 检测多边形的任意两顶点连线是否与任意边相交如果相交则无法切割,否则可以切割,继续用该方法进行三角化. 1.2 Ear clipping 取相邻三个顶点i,i+1,i+2,检查线段[i, i+2]是否与边相交如果没有相交则将该耳朵从多边形中去除,继续三角化 Subdivision(细分) 2.1 Loop Subdivision 每个边都会添加一个新节点,连接后一个三角形转变为四个三角形,同时更新每个原始顶点的位置 在这里插入图片描述

在这里插入图片描述

2.1.1顶点更新

如图(a)所示,新的顶点根据相邻点及自己的权重得到,n为相邻点数

p k + 1 = ( 1 − n β ) p k + ∑ i = 0 n − 1 β p i k   β = 5 8 − ( 3 8 + 1 4 c o s 2 π n ) 2 n p_{}^{k+1} = (1 - n\beta)p_{}^{k} + \sum_{i=0}^{n-1}\beta p_{i}^{k}\\ \ \\ \beta = \frac{\frac{5}{8} - (\frac{3}{8} + \frac{1}{4}cos\frac{2\pi}{n})^2}{n}\\ pk+1​=(1−nβ)pk​+i=0∑n−1​βpik​ β=n85​−(83​+41​cosn2π​)2​

2.1.2新节点

p k , p i k p_{}^{k},p_{i}^{k} pk​,pik​是两个端点, p i − 1 k , p i + 1 k p_{i - 1}^{k},p_{i + 1}^{k} pi−1k​,pi+1k​是两个相对顶点,如图(b)所示

p i k + 1 = 3 8 ( p k + p i k ) + 1 8 ( p i − 1 k + p i + 1 k ) p_{i}^{k+1} = \frac{3}{8}(p_{}^{k} + p_{i}^{k}) + \frac{1}{8}(p_{i - 1}^{k} + p_{i + 1}^{k}) pik+1​=83​(pk​+pik​)+81​(pi−1k​+pi+1k​)

2.2 Catmull-Clark subdivision

image

设四边形的四个顶点为v0、v1、v2、v3,则新增加的顶点位置为v = 1/4*(v0 + v1 + v2 + v3)设内部边的两个端点为v0、v1,与该边相邻的两个四边形顶点分别为v0、v1、v2、v3和v0、v1、v4、v5,则新增加的顶点位置为v = 3/8*(v0 + v1) + 1/16*(v2 + v3 + v4 + v5)。设内部顶点v0的相邻点为v1、v2,…,v2n,则该顶点更新后位置为 v = α v 0 + β n ∑ i = 1 n v 2 i + γ n ∑ i = 1 n v 2 i − 1 v = \alpha v_0 + \frac{\beta}{n}\sum_{i=1}^{n}v_{2i} + \frac{\gamma}{n}\sum_{i=1}^{n}v_{2i-1} v=αv0​+nβ​∑i=1n​v2i​+nγ​∑i=1n​v2i−1​,其中α、β、γ分别为α = 1 - β - γ。设边界边的两个端点为v0、v1,则新增加的顶点位置为v = 1/2*(v0 + v1)。设边界顶点v0的两个相邻点为v1、v2,则该顶点更新后位置为v = 3/4v0 + 1/8(v1 + v2)。 2.3 3 \bm{\sqrt{3}} 3 ​Subdivision Different from Loop’s scheme Kobbelt, Kobbelt’s 3 \bm{\sqrt{3}} 3 ​ scheme 3 scheme creates only 3 new triangles per-stepIt creates a new vertex (called mid-vertex) in the middle of each triangle, instead of a new vertex per edge.

image

为了得到更均匀分布的三角形,每个原始三角形的边都被翻转,使之连接两个相邻中间顶点而不是连接两个已经存在的旧顶点

2.3.1顶点更新

第一个式子为中间点的计算,第二个式子是三角形顶点的位置更新,第三个式子是 β \beta β的计算

p m i d d l e k + 1 = p a k + p b k + p c k 3   p k + 1 = ( 1 − n β ) p k + β ∑ i = 0 n − 1 p i k   β ( n ) = 4 − 2 c o s ( 2 π n ) 9 n p_{middle}^{k+1} = \frac{p_{a}^{k} + p_{b}^{k} + p_{c}^{k}}{3}\\ \ \\ p_{}^{k+1} = (1 - n\beta)p_{}^{k} + \beta \sum_{i=0}^{n-1} p_{i}^{k}\\ \ \\ \beta(n) = \frac{4 - 2cos(\frac{2\pi}{n})}{9n}\\ pmiddlek+1​=3pak​+pbk​+pck​​ pk+1​=(1−nβ)pk​+βi=0∑n−1​pik​ β(n)=9n4−2cos(n2π​)​

3 Simplification(简化)

Approximating a given input mesh with a less complex but geometrically faithful representation

remove reddundant(多余的) geometryreduce model sizeimprove run-time performance 3.1 levels of detail (LOD)

在这里插入图片描述

Topology (拓扑结构):多边形网格的连接结构Genus(亏格):网格表面孔洞的数目。如球或立方体为0,圆环为1 3.2 简化的基本算法 3.2.1 Vertex Decimation顶点删除

image

3.2.2 Edge Contraction边坍塌(边变成点)

image

3.2.3 面收缩(面变成点)

image

3.3 简化算法 3.3.1 Schroeder的局部判别准则

对于网格内部顶点v,记其周围相邻面片集为S,则该点的平坦性准则由下述的距离来描述:

d = ∣ N ⋅ ( v − C ) ∣   N = ∑ f ∈ S n ( f ) A ( f ) ∑ f ∈ S   C = ∑ f ∈ S c ( f ) A ( f ) ∑ f ∈ S d = |N\cdot(v - C)|\\ \ \\ N = \frac{\sum_{f\in S}^{} n(f) A(f)}{\sum_{f\in S}^{}}\\ \ \\ C = \frac{\sum_{f\in S}^{} c(f) A(f)}{\sum_{f\in S}^{}}\\ d=∣N⋅(v−C)∣ N=∑f∈S​∑f∈S​n(f)A(f)​ C=∑f∈S​∑f∈S​c(f)A(f)​ 这里A(f),c(f),n(f)分别为三角面片的面积、中心和法向量

3.3.2 Hoppe-渐进的网格简化技术 3.3.3 基于二次误差度量的简化技术


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3