一种基于改进包络测试的高效误差可控网格简化方法技术

技术编号:34849413 阅读:12 留言:0更新日期:2022-09-08 07:48
本发明专利技术属于计算机图形学领域,公开了一种基于改进包络测试的高效误差可控网格简化方法。该方法是:对于原始模型的网格,首先对所有面片生成误差包络多面体,形成集合B,并对集合B构建稀疏网格加速结构,然后使用Qslim选出一条待折叠边e,将与e相邻的面片集合设为D,基于稀疏网格快速查找包络体集合B中与集合D的面片相交的包络体,将其集合定义为B

【技术实现步骤摘要】
一种基于改进包络测试的高效误差可控网格简化方法


[0001]本专利技术属于计算机图形学领域,尤其涉及一种基于改进包络测试的高效误差可控网格简化方法。

技术介绍

[0002]在工业仿真软件中,大规模场景的高效仿真是一个技术难点,网格简化可以在几乎不改变模型外观的同时有效减少构成模型的网格数,从而提升渲染效率,这是实现大场景渲染的一种重要手段。从算法性能的角度出发,对于网格简化算法的研究主要聚焦于两大方向,其一是高效简化,其二是高质量简化。
[0003]高效简化是此前相关研究的重要方向,目前已经有了很好的研究成果。Garland与Heckbert提出了基于QEM(Quadric Error Metrics)的简化算法,该算法能够兼顾模型质量和简化效率,直至目前QEM仍是网格简化的主流算法,此后的很多研究是基于该算法进行的。
[0004]高质量简化的重点在于高保真和高精度。高保真简化是指在减少网格数的同时尽可能保留原模型的重要特征,使得简化后模型的外观与原模型外观相似,高精度简化的重点在于控制精度符合用户的要求,并在此前提下减少网格数。目前,常规的网格简化技术已经能够满足大部分应用场景,但是对于一些对精度要求较高的工业场景,如面向CAD、机器人离线编程或者有限元分析的工件模型简化,依然存在一些不容忽视的问题:
[0005]1.基于二次误差度量(QEM,quadric error metric)的网格简化方法效率很高,能够满足大多数场景的要求,但是受其原理所限,无法直接控制简化后模型与原模型之间的误差
[0006]2.基于包络测试的网格简化方法能够控制模型简化的精度,但是其中的粗筛和精细包络测试都需要耗费更多的时间,与QEM相比,包络测试的效率要低得多。

技术实现思路

[0007]本专利技术的目的在于提供一种基于改进包络测试的高效误差可控网格简化方法,从模型体量的角度为现有工业仿真软件中的大规模场景仿真渲染效率低下的问题提供解决思路,同时为实现兼顾效率与精度的三维模型简化功能提供一种可供借鉴的方法。
[0008]为解决有关精确性和高效性的技术问题,本专利技术采用的技术方案如下:
[0009]根据本专利技术的一种具体实例,基于改进包络测试的高效误差可控网格简化方法,包括:
[0010]步骤1:对所有面片生成误差包络多面体,形成集合B,并对集合B构建稀疏网格加速结构;
[0011]步骤2:使用Qslim选出一条待折叠边e,将与e相邻的面片集合设为D,
[0012]步骤3:基于稀疏网格快速查找包络体集合B中与集合D的面片相交的包络体,将其集合定义为B


[0013]步骤4:计算出B

中裁剪平面与集合D中三角面片的交线,从而实现降维的覆盖测试,若B

中的包络体完全包含面片D,则可以对边e进行折叠;
[0014]步骤5:循环执行上述步骤,直至没有边可以进行折叠为止。
[0015]进一步地,步骤1的具体步骤如下:
[0016]步骤1.1:定义预设误差值δ;
[0017]步骤1.2:从二维的三角网格开始向外膨胀δ的距离。
[0018]进一步地,步骤2的具体步骤如下:
[0019]步骤2.1:基于二次误差度量(QEM)计算模型各个网格顶点的二次误差(QE),网格顶点的QE是该点到其领域所有三角面片的距离平方和;
[0020]步骤2.2:计算模型各个网格边的QE,模型面片网格边的QE是其两端顶点QE之和;
[0021]步骤2.3:计算出所有边的QE后,找出QE最小的边作为待折叠边e。进一步地,步骤3的具体步骤如下:
[0022]步骤3.1:基于三维空间网格(是立方体网格,不是三维模型的三角网格)对所有包络体的信息进行保存,每个立方体网格保存了占用此网格空间的所有包络体的索引值(ID),使用的是一种基于链表结构的稀疏网格保存方法,只有在三维空间网格被占用时才会为其构造节点,根据式(1)定义三维空间网格尺寸s:
[0023]s=avg({l
i
|l
i
=max(b
i
.x,b
i
.y,b
i
.z),i=1,2,......,n})
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0024]其中b
i
为模型第i个网格的AABB包围盒,n表示模型网格总数,x、y、z表示包围盒沿x、y、z方向的长度,l
i
表示包围盒最长的棱长。
[0025]步骤3.2:并找出若待折叠边e被折叠后会影响到的所有三角网格,定义此集合为D。
[0026]步骤3.3:遍历D中的元素,记为f,根据f的AABB包围盒的坐标范围算出其所覆盖的三维空间网格;
[0027]步骤3.4:对f记录其覆盖的三维空间网格所索引的包络体ID并去重,定义包络体集合为B

,若f没有被B

完全覆盖,则不进行折叠;
[0028]进一步地,步骤4的具体步骤如下:
[0029]步骤4.1:计算出步骤3的B

中裁剪平面与集合D中三角面片的交线,为避免增加不必要的求交计算,只在用到某一包络体时才对其进行求交计算,并保存交线方程的参数:
[0030]a'x2+b'y2+c'<0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0031]步骤4.2:从而实现降维的覆盖测试,若B

中的包络体完全包含面片D,则可以对边e进行折叠。
[0032]步骤4.3:在求交线时可以将对面片顶点包络测试的过程进一步简化,假设一个网格面片的三个顶点的坐标分别为p1,p2,p3,定义面片上任意一点为p,因此:
[0033]p=u(p2‑
p1)+v(p3‑
p1)+p1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0034]其中u和v为0到1之间的标量,可构成uv坐标系,计算三角面片与凸多面体上任一平面的交线:
[0035][0036]其中A、B、C、D均为定义凸多面体上某一平面的常数,A、B、C组成了凸多面体上某一平面的法向量,D可视作定义平面所处位置的附加约束。在uv坐标系中,包含测试中的C1类点分别转化为(0,0),(0,1),(1,0),这三个点与直线的方向判别只需要检验c',b'+c'与a'+c'的符号即可,其中a'、b'、c'为式(5)中直线方程的系数。
[0037]本专利技术的有益效果是:
[0038]本专利技术采用误差包络体有效控制了简化模型的误差,并且基于稀疏网格查找和降维覆盖测试实现了更高的简化效率。
附图说明
[0039]图1为本专利技术的简化方法流程示意图;
[0040]图2为凸多面体包络体的构建方法示意图;内部为模型中的三角面片,外本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于改进包络测试的高效误差可控网格简化方法,其特征在于,包括如下步骤:步骤1:对于原始模型的网格,对所有面片生成误差包络多面体,形成集合B,并对集合B构建稀疏网格加速结构;步骤2:使用Qslim选出一条待折叠边e,将与e相邻的面片集合设为D,步骤3:基于稀疏网格快速查找包络体集合B中与集合D的面片相交的包络体,将其集合定义为B

;步骤4:计算出B

中裁剪平面与集合D中三角面片的交线,从而实现降维的覆盖测试,若B

中的包络体完全包含面片D,则可以对边e进行折叠;步骤5:循环执行步骤2

4,直至没有边可以进行折叠为止。2.如权利要求1所述的一种基于改进包络测试的高效误差可控网格简化方法,其特征在于,步骤1中采用误差包络多面体进行简化误差控制,生成所述误差包络多面体需要先定义误差值δ,然后对面片从二维的网格开始向外膨胀δ的距离。3.如权利要求1所述的一种基于改进包络测试的高效误差可控网格简化方法,其特征在于,步骤2中采用Qslim选择每次折叠的待折叠边,方法是找出模型面片中二次误差QE最小的边作为待折叠边,模型面片中边的二次误差QE是其两端顶点二次误差QE之和,模型面片中顶点的二次误差QE是从该点到其领域所有三角面片的距离平方和。4.如权利要求1所述的一种基于改进包络测试的高效误差可控网格简化方法,其特征在于,步骤3中基于稀疏网格采用直接索引的方式进行包络体筛选,具体是基于三维空间网格即立方体网格对所有包络体的信息进行保存,每个网格保存了占用此网格空间的所有包络体的索引值:利用基于链表结构的稀疏网格对包络体信息进行保存,只有在三维空间网格被占用时才会为其构造节点,根据式(1)定义三维空间网格尺寸s:s=avg({l
i
|l
i
=max(b
i
.x,b
i
.y,b
i
.z),i=1,2,......,n})
ꢀꢀꢀꢀꢀꢀ
(1)其中b
i
为模型第i个网格的AABB包围盒,n表示模型网格总数,x、y、z表示包围盒沿x、y、z方向的长度,l
...

【专利技术属性】
技术研发人员:王进厉圣杰王鹏陆国栋
申请(专利权)人:浙江钱塘机器人及智能装备研究有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1