System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及智慧城市,具体地说是三维端渲染的自适应细节层次模型构建方法及系统。
技术介绍
1、随着数字孪生城市和智慧城市的快速建设发展,构建城市数字底座所包括的数据量和信息量也日益庞大起来,其中占比最大的为高精度、多细节层次的建筑物三维模型。对于系统平台产品开发而言,如何高效地集成和管理海量且多源异构的三维空间数据,并实现其在系统平台中实时、高保真的可视化渲染,成为当前数字孪生城市和智慧城市行业亟待解决的一大问题。
2、由于受到浏览器与客户端设备性能的限制,在实际应用场景中平台系统对于大规模城市三维场景模型的加载与渲染效率往往低下,经常出现卡顿的现象。细节层次(levelof detail,lod)模型是一种常见的三维模型加载优化方法,但传统的细节层次模型仍然有一定的数据冗余,且三维模型在渲染过程中会出现跳变现象。
3、如何提高移动端对大规模城市三维场景模型的渲染效率和渲染质量,是需要解决的技术问题。
技术实现思路
1、本专利技术的技术任务是针对以上不足,提供三维端渲染的自适应细节层次模型构建方法及系统,来解决如何提高移动端对大规模城市三维场景模型的渲染效率和渲染质量的技术问题。
2、第一方面,本专利技术三维端渲染的自适应细节层次模型构建方法,包括如下步骤:
3、计算最大三角面片数m:根据用户端硬件设备性能,在保证三维场景渲染连续性和流畅性的前提下,获取所能达到的最大帧率和最大三角面片数m;
4、计算当前帧的三角面片数量
5、三维场景模型简化:基于最大三角面片数m以及当前帧的三角面数量n进行三维场景模型简化,如果最大三角面片m大于当前帧的三角面片数量n,执行三维场景模型渲染,如果三角面片m小于当前帧的三角面片数量n,基于以折叠价值和二次误差为约束的边折叠算法降低当前帧三角面片的数量,当最大三角面片m大于当前帧的三角面片数量n时,执行三维场景模型渲染。
6、作为优选,基于以折叠价值和二次误差为约束的边折叠算法降低当前帧三角面片的数量,包括如下步骤:
7、折叠边的确定:定义一个边的折叠价值为边长乘以该边左右相邻的弯曲程度的平均值,边的弯曲程度是通过点乘边所在两个面的法向量决定的;
8、折叠后新顶点位置的确定:根据子集法原理,以二次误差最小的条件作为新顶点的判定条件,定义顶点v的二次误差度量为顶点v到其对应的三角平面的集合p(v)的距离的平方和,计算公式如下:
9、
10、其中,q为v的二次度量矩阵,用来判断某一条边是否应当被折叠,v=[vx,vy,vz,1]t与p=[a,b,c,d]t表示一个平面ax+by+cz+d=0,对应下式:
11、
12、通过求解下式得到最小δ(v)对应的v,即为新顶点的位置:
13、
14、对边进行折叠:移去包括折叠边的两个三角形,再更新与原顶点相关的三角形,由新顶点来代替原折叠边;
15、拓扑关系的重构:更新边折叠移去的两个三角形的邻接三角形的状态,并更新顶点的相关三角形数组,重构简化后模型的拓扑关系,拓扑关系包括三角形与三角形以及顶点与三角形的拓扑关系。
16、作为优选,计算最大三角面片数m时,选取帧率值为40状态下能达到的三角面片数m。
17、作为优选,基于webgl的端渲染技术对简化后的三维场景模型进行加载与渲染。
18、第二方面,本专利技术三维端渲染的自适应细节层次模型构建系统,用于通过如第一方面任一项所述的三维端渲染的自适应细节层次模型构建方法进行自适应细节层次模型构建,所述系统包括最大三角面片数计算模块、当前帧三角面片数计算模块、三维场景模型简化模块以及三维场景模型渲染模块,
19、所述最大三角面片数计算模块用于执行如下:根据用户端硬件设备性能,在保证三维场景渲染连续性和流畅性的前提下,获取所能达到的最大帧率和最大三角面片数m;
20、所述当前帧三角面片数计算模块用于执行如下:基于webgl端渲染开发技术、计算当前摄像机位置与显示视角下三维模型的节点数,进而计算出三维图形渲染需要绘制的三角面片数量n;
21、所述三维场景模型简化模块用于执行如下:基于最大三角面片数m以及当前帧的三角面数量n进行三维场景模型简化,如果最大三角面片m大于当前帧的三角面片数量n,调用三维场景模型渲染模块,如果三角面片m小于当前帧的三角面片数量n,基于以折叠价值和二次误差为约束的边折叠算法降低当前帧三角面片的数量,当最大三角面片m大于当前帧的三角面片数量n时,调用三维场景模型渲染模块;
22、所述三维场景模型渲染模块用于执行三维场景模型渲染。
23、作为优选,所述三维场景模型简化模块用于执行如下以实现基于以折叠价值和二次误差为约束的边折叠算法降低当前帧三角面片的数量:
24、折叠边的确定:定义一个边的折叠价值为边长乘以该边左右相邻的弯曲程度的平均值,边的弯曲程度是通过点乘边所在两个面的法向量决定的;
25、折叠后新顶点位置的确定:根据子集法原理,以二次误差最小的条件作为新顶点的判定条件,定义顶点v的二次误差度量为顶点v到其对应的三角平面的集合p(v)的距离的平方和,计算公式如下:
26、
27、其中,q为v的二次度量矩阵,用来判断某一条边是否应当被折叠,v=[vx,vy,vz,1]t与p=[a,b,c,d]t表示一个平面ax+by+cz+d=0,对应下式:
28、
29、通过求解下式得到最小δ(v)对应的v,即为新顶点的位置:
30、
31、对边进行折叠:移去包括折叠边的两个三角形,再更新与原顶点相关的三角形,由新顶点来代替原折叠边;
32、拓扑关系的重构:更新边折叠移去的两个三角形的邻接三角形的状态,并更新顶点的相关三角形数组,重构简化后模型的拓扑关系,拓扑关系包括三角形与三角形以及顶点与三角形的拓扑关系。
33、作为优选,计算最大三角面片数m时,所述最大三角面片数计算模块用于选取帧率值为40状态下能达到的三角面片数m。
34、作为优选,所述三维场景模型渲染模块用于基于webgl的端渲染技术对简化后的三维场景模型进行加载与渲染。
35、本专利技术的三维端渲染的自适应细节层次模型构建方法及系统具有以下优点:
36、1、自适应的细节层次模型可以灵活根据用户端的设备性能,自主调节三维模型的渲染精度,能够有效协调三维场景渲染的真实性和实时性;
37、2、在三维场景模型的三角面片数量较多时,相比传统的细节层次模型,自适应的细节层次模型有效地减少了数据的冗余,渲染效果更加流畅,有效地避免了三维图形的跳变;
38、3、通过“折叠价值”和“二本文档来自技高网...
【技术保护点】
1.三维端渲染的自适应细节层次模型构建方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的三维端渲染的自适应细节层次模型构建方法,其特征在于,基于以折叠价值和二次误差为约束的边折叠算法降低当前帧三角面片的数量,包括如下步骤:
3.根据权利要求1所述的三维端渲染的自适应细节层次模型构建方法,其特征在于,计算最大三角面片数M时,选取帧率值为40状态下能达到的三角面片数M。
4.根据权利要求1所述的三维端渲染的自适应细节层次模型构建方法,其特征在于,基于webGL的端渲染技术对简化后的三维场景模型进行加载与渲染。
5.三维端渲染的自适应细节层次模型构建系统,其特征在于,用于通过如权利求1-4任一项所述的三维端渲染的自适应细节层次模型构建方法进行自适应细节层次模型构建,所述系统包括最大三角面片数计算模块、当前帧三角面片数计算模块、三维场景模型简化模块以及三维场景模型渲染模块,
6.根据权利要求5所述的三维端渲染的自适应细节层次模型构建系统,其特征在于,所述三维场景模型简化模块用于执行如下以实现基于以折叠价值和二次误差为约束
7.根据权利要求5所述的三维端渲染的自适应细节层次模型构建系统,其特征在于,计算最大三角面片数M时,所述最大三角面片数计算模块用于选取帧率值为40状态下能达到的三角面片数M。
8.根据权利要求5所述的三维端渲染的自适应细节层次模型构建系统,其特征在于,所述三维场景模型渲染模块用于基于webGL的端渲染技术对简化后的三维场景模型进行加载与渲染。
...【技术特征摘要】
1.三维端渲染的自适应细节层次模型构建方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的三维端渲染的自适应细节层次模型构建方法,其特征在于,基于以折叠价值和二次误差为约束的边折叠算法降低当前帧三角面片的数量,包括如下步骤:
3.根据权利要求1所述的三维端渲染的自适应细节层次模型构建方法,其特征在于,计算最大三角面片数m时,选取帧率值为40状态下能达到的三角面片数m。
4.根据权利要求1所述的三维端渲染的自适应细节层次模型构建方法,其特征在于,基于webgl的端渲染技术对简化后的三维场景模型进行加载与渲染。
5.三维端渲染的自适应细节层次模型构建系统,其特征在于,用于通过如权利求1-4任一项所述的三维端渲染的自适应细节层次模型构建方法进行自...
【专利技术属性】
技术研发人员:刘晓宇,柴青,崔维康,高国强,蒋萌,
申请(专利权)人:山东浪潮新基建科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。