网格简化技术研究报告

网格简化技术在超大场景中用于精细模型的优化,以适应不同范围下的显示需求。报告详细介绍了删减法、采样法、自适应子分法、顶点聚类法和多边形合并等算法,并讨论了误差测度、约束条件及成熟算法。其中,QEM算法因其兼顾速度和质量而被广泛应用。VTK和VCG库提供了不同的网格简化实现,而基于QEM的改进算法则声称具有更高的效率。
摘要由CSDN通过智能技术生成

网格简化技术研究报告

lvweiwolf

问题及场景

超大场景环境下,为了精细、真实的塔模型,采用分级简化铁塔和绝缘子串模型的方法,利用PageLOD分页细节层次的机制,在不同范围下展现不同精细程度的外观。

简化模型要求速度快、质量高、文件体积小等特点。

网格简化的算法分类

删减法

删减法是目前算法中采用最多的一种模型简化操作。该方法通过重复依次删除对模型特征影响较小的几何元素并重新三角化来达到简化模型的目的。根据删除的几何元素的不同,通常又可以分成顶点删除(Vertex removal)法、边折叠(Edge Collapse)法和三角面片折叠(Triangle collapse)法等。

采样法

采样法首先将顶点(Vertex)或体素(Voxels)添加到模型表面或模型的三维网格上,然后根据物理或几何误差测度进行顶点或体素的分布调整,最后在一定约束条件下,生成尽可能与这些顶点或体素相匹配的简化模型。采样法适合于无折边、尖角和非连续区域的光滑曲面的简化,对于非光滑表面模型简化效果差。

自适应子分法

自适应子分法通过构造简化程度最高的基网格模型(Base Model),然后根据一定的规则,反复对基网格模型的三角面片进行子分操作,依次得到细节程度更高的网格模型,直到生成的网格模型与原始模型误差达到给定的阈值。自适应子分算法具备简单、实现方便等特点,但只适用于容易求出基网格模型的一些应用(如地形网格模型简化等),另外简化模型对于具有尖角和折边等特征的保持效果较差。

顶点聚类法

顶点聚类方法根据一定的规则,将原始网格模型中的两个或多个顶点合并成一个顶点,并删除合并顶点后的退化三角形,从而达到简化网格面片数量,实现网格模型简化的目的。下图为顶点聚类法操作示意图,图中将4个顶点聚类合并为一个顶点,并删除相应的退化三角形后,得到简化后的网格模型。边折叠法也可以看成是顶点聚类法中两个顶点合并的情况。顶点聚类法能处理任意拓扑类型的网格模型,算法简单,速度较快。但由于简化误差控制困难,容易丢失较小结构的细节,因此通常简化模型质量不高。

多边形合并(Polygon merging)

多边形合并法通过将近似共面的三角网格面合并成一个平面,然后对形成的平面重新三角化,来实现减少顶点和面片数量的目的。也被称为面片聚类(Face cluster)和超面(Superfaces)法。该方法在合并和三角化过程中可能改变孔洞结构,因此不能保证简化前后模型的拓扑结构。

简化算法的误差测度(度量质量和误差)

误差测度用于度量模型简化的质量和误差,因此它对模型的简化过程和最后的简化结果都具有重要的影响。大多数简化算法采用对象空间(Object-space)的一种或综合几种形式的几何误差(Geometric errors)作为误差测度,一些视点相关算法通常将对象空间的误差转换为屏幕空间(Screen-space)的误差值为误差测度,有些算法也考虑模型的颜色、法向量和纹理坐标等属性误差(Attribute errors)。

几何误差

几何误差测度一般采用欧式空间距离表示。通常有顶点到顶点、顶点到平面和平面到平面的距离等形式。

Hausdorff距离是现有算法中常常用到度量顶点到表面、表面到表面距离的几何误差测度,该距离为两个模型的顶点之间的最小距离中的最大值。

给定欧式空间的两点集http://latex.codecogs.com/gif.latex?\\A%20=%20\left\%7b%20%7b%7ba_1%7d,%7ba_2%7d,...%7d%20\right\%7dhttp://latex.codecogs.com/gif.latex?\\B%20=%20\left\%7b%20%7b%7bb_1%7d,%7bb_2%7d,...%7d%20\right\%7d ,Haousdorff距离就是用来衡量这两个点集间的距离。

http://latex.codecogs.com/gif.latex?\\H\left(%20%7bA,B%7d%20\right)%20=%20\max%20\left%5b%20%7bh\left(%20%7bA,B%7d%20\right),h\left(%20%7bB,A%7d%20\right)%7d%20\right\%5d

http://latex.codecogs.com/gif.latex?$$h\left(%20%7bA,B%7d%20\right)%20=%20\mathop%20%7b\max%20%7d\limits_%7ba%20\in%20A%7d%20\mathop%20%7b\min%20%7d\limits_%7bb%20\in%20B%7d%20\left\|%20%7ba%20-%20b%7d%20\right\|$$

http://latex.codecogs.com/gif.latex?$$h\left(%20%7bB,A%7d%20\right)%20=%20\mathop%20%7b\max%20%7d\limits_%7bb%20\in%20B%7d%20\mathop%20%7b\min%20%7d\limits_%7ba%20\in%20A%7d%20\left\|%20%7bb%20-%20a%7d%20\right\|$$

算法过程:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值