System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种虚幻引擎中静态网格体的组织与调度方法。
技术介绍
1、在虚幻引擎(unreal engine)的开放世界场景创作中,常常需要处理上万乃至十几万个静态网格体,这样的数量如果未经组织就一次性加载,特别是在虚幻引擎中还需计算静态体的实时光照效果,以gpu的算力难以流畅加载渲染。为了解决这个问题,虚幻引擎专门推出了世界分区技术(world partition),这是其当前的最新技术。该技术利用二维网格对整个场景进行细致划分,并以视角的投影为中心,检索并判断加载周边的网格。
2、现有技术存在以下缺点:
3、(1)虚幻引擎虽然提供了世界分区技术,但是其自动化程度低,需要根据静态网格体的大小,人为判断确定分区网格的大小。并且检索时只考虑二维,视角在垂直方向上不管距离分区网格多远,都会对对该分区网格内的静态网格体进行加载,会造成资源极度浪费。只加载视点周围的静态网格体,没有考虑网格体所占的屏幕像素大小,即使有些远处的网格体所占的屏幕像素很大,也会被剔除。
4、(2)在专利公告号为cn113628331b中,根据网格模型的面积和纹理图片的分辨率得到当前节点对应级别的当前节点误差,然后根据节点误差和最大屏幕误差的关系,来决定瓦片的加载。但是此方法只是对于倾斜模型进行了加载,并未对开放世界场景中的静态网格体进行处置。
5、(3)在专利公告号为cn117372599b中,对于bim模型进行组织时需要计算每个模型几何度量误差,并且在加载调度时需要遍历比较模型屏幕误差和最大屏
技术实现思路
1、本专利技术的目的在于提供一种虚幻引擎中静态网格体的组织与调度方法,解决现有虚幻引擎中静态网格体组织自动化程度低,组织与调度策略不合理的技术问题。
2、通过设计一种瓦片几何度量误差的计算方式,并提出了几何度量误差达成率的概念,以此为基础对静态网格体进行简化与组织,提高自动化水平。使用了绑定集合的方式对静态网格体进行组织与调度,提升视觉体验并减少遍历时间。
3、为了实现上述目的,本专利技术采用的技术方案如下:
4、一种虚幻引擎中静态网格体的组织与调度方法,所述方法包括如下步骤:
5、步骤1:先根据拓扑信息,将虚幻引擎指定关卡的静态网格体分为室内和室外两类;
6、步骤2:生成整个场景的四叉树瓦片金字塔结构,计算每个四叉树瓦片的几何度量误差;
7、步骤3:提出几何度量误差达成率的概念,并使用误差达成率控制qem算法对模型进行简化得到目标层级模型;
8、步骤4:将层级细节模型关联到目标四叉树瓦片得到绑定集合;
9、步骤5:对室内的静态网格体进行有序组织;
10、步骤6:对室内外静态网格体进行调度。
11、进一步地,步骤1中,静态网格体分为室内和室外两类的具体过程为:
12、遍历指定关卡下的静态网格体数据,判断每个静态网格体中拓扑信息属性,如果包含表示建筑的拓扑属性,则判断是否包含室内外属性,如果缺少需要人为补充,接着,重新遍历静态网格体,如果包含室内的标识信息,则将归属于室内的静态网格体的uasset资产移动到保存室内的静态网格体的内存中,取反,将剩下的静态网格体的uasset资产移动到保存室外的静态网格体的内存中。
13、进一步地,步骤2中,计算每个四叉树瓦片的几何度量误差的具体过程为:
14、获取包含所有静态网格体的包围盒,通过递归的方式对包围盒进行均等划分,即子包围盒的长宽为父包围盒长宽的一半,包围盒的高为包含区域内所有静态网格体包围盒的高,从上到下建立四叉树的金字塔结构,当四叉树深度为6时停止划分,利用复合morton码编制瓦片的唯一编号,其中左边起首位为四叉树深度,后面为行列号表示计算得出的morton码,其中复合morton码的计算如公式(1):
15、
16、式中:l表示四叉树深度,&表示两个数值的组合,i为四叉树深度为l时瓦片行号,j为四叉树深度为l时瓦片列号,0≤i,j≤2n,k为正整数,表示向下取整,mod()表示取余;
17、根据已知参数,由屏幕误差与几何误差的关系以及距离权重,使用公式(2)计算每个瓦片的几何度量误差gem:
18、
19、式中:gem表示编号为m瓦片的几何度量误差,msse为设置的最大屏幕误差,fov表示渲染时摄像机的视场角大小,h为显示器高度,sm表示编号为m瓦片的长宽高的乘积,ds为深度为0时的瓦片平行于远近裁剪面,瓦片刚好同时被视椎体包围时,视角a到瓦片中心b的距离,s0表示四叉树深度为0时其瓦片长宽高的乘积。
20、进一步地,步骤3的具体过程为:
21、根据四叉树瓦片的几何度量误差值,从保存室外的静态网格体内存读取瓦片区域内的网格体数据,使用基于二次误差的边缘折叠简化计算静态网格体的层级细节模型,在其中使用几何度量误达成率作为边缘折叠简化率的控制量,迭代折叠得出符合瓦片几何度量误差的模型,具体步骤如下:
22、(1)从保存室外的静态网格体内存中取出文件,判断是否已经生成当前层级的细节模型,如果已经生成,遍历下一个模型,如果没有生成,使用qem算法对模型的三角网简化为原来的90%得到层级细节模型m1;
23、(2)计算简化模型和原始模型的几何度量误差ge2,具体的是计算简化前后模型的最小距离的最大值作为两个模型的几何度量误差;
24、(3)计算几何度量误差的达成率age,假如98%≤age≤100%结束;
25、
26、式中:gem表示编号为m瓦片的几何度量误差;
27、(4)当age<98%,计算何度量误差的误差率aerr=1-age,计算当前模型和原来模型的简化率sn,即当前三角网数占原三角网数的比重;
28、由公式(5)得出该在当前模型的基础上继续进行的简化率s,以此为限定条件使用qem算法对模型进行简化,然后进入步骤(2)与步骤(3);
29、
30、(5)当age>100%,计算何度量误差的误差率aerr=age-1,计算当前模型和原来模型的简化率sn,放弃此次折叠结果,然后,在上一次简化模型的基础上使用qem对模型进行简化,当简化率为s时停止进入步骤(6),否则进入步骤(2)与步骤(3):
31、
32、(6)判断是否已经指定了保存层级细节模型uasset资产的内存,如果没有开辟,则开辟内存l0,l1,l2,l3,l4,l5,l6,对应保存不同瓦片深度的层级细节模型,将结果保存到指定内存,如果已经开辟,则保存到指定内存。
33、进一步地,步骤4的具体过程为:
34、遍历瓦片,获取区域内静态网格体的命名,从内存l0,l1,l2,l3,l4,l5,l6中取出层次细节模型,在目标本文档来自技高网...
【技术保护点】
1.一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:所述方法包括如下步骤:
2.根据权利要求1所述的一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:步骤1中,静态网格体分为室内和室外两类的具体过程为:
3.根据权利要求1所述的一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:步骤2中,计算每个四叉树瓦片的几何度量误差的具体过程为:
4.根据权利要求1所述的一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:步骤3的具体过程为:
5.根据权利要求1所述的一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:步骤4的具体过程为:
6.根据权利要求1所述的一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:步骤5的具体过程为:
7.根据权利要求1所述的一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:步骤6的具体过程为:
【技术特征摘要】
1.一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:所述方法包括如下步骤:
2.根据权利要求1所述的一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:步骤1中,静态网格体分为室内和室外两类的具体过程为:
3.根据权利要求1所述的一种虚幻引擎中静态网格体的组织与调度方法,其特征在于:步骤2中,计算每个四叉树瓦片的几何度量误差的具体过程为:
4.根据权利要求1所述的...
【专利技术属性】
技术研发人员:刘润东,梅树红,雷江涛,黄永生,罗恒,罗义谈,李伟鹏,黄振,龙宽先,韦晟,
申请(专利权)人:广西壮族自治区自然资源遥感院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。