本发明涉及虚拟现实,尤其涉及一种数字孪生模型的轻量化方法。
背景技术:
1、在数字孪生场景中,场景内模型与摄像机之间的空间关系均会不断地发生变化,特别是在进行细节操作的时候,大部分的模型是处于摄像机视锥体之外的。这些模型不具有可见性,其数据即为冗余的数据,但是同样会提交给渲染引擎进行渲染,额外消耗计算机渲染资源。这种情况下亟需对场景模型进行可见性分析,从而实现减少需要渲染的模型数据量。
2、现有技术中利用opengl检查遮挡和视锥干涉,而利用opengl进行场景剔除操作,查询时间相对较长,严重影响场景运行帧率,所以需要在此基础上进行进一步的优化,以在对不可见区域的剔除的前提下,实现场景的高帧率运行,实现数字孪生场景的轻量化。
技术实现思路
1、针对上述不足,本发明所要解决的技术问题是:提供一种数字孪生模型的轻量化方法,采用改进的折叠方法构建哈希表,将哈希表与二叉树进行结合,构建场景最优层次包围盒树,通过遍历bvh树判断模型与视锥是否发生干涉,进行不可见模型剔除,以实现数字孪生模型的轻量化。
2、为解决上述技术问题,本发明的技术方案是:
3、一种数字孪生模型的轻量化方法,包括以下步骤:
4、步骤一、预处理:
5、导入整个场景所有模型,并构建每个模型的包围盒;
6、将每个模型包围盒的信息存储在哈希表中,构建哈希表;
7、基于哈希表中包围盒,采用自底向上的方式,构造所有模型的层次包围盒树;
8、再将每个模型包围盒作为层次包围盒树的叶子节点,采用预设定合并规则将叶子节点进行归并作为父节点,直到得到bvh树的根节点,完成bvh树的构建;
9、步骤二、检测:
10、遍历层次包围盒树,判断包围盒是否与视锥发生干涉;
11、如果没有发生干涉,则将模型剔除;
12、如果发生干涉,则判断节点是否为叶子节点;
13、若是,将叶子节点对应的数据放到哈希表中进行查找,并保留;
14、若否,继续依据新的父节点进行遍历操作;
15、步骤三、轻量化:
16、通过模型留存和剔除操作,得到轻量化的孪生体模型。
17、优选方式为,步骤一中所述并构建每个模型的包围盒;将每个模型包围盒的信息存储在哈希表中步骤,具体为:
18、确定整个场景的坐标原点,以世界坐标为主;
19、获取每个模型的中心点的世界坐标值(x,y,z);
20、计算每个模型到场景原点的距离
21、将d作为索引值,构建哈希表。
22、优选方式为,预设定合并规则为:
23、将场景中的模型按照d值进行递增排序;
24、比较每个模型的d值;
25、将在预设定范围内的d值进行归并;
26、完成bvh树的构建。
27、优选方式为,所述步骤一中的导入整个场景所有模型,并构建每个模型的包围盒,具体为:导入整个场景所有模型,并构建每个模型的aabb包围盒。
28、优选方式为,所述步骤一中的将每个模型包围盒的信息存储在哈希表中,构建哈希表,具体为:将每个模型包围盒的信息存储在哈希表中,采用折叠法构建哈希表。
29、采用上述技术方案后,本发明的有益效果是:
30、由于本发明的数字孪生模型的轻量化方法,主要包括预处理、检测和轻量化步骤,其中预处理包括导入整个场景所有模型,并构建每个模型的包围盒;将每个模型包围盒的信息存储在哈希表中,且采用折叠法构建哈希表;基于哈希表中模型包围盒,采用自底向上的方式,构造所有模型的层次包围盒树;再将每个模型包围盒作为层次包围盒树的叶子节点,采用预设定合并规则将叶子节点进行归并作为父节点,直到得到bvh树的根节点,完成bvh树的构建;其中检测:遍历层次包围盒树,判断包围盒是否与视锥发生干涉;如果没有发生干涉,则将模型剔除;如果发生干涉,则判断节点是否为叶子节点;若是,将叶子节点对应的数据放到哈希表中进行查找,并保留;若否,继续依据新的父节点进行遍历操作;其中轻量化通过模型留存和剔除操作,得到轻量化的孪生体模型。
31、可见,本发明采用改进的折叠方法构建哈希表,将哈希表与二叉树进行结合,构建场景最优层次包围盒树,即最优bvh树,通过遍历bvh树判断模型与视锥是否发生干涉,进行不可见模型剔除,以实现数字孪生模型的轻量化。
1.一种数字孪生模型的轻量化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的数字孪生模型的轻量化方法,其特征在于,步骤一中所述并构建每个模型的包围盒;将每个模型包围盒的信息存储在哈希表中步骤,具体为:
3.根据权利要求2所述的数字孪生模型的轻量化方法,其特征在于,预设定合并规则为:
4.根据权利要求1所述的数字孪生模型的轻量化方法,其特征在于,所述步骤一中的导入整个场景所有模型,并构建每个模型的包围盒,具体为:
5.根据权利要求1所述的数字孪生模型的轻量化方法,其特征在于,所述步骤一中的将每个模型包围盒的信息存储在哈希表中,构建哈希表,具体为: