三维模型的网格细化

三维模型的网格细化是基于网格离散曲面的一种表示方法,它可以从任意拓扑网格构造光滑曲面。细化方法的基本思想是:定义一个网格序列的极限,网格序列是采用一定的细分规则(一般是加权平均),在给定的初始网格中插入新的顶点,从而不断细化出新的网格,重复运用细分规则,在极限时,该网格即收敛于一个光滑的曲线或者曲面。三维模型网格的细化是图形学算法以及游戏领域中一个较为常用且有代价值的算法。

网络细分是由细分规则作用在初始网格得到的。细分规则可以分为两个部分:一是拓扑分裂规则,主要用来描述网格每次细分之后所有顶点之间的连接关系,该过程也称为分裂;另一个是几何规则,用来计算新顶点的几何位置信息,这一过程也称为平均。通常有两种基本的分裂方法:顶点分裂和面分裂,其区别主要在于所作用的基本几何体元。顶点分裂是对于给定度为n的顶点i(顶点的度表示顶点所关联的边的个数),将其分裂成n个新顶点,每个顶点对应着它的一个邻面,使用该方式的细分方法称为对偶型。如果i为内部顶点,则把这些复制顶点依次相边开成一个新的n边形,称此n边形为新网格的V-面;对于内部边两个端点分裂构成的新网格称为E-面,旧网格多边形每个顶点分裂构成的新网格面与原来的网格具有相同的拓扑结构,称之为F-面。面分裂是在网格边和面上插入新的顶点,然后对每个面进行剖分,从而得到新的网格。使用此方法的细分方法称为基本型。

1

图1. 顶点分裂

2

图2. 面分裂

在实践中经常使用的三种细分模式主要有三种:Loop细分模式,Butterfly细分模式,√3细分模式,这三种方法的主要区别即在于它们的细分规则不同。

1. Loop细分模式

Loop细分模式采用1-4三角形分裂,只生成E-顶点和V-顶点。顶点的计算如下:

a. 若内部边有两个顶点v0和v1,共享此边的两个三角形为(v0,v1,v2)和(v0,v1,v3),则新生成的E-顶点为:

clip_image006[4]

若内部顶点v的1-邻域顶点为vi(i = 0, 1, 2, … , n-1), 则新生的V-顶点为:

  • 2
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
OpenMVG(多视图几何库)和OpenMVS(多视图表面重建库)是一对用于三维重建的开源工具库。 OpenMVG的三维重建原理是基于多视图几何的算法。它首先通过结构从运动(SfM)算法计算相机的位姿和三维特征点在多个图像中的位置。这个过程可以通过解决一系列视觉几何方程来实现,例如基础矩阵估计和光束法平差。然后,OpenMVG使用三角化算法将这些特征点转换成三维点云。最后,通过利用全局最优化技术,OpenMVG进行了相机内外参数的联合优化,从而进一步提高了三维重建的质量。 而OpenMVS的三维重建原理则是基于稠密点云的重建。它接受OpenMVG的输出结果,即相机的位姿和三维点云,然后使用逐像素的基于多视图的三角化算法,将这些稀疏点云转换为稠密点云。在这个过程中,OpenMVS还利用了光度一致性和相机位姿约束来提高点云的重建质量。接下来,OpenMVS使用基于代价体积的方法对稠密点云进行三角网格化,以生成具有几何形状的三维模型。最后,OpenMVS通过进行网格细化和纹理映射,进一步优化和完善三维模型的外观和细节。 总的来说,OpenMVG和OpenMVS组合使用,可以实现从多张图像到稠密三维模型的完整三维重建流程。OpenMVG通过基于多视图几何的算法,实现从图像到稀疏点云的转换;而OpenMVS则通过逐像素的三角化和基于代价体积的方法,将稀疏点云转换为稠密点云,并最终生成具有几何形状和纹理的三维模型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值