System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于计算机图形学三维网格模型简化,特别涉及一种针对qem算法在三维模型中保持细节特征的优化方法,是一种缩小模型简化误差,缩短模型简化时间的模型简化方法,用于解决在移动端或web端产生的模型加载速度慢、传输时间长等问题。
技术介绍
0、技术背景
1、随着计算机图形学和三维建模技术的迅速发展,三维模型被广泛运用于工业,科研,电影游戏等各个领域。目前,主流的三维模型表示方法可分为三类,分别是边界表示法(boundary representation)、离散三角网格表示法(triangular mesh)以及点云表示法(point cloud)。为了在屏幕上进行渲染和显示,b-rep需要被离散化,因此在屏幕上展示的三维模型通常采用三角网格。然而,随着三维扫描技术的兴起,点云技术尚未像b-rep和triangular mesh一样广泛地应用于工程领域。复杂的三维模型一旦离散化,往往会由成千上万甚至更多的三角面片构成,这使得内存较大的三维模型在移动端(如手机端)、虚拟现实或混合现实终端中的实时变换与加载变得困难。为了解决这些问题,学术界开发了一系列的三角网格简化算法,以在不影响视觉观感的前提下,适度简化模型,降低其复杂性,大幅度提升了渲染性能,减轻在模型渲染过程中图形卡的计算负担;同时,三角网格简化算法可以生成多个分辨率级别的模型,使用者可以根据场景选择不同级别的模型显示,降低整体性能开销。
2、其中,hoppe在《hoppe,h.,efficient implementation of progressi
3、因此,研究具有较高简化速度和可以更好地维持模型自身几何特征的方法对三维网格模型的简化至关重要。
技术实现思路
1、为了克服上述现有技术的缺陷,本专利技术的目的在于提供一种针对qem算法在三维模型中保持细节特征的优化方法,首先,结合边的一阶邻域三角形的夹角和面积对qem算法的折叠代价进行了改进,该简化方法的简化时间比guangyou zhou的改进算法更短,同时提出了两轮简化的思想,第一轮针对平面区域进行简化,第二轮对模型整体进行简化,从而提高模型简化速度,更好地保持模型的几何特征,该模型简化方法可用于工业模型的轻量化处理。
2、为实现上述专利技术目的,本专利技术具体采用的技术方案为:
3、一种针对qem算法在三维模型中保持细节特征的优化方法,包括以下步骤:
4、步骤1:结合边的夹角和平均面积,对三维模型平坦区域进行边折叠一轮简化;
5、三维模型是由多个三角面片组成的模型,每条边相邻的三角形的面积越大的三角网格密度就相对较低,几何特征较单调,就越接近平坦形状,应当作为折叠的对象,这条边的折叠代价和其一阶邻域三角形的平均面积成反比;相对的,边的一阶邻域三角形的夹角β越大,这部分模型的细节特征就越少,细节特征越少就越接近平坦形状,其折叠代价越小,也应当作为折叠的对象,一阶邻域三角形的夹角β与折叠代价成反比,即一阶邻域三角形的两个法向量的夹角α与折叠代价成正比;因此综合考虑三角形的面积和两个法向量的夹角α,则折叠代价计算公式如下表示:
6、
7、式中:——边(v1,v2)的折叠代价;v0——由qem得到的新顶点;——这条边对应的二次误差;α——边的一阶邻域三角形的法向量夹角;——这条边的一阶邻域三角形的平均面积;根据折叠代价的值与设立的阈值进行对比,小于等于阈值的折叠代价对应的边即为需要折叠的边,折叠后即完成优化;
8、步骤2:对三维模型非平坦区域进行边折叠二轮简化;
9、如果一轮简化结束后模型三角面片数没有达到预设的目标简化率,则再对非平坦区域进行边折叠二轮简化,采用结合点的近似曲率和一阶邻域三角形平均面积来改进qem的折叠代价的计算,根据折叠代价的值与设立的阈值进行对比,小于等于阈值的折叠代价对应的边即为需要折叠的边,折叠后即完成二轮折叠后,二轮折叠后,输出的模型obj文件,即为简化后保持模型细节特征的优化模型。
10、步骤2的折叠代价定义为:
11、
12、式中:——这条边对应的二次误差;——顶点v1,v2的一阶邻域三角形的平均面积之和;cur(edge(v1,v2))——边(v1,v2)的近似曲率;
13、其中,
14、
15、式中:edge(v1,v2)——顶点v1,v2决定的边;cur(edge(v1,v2))——边(v1,v2)的近似曲率;n(v1),n(v2)——顶点v1,v2的顶点法向量;angle(n(v1),n(v2))——v1,v2两个顶点法向量的夹角;||v1-v2||——v1,v2决定的边的边长。
16、所述步骤1中第一遍的边折叠简化后得到的区域仍然是由多个三角面片所组成的平坦区域,且折叠代价小于等于设立的折叠代价阈值,则还需要对该区域再进行一轮简化,直至该区域的折叠代价大于设立的阈值停止一轮简化;判断周围是否为平坦区域的方式为:建立点与面的对应关系之后,读取点面关系表,计算并保存第一个读到的三角面的法向量,计算出该法向量与该点一阶邻域三角形的法向量的夹角,如果折叠夹角都小于等于最小阈值,说明该点所在区域为平坦区域;同理下一个点也进行相同计算,若也达到平坦区域的要求,则直接计算两个被保存法向量的夹角本文档来自技高网...
【技术保护点】
1.一种针对QEM算法在三维模型中保持细节特征的优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种针对QEM算法在三维模型中保持细节特征的优化方法,其特征在于,步骤1一轮简化具体为:
3.根据权利要求1所述的一种针对QEM算法在三维模型中保持细节特征的优化方法,其特征在于,步骤2的折叠代价定义为:
4.根据权利要求1所述的一种针对QEM算法在三维模型中保持细节特征的优化方法,其特征在于,
【技术特征摘要】
1.一种针对qem算法在三维模型中保持细节特征的优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种针对qem算法在三维模型中保持细节特征的优化方法,其特征在于,步骤1一轮简化具体为:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。