场景可见性数据的生成方法、场景加载方法及装置与流程
- 国知局
- 2024-07-11 16:20:51
本技术涉及计算机,特别涉及一种场景可见性数据的生成方法、场景加载方法及装置。
背景技术:
1、随着计算机技术的发展,玩游戏已成为一种广泛的娱乐方式。在一些无缝大世界游戏中,通常终端会基于用户控制的虚拟对象每一帧在虚拟世界中的位置,仅加载该虚拟世界中一部分位于该虚拟对象周边的场景区域。
2、然而,由于虚拟对象周边可能会存在多个场景区域,这些场景区域总体的场景数据会对终端带来较大负担,消耗较多游戏应用的运行内存,场景实时加载效率低,影响终端的处理性能。
技术实现思路
1、本技术实施例提供了一种场景可见性数据的生成方法、场景加载方法及装置,能够降低实时加载的场景区域的数量,以降低对游戏应用运行内存的消耗,从而提升场景实时加载效率,优化终端的处理性能。该技术方案如下:
2、一方面,提供了一种场景可见性数据的生成方法,所述方法包括:
3、对虚拟世界的多个可见性检测分区中的任一可见性检测分区,从所述虚拟世界的多个场景区域中,确定所述可见性检测分区的至少一个关联区域;
4、对所述至少一个关联区域进行烘焙,得到所述至少一个关联区域的遮挡裁剪数据,所述遮挡裁剪数据指示位于所述关联区域中虚拟对象的可见性;
5、对所述可见性检测分区中的任一可见性检测单元,基于所述至少一个关联区域的遮挡裁剪数据,生成所述可见性检测单元对所述至少一个关联区域的单元可见性数据,所述单元可见性数据指示所述关联区域对所述可见性检测单元是否全局可见;
6、基于各个所述可见性检测单元的单元可见性数据,获取所述可见性检测分区的场景可见性数据。
7、一方面,提供了一种基于场景可见性数据的场景加载方法,所述方法包括:
8、基于虚拟世界中的被控虚拟对象所处的位置,确定所述虚拟世界中的至少一个待加载区域;
9、访问所述被控虚拟对象所在的目标检测单元所属的可见性检测分区的场景可见性数据,以得到所述目标检测单元对所述可见性检测分区的至少一个关联区域的单元可见性数据,所述单元可见性数据指示所述关联区域对所述目标检测单元是否全局可见;
10、基于所述单元可见性数据,确定所述至少一个待加载区域对所述被控虚拟对象的可见性;
11、从所述至少一个待加载区域中,剔除所述单元可见性数据中指示对所述被控虚拟对象不可见的待加载区域。
12、一方面,提供了一种场景可见性数据的生成装置,所述装置包括:
13、确定模块,用于对虚拟世界的多个可见性检测分区中的任一可见性检测分区,从所述虚拟世界的多个场景区域中,确定所述可见性检测分区的至少一个关联区域;
14、烘焙模块,用于对所述至少一个关联区域进行烘焙,得到所述至少一个关联区域的遮挡裁剪数据,所述遮挡裁剪数据指示位于所述关联区域中虚拟对象的可见性;
15、生成模块,用于对所述可见性检测分区中的任一可见性检测单元,基于所述至少一个关联区域的遮挡裁剪数据,生成所述可见性检测单元对所述至少一个关联区域的单元可见性数据,所述单元可见性数据指示所述关联区域对所述可见性检测单元是否全局可见;
16、获取模块,用于基于各个所述可见性检测单元的单元可见性数据,获取所述可见性检测分区的场景可见性数据。
17、在一些实施例中,所述生成模块包括:
18、确定单元,用于对任一所述关联区域,确定所述关联区域的起始索引值和终止索引值;
19、查询单元,用于从所述遮挡裁剪数据中,查询索引值位于所述起始索引值与所述终止索引值之间的每个虚拟对象的可见性;
20、配置单元,用于基于查询得到的各个虚拟对象的可见性,配置所述可见性检测单元对所述关联区域的可见性;
21、生成单元,用于基于所述可见性检测单元对各个关联区域的可见性,生成所述单元可见性数据。
22、在一些实施例中,所述确定单元用于:
23、将所述关联区域在所述遮挡裁剪数据中的偏移补偿量确定为所述起始索引值;
24、将所述关联区域的下一关联区域在所述遮挡裁剪数据中的偏移补偿量确定为所述终止索引值。
25、在一些实施例中,所述遮挡裁剪数据中的每个比特位记录一个虚拟对象的可见性,所述比特位与索引值一一对应;所述查询单元用于:
26、对所述遮挡裁剪数据,从所述起始索引值所指示的起始比特位开始,遍历每个比特位中记录的虚拟对象的可见性,直到遍历至所述终止索引值所指示的终止比特位。
27、在一些实施例中,所述配置单元用于:
28、在查询得到的各个虚拟对象的可见性均指示不可见的情况下,将所述关联区域的可见性配置为不可见;
29、在查询得到的任一虚拟对象的可见性指示可见的情况下,将所述关联区域的可见性配置为可见。
30、在一些实施例中,所述生成单元用于:
31、为所述可见性检测单元配置初始化的单元可见性数据,所述单元可见性数据中的每个比特位记录一个关联区域的可见性,每个比特位的索引值为所述比特位所记录的关联区域的区域标识;
32、在所述单元可见性数据中,基于每个关联区域的可见性,对所述关联区域的区域标识所指示的比特位进行赋值。
33、在一些实施例中,所述确定模块用于:
34、对任一所述场景区域,基于所述场景区域的场景类别,确定所述场景类别的加载距离;
35、基于所述加载距离,对所述可见性检测分区的包围盒范围进行扩张,得到第一包围盒范围;
36、在所述第一包围盒范围与所述场景区域的第二包围盒范围相交的情况下,将所述场景区域确定为一个所述关联区域。
37、在一些实施例中,所述获取模块用于:
38、将各个所述可见性检测单元的单元可见性数据合并,得到所述可见性检测分区的场景可见性数据,将所述场景可见性数据与所述可见性检测分区进行关联存储。
39、一方面,提供了一种基于场景可见性数据的场景加载装置,所述装置包括:
40、区域确定模块,用于基于虚拟世界中的被控虚拟对象所处的位置,确定所述虚拟世界中的至少一个待加载区域;
41、访问模块,用于访问所述被控虚拟对象所在的目标检测单元所属的可见性检测分区的场景可见性数据,以得到所述目标检测单元对所述可见性检测分区的至少一个关联区域的单元可见性数据,所述单元可见性数据指示所述关联区域对所述目标检测单元是否全局可见;
42、可见性确定模块,用于基于所述单元可见性数据,确定所述至少一个待加载区域对所述被控虚拟对象的可见性;
43、剔除模块,用于从所述至少一个待加载区域中,剔除所述单元可见性数据中指示对所述被控虚拟对象不可见的待加载区域。
44、在一些实施例中,所述可见性确定模块用于:
45、对任一所述待加载区域,以所述待加载区域的区域标识为索引值,在所述单元可见性数据中查询所述索引值指示的比特位,得到所述待加载区域对所述被控虚拟对象的可见性。
46、一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的场景可见性数据的生成方法或基于场景可见性数据的场景加载方法。
47、一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现如上述任一种可能实现方式的场景可见性数据的生成方法或基于场景可见性数据的场景加载方法。
48、一方面,提供一种计算机程序产品,所述计算机程序产品包括一条或多条计算机程序,所述一条或多条计算机程序存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条计算机程序,所述一个或多个处理器执行所述一条或多条计算机程序,使得计算机设备能够执行上述任一种可能实施方式的场景可见性数据的生成方法或基于场景可见性数据的场景加载方法。
49、本技术实施例提供的技术方案带来的有益效果至少包括:
50、通过对虚拟世界中的可见性检测分区即pvs关卡,仅对该pvs关卡的关联区域进行局部烘培,即可得到用于进行可见性判定的遮挡裁剪数据即oc数据,并利用oc数据来判断该pvs关卡中每个pvs单元对每个关联区域的可见性,进一步生成该pvs关卡总体的场景可见性数据,这样使得场景可见性数据能够记录pvs关卡的每个关联区域对每个pvs单元的可见性,从而通过场景可见性数据能够方便地判断出来pvs关卡的每个关联区域对任意pvs单元的可见性,以便于决策虚拟对象在处于pvs单元时无需加载周边的哪些场景区域,基于pvs技术提供了对周边场景区域的筛选方式,从而基于生成的场景可见性数据,降低场景流式加卸载技术中需要实时加载的场景区域数量,极大提升场景实时加载效率,降低游戏应用对终端运行内存的消耗,从而改善终端的处理性能。
本文地址:https://www.jishuxx.com/zhuanli/20240615/78762.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表