一种场景对象的遮挡裁剪方法、装置、终端及存储介质与流程
- 国知局
- 2024-07-11 15:59:26
本技术涉及计算机,特别涉及一种场景对象的遮挡裁剪方法、装置、终端及存储介质。
背景技术:
1、随着计算机技术的发展,玩游戏已成为一种广泛的娱乐方式。然而,在对游戏的虚拟空间进行场景构建时,有些场景对象会被遮挡或者不在虚拟对象的可视范围内,可以通过遮挡裁剪将这些场景对象丢弃,来降低构建场景对象的开销。因此,如何对场景对象进行遮挡裁剪,是需要解决的问题。
2、目前,通常是由工作人员手动在虚拟空间中设置可见性单元的范围,然后基于可见性单元确定虚拟空间中各个可见性单元的可见性集,该可见性集用于存放对应的可见性单元中各个场景对象的可见性结果,即场景对象在该可见性单元中是否可见。然后,离线构建虚拟空间中全部可见性单元的可见性集。在游戏运行时一次性将可见性集全部加载到内存中。最后,基于相机所在的可见性单元的可见性集来进行对场景对象的遮挡裁剪。
3、上述技术方案存在的问题是,一次性将可见性集全部加载到内存中,导致内存占用较高。
技术实现思路
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、本技术实施例提供了一种场景对象的遮挡裁剪方法,通过将虚拟空间划分为多个场景区域,然后确定各个场景区域的相关区域,使得在对虚拟空间进行场景构建时,可以按照场景区域分别进行构建,进而在基于对象显示指令显示虚拟空间中的场景对象时,可以只加载目标对象所在的目标场景区域中各个可见性单元的可见性集,而不需要加载虚拟空间中所有可见性单元的可见性集,减少了加载可见性信息时内存占用量,提高了场景对象的加载效率。
本文地址:https://www.jishuxx.com/zhuanli/20240615/76892.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表