CN112691381A - 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 - Google Patents
虚拟场景的渲染方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112691381A CN112691381A CN202110041268.XA CN202110041268A CN112691381A CN 112691381 A CN112691381 A CN 112691381A CN 202110041268 A CN202110041268 A CN 202110041268A CN 112691381 A CN112691381 A CN 112691381A
- Authority
- CN
- China
- Prior art keywords
- grid
- grids
- area
- virtual
- virtual scene
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种虚拟场景的渲染方法、装置、设备及计算机可读存储介质;方法包括:获取虚拟场景的地图,并基于所述地图确定所述虚拟场景中供虚拟对象移动的移动区域;对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格;确定所述多个栅格中栅格间的相对可见性关系;当所述虚拟对象在所述移动区域中移动时,获取所述虚拟对象所处的位置,以及所述位置对应的栅格;基于所述相对可见性关系,确定与所述位置对应的栅格为相对可见关系的目标栅格,并对所述目标栅格对应的虚拟场景进行渲染。通过本申请,能够有效降低终端设备性能消耗,进而提升了虚拟场景人机交互的实时性。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种虚拟场景的渲染方法、装置、设备及计算机可读存储介质。
背景技术
在虚拟场景应用中往往存在大量的虚拟物体,若对所有的虚拟物体都进行渲染,势必会消耗大量的终端设备性能,尤其随着虚拟场景制作的逐渐增大,虚拟场景中的虚拟物体(如游戏元素与内容)急剧增多,在终端设备性能尚未得到大幅提升的情况下,若不对虚拟场景的渲染性能进行优化,则大多终端设备将无法支持虚拟场景的正常运行。
相关技术中,为了对虚拟场景的渲染性能进行优化,采用对不在相机范围内的虚拟物体进行遮挡剔除的方式;但此种方式仍对处于相机范围内但与相机为相对不可见关系的虚拟物体进行渲染,导致终端设备不必要的性能消耗和响应延迟,影响了虚拟场景中人机交互的实时性。
发明内容
本申请实施例提供一种虚拟场景的渲染方法、装置、设备及计算机可读存储介质,能够有效降低终端设备的性能消耗,进而提升了虚拟场景人机交互的实时性。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟场景的渲染方法,包括:
获取虚拟场景的地图,并基于所述地图确定所述虚拟场景中供虚拟对象移动的移动区域;
对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格;
确定所述多个栅格中栅格间的相对可见性关系;
当所述虚拟对象在所述移动区域中移动时,获取所述虚拟对象所处的位置,以及所述位置对应的栅格;
基于所述相对可见性关系,确定与所述位置对应的栅格为相对可见关系的目标栅格,并对所述目标栅格对应的虚拟场景进行渲染。
本申请实施例提供一种虚拟场景的渲染装置,包括:
第一获取模块,用于获取虚拟场景的地图,并基于所述地图确定所述虚拟场景中供虚拟对象移动的移动区域;
划分模块,用于对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格;
确定模块,用于确定所述多个栅格中栅格间的相对可见性关系;
第二获取模块,用于当所述虚拟对象在所述移动区域中移动时,获取所述虚拟对象所处的位置,以及所述位置对应的栅格;
渲染模块,用于基于所述相对可见性关系,确定与所述位置对应的栅格为相对可见关系的目标栅格,并对所述目标栅格对应的虚拟场景进行渲染。
上述方案中,所述第一获取模块,还用于确定所述地图包括的至少两个区域;
分别获取各所述区域的区域功能,并确定区域功能为供虚拟对象进行移动的区域为目标区域;
将所述虚拟场景中与所述目标区域相对应的区域,确定为所述移动区域。
上述方案中,所述划分模块,还用于获取所述地图中与所述移动区域相对应的区域的大小;
基于所述地图中与所述移动区域相对应的区域的大小,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
上述方案中,所述划分模块,还用于获取所述移动区域中的虚拟物体的物体大小;
基于所述虚拟物体的物体大小,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
上述方案中,所述划分模块,还用于当所述虚拟对象的数量为至少两个时,获取至少两个所述虚拟对象在所述移动区域中的历史平均移动速度;
基于所述历史平均移动速度,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
上述方案中,所述确定模块,还用于分别对所述多个栅格中的每个栅格执行以下操作:
从所述多个栅格中选择一个栅格作为检测栅格;
获取所述多个栅格与所述移动区域对应的检测模型的映射关系;
基于所述映射关系,分别获取所述移动区域的检测模型中,从所述检测栅格对应的位置向四周发射的多条检测射线,以及所述多个栅格中除所述检测栅格之外的其他栅格对应的检测框;
对所述检测射线与所述检测框进行交叉检测,并当所述检测射线与所述检测框存在交叉时,确定存在交叉的检测框对应的栅格与所述检测栅格为相对可见关系。
上述方案中,所述装置还包括:
剔除模块,还用于当所述检测射线与所述检测框未存在交叉时,确定与所述检测射线未存在交叉的检测框对应的栅格与所述检测栅格为相对不可见关系,并
将与所述检测栅格为相对不可见关系的栅格对应的虚拟场景进行遮挡剔除。
上述方案中,所述渲染模块,还用于当所述相对可见性关系表征所述位置对应的栅格与所述至少两个栅格中目标栅格为相对可见关系时,确定所述目标栅格为与所述位置对应的栅格为相对可见关系的目标栅格。
上述方案中,所述确定模块,还用于确定所述虚拟场景中每个栅格对应的潜在可见物体,并将所述多个栅格对应的潜在可见物体进行汇集得到潜在可见物体集;
基于所述潜在可见物体集,构建所述虚拟场景中的潜在可见物体集的层级视图;
其中,所述层级视图,用于表征所述虚拟场景中各个栅格对应的潜在可见物体,以及潜在可见物体之间的相对位置关系;
基于所述层级视图,确定所述多个栅格中栅格间的相对可见性关系。
上述方案中,所述渲染模块,还用于基于所述相对可见性关系,确定所述层级视图中各个栅格对应的虚拟场景的渲染层级;
将所述渲染层级达到目标层级的栅格,确定为与所述位置对应的栅格为相对可见关系的目标栅格。
上述方案中,所述确定模块,还用于对相邻栅格对应的潜在可见物体进行相似度匹配,得到相似度值;
当所述相似度值超过相似度阈值时,对相应的相邻栅格对应的潜在可见物体进行合并,并将合并后的潜在可见物体进行汇集得到潜在可见物体集。
上述方案中,所述对所述目标栅格对应的虚拟场景进行渲染之后,所述装置还包括:
视角调整模块,用于在所述虚拟对象在所述移动区域中移动的过程中,当虚拟场景的视角发生变化时,获取变化后的目标视角;
确定所述目标视角下,与所述虚拟对象当前位置对应的栅格为相对可见关系的栅格;
对与所述虚拟对象当前位置对应的栅格为相对可见关系的栅格对应的虚拟场景进行渲染。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的虚拟场景的渲染方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的虚拟场景的渲染方法。
本申请实施例具有以下有益效果:
获取虚拟场景的地图,并基于地图确定虚拟场景中供虚拟对象移动的移动区域;对地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格;确定多个栅格中栅格间的相对可见性关系;当虚拟对象在移动区域中移动时,获取虚拟对象所处的位置,以及虚拟对象所处的位置对应的栅格;基于相对可见性关系,确定与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格,并对目标栅格对应的虚拟场景进行渲染;如此,在虚拟对象在移动区域移动的过程中,仅对与虚拟对象为相对可见关系的虚拟场景进行渲染,相较于仍对相对不可见关系的虚拟场景进行渲染而言,有效降低了终端设备渲染虚拟场景导致的性能消耗,进而提升了虚拟场景人机交互的实时性。
附图说明
图1为本申请实施例提供的虚拟场景的渲染系统100的一个可选的架构示意图;
图2为本申请实施例提供的电子设备500的一个可选的结构示意图;
图3为本申请实施例提供的虚拟场景的渲染方法的流程示意图;
图4为本申请实施例提供的地图区域界面示意图;
图5为本申请实施例提供的栅格划分示意图;
图6为本申请实施例提供的交叉检测示意图;
图7为本申请实施例提供的虚拟物体设置界面示意图;
图8为本申请实施例提供的渲染界面示意图;
图9为本申请实施例提供的虚拟场景的渲染方法流程示意图;
图10为本申请实施例提供的渲染设置界面示意图;
图11为本申请实施例提供的渲染设置界面示意图;
图12为本申请实施例提供的虚拟场景的渲染装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二…”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二…”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
参见图1,图1为本申请实施例提供的虚拟场景的渲染系统100的一个可选的架构示意图,为实现支撑一个示例性应用,终端(示例性地,示出终端400-1和终端400-2)通过网络300连接服务器200,网络可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器等。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、摄像机等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在一些实施例中,终端用于获取虚拟场景的地图,并基于虚拟场景的地图确定虚拟场景中供虚拟对象移动的移动区域;对虚拟场景的地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格;确定多个栅格中栅格间的相对可见性关系;当虚拟对象在移动区域中移动时,获取虚拟对象所处的位置,以及虚拟对象所处的位置对应的栅格;基于相对可见性关系,确定与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格,并对目标栅格对应的虚拟场景进行渲染;如此,所有操作均通过终端来执行,能够保证虚拟场景输出的实时性。
在一些实施例中,终端用于获取虚拟场景的地图,并将获取的虚拟场景的地图发送至服务器200;服务器200基于虚拟场景的地图确定虚拟场景中供虚拟对象移动的移动区域;对虚拟场景的地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格;确定多个栅格中栅格间的相对可见性关系;当虚拟对象在移动区域中移动时,终端还用于获取虚拟对象所处的位置,并将获取的虚拟对象所处的位置发送至服务器200;服务器200还用于获取虚拟对象所处的位置对应的栅格;基于相对可见性关系,确定与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格,并对目标栅格对应的虚拟场景进行渲染,并将渲染后的虚拟场景发送至终端进行呈现;如此,栅格划分、相对可见性关系的确定及虚拟场景的渲染处理均在服务器侧执行,可以减少终端功耗,保证终端高效运行。
参见图2,图2为本申请实施例提供的电子设备500的一个可选的结构示意图,在实际应用中,电子设备500可以为图1中的终端400-1、终端400-2或服务器200,以电子设备为图1所示的终端400-1或400-2为例,对实施本申请实施例的虚拟场景的渲染方法的电子设备进行说明。图2所示的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的虚拟场景的渲染装置可以采用软件方式实现,图2示出了存储在存储器550中的虚拟场景的渲染装置555,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块5551、划分模块5552、确定模块5553、第二获取模块5554和渲染模块5555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的虚拟场景的渲染装置可以采用硬件方式实现,作为示例,本申请实施例提供的虚拟场景的渲染装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟场景的渲染方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Pro grammable Gate Array)或其他电子元件。
将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的虚拟场景的渲染方法。
参见图3,图3为本申请实施例提供的虚拟场景的渲染方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
步骤101,终端获取虚拟场景的地图,并基于虚拟场景的地图确定虚拟场景中供虚拟对象移动的移动区域。
在实际应用中,虚拟场景的地图由多个区域构成,每个区域类型、功能可相同也可不同,如区域可为山岭、公路、洞穴或建筑物等虚拟物体所处的区域,虚拟对象可在某些移动区域,如公路或建筑物间的空闲区域中移动,但不可在某些非移动区域,如无法进入的封闭空间、建筑物墙壁或死角中移动。通过虚拟场景的地图可确定虚拟场景中哪些区域能够供虚拟对象移动。
在一些实施例中,终端可通过如下方式基于虚拟场景的地图确定虚拟场景中供虚拟对象移动的移动区域:确定虚拟场景的地图包括的至少两个区域;分别获取各区域的区域功能,并确定区域功能为供虚拟对象进行移动的区域为目标区域;将虚拟场景中与目标区域相对应的区域,确定为供虚拟对象移动的移动区域。
这里,不同的区域所具备的区域功能可相同也可不同,例如有些区域具备供虚拟对象进行移动的功能,有些区域仅具备供虚拟对象观赏的功能,等等,虚拟对象无法在仅供虚拟对象观赏的功能的区域中进行移动。在实际应用中,各个区域的区域功能可用相应的功能标识来表征,也即基于功能标识即可确定相应的区域具备何种区域功能。
参见图4,图4为本申请实施例提供的地图区域界面示意图,图4中,非移动区域401为固定建筑物这一虚拟物体对应的区域,虚拟对象无法在非移动区域中进行移动;移动区域402为地图中被长方体碰撞边框包裹着的区域所对应的区域,虚拟对象可在移动区域402中移动。
步骤102,对虚拟场景的地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格。
这里,在对虚拟场景进行渲染之前,将虚拟场景的地图中与供虚拟对象移动的移动区域相对应的区域进行栅格划分,以基于多个栅格中栅格间的相对可见性关系,确定栅格对应的虚拟场景中的虚拟物体的相对可见性关系。
在一些实施例中,终端可通过如下方式对地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格:
获取虚拟场景的地图中与移动区域相对应的区域的大小;基于虚拟场景的地图中与移动区域相对应的区域的大小,确定用于栅格划分的栅格的大小;依据栅格的大小,对地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格。
这里,在实际应用中,首先获取虚拟场景的移动区域的大小,然后基于地图的展示精度或展示比例,获取地图中与移动区域相对应的区域的大小,例如,虚拟场景的区域与对应的地图展示比例为100:1,若移动区域对应的区域大小为10000*10000,则地图中与移动区域相对应的区域的大小为100*100,基于该区域的大小,确定用于栅格划分的栅格的大小,假设确定的栅格的大小为5*5,则按照5*5大小的栅格对地图中大小为100*100的区域进行划分,得到移动区域对应的20个栅格。
在一些实施例中,终端可通过如下方式对地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格:
获取移动区域中的虚拟物体的物体大小;基于虚拟物体的物体大小,确定用于栅格划分的栅格的大小;依据栅格的大小,对地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格。
这里,考虑到虚拟场景中虚拟物体的物体大小,为了保证虚拟物体的物体大小与栅格的大小之间的平衡,在进行栅格划分时,所划分的栅格不应比虚拟物体小太多,同时,同一个虚拟物体也不应占用太多栅格,即不应让同一虚拟物体跨越许多栅格,在对虚拟场景建模时,可将较大的虚拟物体分解成较小的多个虚拟物体来改善剔除,也可将较小的虚拟物体合并在一起以减少绘制调用,并且只要它们都属于同一个栅格,就不会影响遮挡剔除。
在一些实施例中,终端可通过如下方式对地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格:
当虚拟对象的数量为至少两个时,获取至少两个虚拟对象在移动区域中的历史平均移动速度;基于历史平均移动速度,确定用于栅格划分的栅格的大小;依据栅格的大小,对地图中与移动区域相对应的区域进行栅格划分,得到移动区域对应的多个栅格。
这里,地图中的栅格所对应的虚拟场景中区域的大小,与虚拟对象在虚拟场景中的历史平均移动速度呈正相关关系,例如,历史平均移动速度越小,途经相同大小的栅格所对应移动区域的途经时间越长,对地图中与移动区域相对应的区域的栅格划分越紧密;历史平均移动速度越大,途经相同大小的栅格所对应移动区域所需时间越短,对地图中与移动区域相对应的区域的栅格划分越稀疏,如此,栅格的划分与虚拟对象的移动速度相关,有利于对虚拟对象是否可见的虚拟物体进行检测,进而,渲染的虚拟场景的范围广度与玩家的速度相适配,避免不必要的计算消耗,符合用户需求。
参见图5,图5为本申请实施例提供的栅格划分示意图,通过上述方式,将虚拟场景的地图中与移动区域相对应的区域划分为若干个栅格,每个栅格的大小形状都一致,进而可确定若干个栅格间的相对可见性关系。
步骤103,确定多个栅格中栅格间的相对可见性关系。
其中,相对可见性关系包括相对可见关系和相对不可见关系,若两个栅格间为相对可见关系,则表征两个栅格对应的虚拟物体之间是相对可见关系,即这两个栅格对应的虚拟物体之间并没有相互遮挡;若两个栅格间为相对不可见关系,则表征两个栅格对应的虚拟物体之间是相对不可见关系,即这两个栅格对应的虚拟物体被遮挡。
在一些实施例中,终端可通过如下方式确定多个栅格中栅格间的相对可见性关系:
分别对多个栅格中的每个栅格执行以下操作:从多个栅格中选择一个栅格作为检测栅格;获取多个栅格与移动区域对应的检测模型的映射关系;基于映射关系,分别获取移动区域的检测模型中,从检测栅格对应的位置向四周发射的多条检测射线,以及多个栅格中除检测栅格之外的其他栅格对应的检测框;对检测射线与检测框进行交叉检测,并当检测射线与检测框存在交叉时,确定存在交叉的检测框对应的栅格与检测栅格为相对可见关系。
在实际实施时,可通过绑定在检测模型中的检测栅格上的相机组件,获取从检测栅格对应的位置(如栅格中心或栅格中所选择的其他发射点)向四周发射多条检测射线,每个栅格上挂有对应的检测框(如碰撞盒子、碰撞球、碰撞模型等碰撞器组件),该检测框位于栅格的周围,即检测框包裹着栅格对应的虚拟场景,其中,虚拟场景由相应的虚拟物体组成,虚拟物体的数量可以为一个或多个,虚拟物体的类型可相同也可不同,如虚拟对象、虚拟道路、虚拟建筑物等。通过检测射线与检测框之间的交叉检测结果,确定栅格之间的相对可见性关系,当交叉检测结果表征检测射线与某检测框存在交叉时,表征检测栅格与该检测框对应的栅格之间为相对可见关系,当交叉检测结果表征检测射线与某检测框不存在交叉时,表征检测栅格与该检测框对应的栅格之间为相对不可见关系。
参见图6,图6为本申请实施例提供的交叉检测示意图,如图6所示,在检测模型中,从每个栅格向四周发射多条检测射线,以检测该栅格与其他栅格间的相对可见性关系,以此类推,可检测每个栅格与其他栅格之间的相对可见性关系。
在一些实施例中,当检测射线与检测框未存在交叉时,确定与检测射线未存在交叉的检测框对应的栅格与检测栅格为相对不可见关系,并将与检测栅格为相对不可见关系的栅格对应的虚拟场景进行遮挡剔除,即控制禁止对不存在交叉的检测框对应的栅格对应的虚拟场景进行渲染。
步骤104,当虚拟对象在移动区域中移动时,获取虚拟对象所处的位置,以及虚拟对象所处的位置对应的栅格。
这里,当虚拟对象在移动区域中移动的过程中,实时获取虚拟对象所处的位置,并根据地图中的栅格与虚拟场景中移动区域的映射关系,获取虚拟对象所处的位置对应的栅格。
步骤105,基于多个栅格中栅格间的相对可见性关系,确定与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格,并对目标栅格对应的虚拟场景进行渲染。
在一些实施例中,终端可通过如下方式基于多个栅格中栅格间的相对可见性关系,确定与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格:
当相对可见性关系表征位置对应的栅格与至少两个栅格中目标栅格为相对可见关系时,确定目标栅格为与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格。
在一些实施例中,终端可通过如下方式确定多个栅格中栅格间的相对可见性关系:确定虚拟场景中每个栅格对应的潜在可见物体,并将多个栅格对应的潜在可见物体进行汇集得到潜在可见物体集;基于潜在可见物体集,构建虚拟场景中的潜在可见物体集的层级视图;其中,层级视图,用于表征虚拟场景中各个栅格对应的潜在可见物体,以及潜在可见物体之间的相对位置关系;基于层级视图,确定多个栅格中栅格间的相对可见性关系。
这里,潜在可见物体为相对于处于某一栅格中的虚拟对象而言,虚拟对象可以看见的虚拟物体,在实际实施时,在对栅格间的相对可见性关系进行检测时,从多个栅格中选择一个栅格作为检测栅格,并在虚拟场景中的每个虚拟物体外侧设置检测框,即检测框包裹着虚拟物体,通过绑定在检测栅格上的相机组件,获取从检测栅格对应的位置(如栅格中心或栅格中所选择的其他发射点)向四周发射多条检测射线,通过检测射线与检测框之间的交叉检测结果,确定虚拟物体是否为潜在可见物体,当交叉检测结果表征检测射线与某检测框存在交叉时,表征相对于检测栅格而言,该检测框对应的虚拟物体为潜在可见物体;当交叉检测结果表征检测射线与某检测框不存在交叉时,表征相对于检测栅格而言,该检测框对应的虚拟物体为非潜在可见物体。
由于虚拟场景中的虚拟物体与栅格存在对应关系,则可基于虚拟物体与栅格之间的对应关系,获取潜在可见物体和非潜在可见物体分别对应的栅格,相应的,即可确定:检测栅格与潜在可见物体对应的栅格为相对可见关系,检测栅格与非潜在可见物体对应的栅格为相对不可见关系。
在一些实施例中,终端可基于相对可见性关系,确定与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格:基于相对可见性关系,确定层级视图中各个栅格对应的虚拟场景的渲染层级;将渲染层级达到目标层级的栅格,确定为与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格。
这里,基于栅格之间的相对可见性关系,可确定相应的栅格对应的虚拟场景的渲染层级,如与虚拟对象当前所处位置对应的栅格为相对可见关系的栅格对应的虚拟场景的渲染层级高于,与虚拟对象当前所处位置对应的栅格为相对不可见关系的栅格对应的虚拟场景的渲染层级,将渲染层级达到目标层级的栅格,确定为与虚拟对象所处的位置对应的栅格为相对可见关系的目标栅格。
在一些实施例中,终端可通过如下方式将多个栅格对应的潜在可见物体进行汇集得到潜在可见物体集:对相邻栅格对应的潜在可见物体进行相似度匹配,得到相似度值;当相似度值超过相似度阈值时,对相应的相邻栅格对应的潜在可见物体进行合并,并将合并后的潜在可见物体进行汇集得到潜在可见物体集;如此,对相应的相邻栅格对应的潜在可见物体进行合并,能够减少最终的包含潜在可见物体的相关数据的生成文件的大小,进而避免生成文件占用大量的存储空间。
在一些实施例中,在运行虚拟场景前,还可将虚拟场景中的虚拟物体(通常为静止的静态虚拟物体)及栅格进行对应存储,构建虚拟物体的层级视图,其中,层级视图用于表征虚拟物体(如静态虚拟物体)与栅格间的对应关系,如某虚拟物体位于哪个栅格;通过上述交叉检测方式确定多个栅格中栅格间的相对可见性关系,并将栅格间的相对可见性关系进行存储。在运行虚拟场景的过程中,可基于各个栅格之间的相对可见性关系,确定与虚拟对象当前所处的位置对应栅格为可见关系的栅格有哪些,与虚拟对象当前所处的位置对应栅格为不可见关系的栅格有哪些,由于虚拟物体与栅格具有对应关系,基于此,即可确定,相对于虚拟对象当前所处的位置对应的栅格而言,哪些虚拟物体是可见的,哪些虚拟是不可见的,进而对相对于虚拟对象可见的虚拟物体进行渲染,而对相对于虚拟对象不可见的虚拟物体进行遮挡剔除不渲染。
在一些实施例中,终端对目标栅格对应的虚拟场景进行渲染之后,还可在虚拟对象在移动区域中移动的过程中,当虚拟场景的视角发生变化时,获取变化后的目标视角;确定目标视角下,与虚拟对象当前位置对应的栅格为相对可见关系的栅格;对与虚拟对象当前位置对应的栅格为相对可见关系的栅格对应的虚拟场景进行渲染。
在实际应用中,不同的视角所呈现的虚拟场景画面是不同的,也即在不同视角下,虚拟对象所能够看见的虚拟物体是不同的,或者,与虚拟对象当前位置对应的栅格为相对可见关系的栅格是不同的。这里,在虚拟对象在虚拟场景中移动的过程中,根据虚拟场景的视角变化,实时获取变化后的目标视角,并确定目标视角下,与虚拟对象当前位置对应的栅格为相对可见关系的栅格,并对可见的栅格对应的虚拟场景进行渲染,能够满足视角变化需求,符合实际情况,能够提高用户体验。
通过上述方式,在虚拟对象于移动区域移动的过程中,仅对与虚拟对象为相对可见关系的虚拟场景进行渲染,相较于仍对相对不可见关系的虚拟场景进行渲染而言,有效降低了终端设备渲染虚拟场景导致的性能消耗,进而提升了虚拟场景人机交互的实时性。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。以虚拟场景为射击游戏为例进行说明。
在实际实施时,终端基于游戏的地图确定游戏场景中供虚拟对象移动的移动区域;然后将移动区域划分为多个栅格,并计算每个栅格之间的相对可见性关系,由于该部分需要进行大量计算,因此需要在游戏运行前进行计算,并生成配置并保存下来,如此,在游戏运行时,终端可直接使用已经获取得到的相对可见性关系,并对可见的虚拟物体进行渲染。另外,本申请所涉及的虚拟物体可为静态虚拟物体,由于静态虚拟物体一旦场景确定后就不会随着游戏的运行而变动,因此,参见图7,图7为本申请实施例提供的虚拟物体设置界面示意图,终端可先获取所有的静态虚拟物体的相关数据,并对所有静态虚拟物体的相关数据进行缓存。
然后,计算每个栅格之间的相对可见性关系,假设移动区域被划分为N个栅格,则从第一个栅格开始遍历两两栅格之间是否可见,如第1个栅格可见的栅格有第5、10、15、16、17和18号栅格,则除在这些栅格之外的虚拟物件都是不可见的,当游戏玩家(即虚拟对象)处于游戏场景中的第1个栅格这一位置时,终端自动仅对与该栅格为可见关系的栅格(即第5、10、15、16、17和18号栅格)对应的虚拟物体进行渲染,而将与该栅格为不可见关系的栅格(除第5、10、15、16、17和18号栅格之外的栅格)对应的区域进行遮挡剔除,即禁止对与该栅格为不可见关系的栅格对应的虚拟物体进行渲染。
参见图8,图8为本申请实施例提供的渲染界面示意图,当游戏玩家处于虚拟场景的目标位置801时,对相对于目标位置801可见的虚拟物体进行渲染,而对相对于目标位置801不可见的虚拟物体802~806不执行渲染操作。
基于上述说明,接下来参见图9,图9为本申请实施例提供的虚拟场景的渲染方法流程示意图,将结合图9继续对本申请实施例提供的虚拟场景的渲染方法说明。
步骤201,终端确定栅格之间的相对可见性关系。
这里,在玩家进入游戏前,也即在游戏运行前,终端首先确定地图中的多个栅格之间是否可见。
在实际实施时,终端首先需对游戏地图中的移动区域进行栅格划分,具体可根据移动区域的大小,将移动区域划分为多个栅格,每个栅格的大小形状都是一样的,例如,假设移动区域为100*100,每个栅格大小为5*5,则可将移动区域划分为20个栅格;然后,从多个栅格中选择一个栅格作为检测栅格,获取从检测栅格对应的位置向四周发射的多条检测射线,以及多个栅格中除检测栅格之外的其他栅格对应的检测框,对检测射线与检测框进行交叉检测,并当检测射线与检测框存在交叉时,确定存在交叉的检测框对应的栅格与检测栅格为相对可见关系,当检测射线与某检测框不存在交叉时,表征检测栅格与该检测框对应的栅格之间为相对不可见关系,如此,即可统计得到该检测栅格与其他栅格之间是否可见,以此类推,将其他栅格作为检测栅格,执行上述检测操作,即可检测每个栅格与其他栅格之间的相对可见性关系,并将相对可见性关系进行存储,以备后续运行游戏时,基于相对可见性关系对可见的虚拟场景进行渲染。
在实际应用中,在存储静态虚拟物体时,可将静态虚拟物体与该静态物体所处的栅格进行对应存储,构建虚拟物体的层级视图,其中,层级视图用于表征各个栅格对应的潜在可见物体(即静态虚拟物体),以及潜在可见物体之间的相对位置关系,基于层级视图,确定多个栅格中栅格间的相对可见性关系。
步骤202,判断玩家是否进入游戏。
当玩家进入游戏时,执行步骤203;当玩家未进入游戏时,执行步骤201。
步骤203,获取玩家当前所处的位置,以及玩家当前所处的位置对应的栅格。
步骤204,遍历每一个静态虚拟物体。
步骤205,判断遍历的静态虚拟物体与玩家所处的位置对应的栅格是否可见。
由于在玩家进入游戏之前,已将各个栅格之间的相对可见性关系进行存储,这里,可基于各个栅格之间的相对可见性关系,确定与玩家当前所处的位置对应栅格为可见关系的栅格有哪些,与玩家当前所处的位置对应栅格为不可见关系的栅格有哪些,由于静态虚拟物体与栅格具有对应关系,基于此,即可确定静态虚拟物体与玩家所处的位置对应的栅格是否可见。
例如,假设玩家当前所处的位置对应第1号栅格,基于栅格之间的可见性关系得知,与第1号栅格为可见关系的栅格分别为:第5、10、15、16、17和18号栅格,那么可知,处于第5、10、15、16、17和18号栅格中的静态虚拟物体与第1号栅格是可见的,而处于除第5、10、15、16、17或18号栅格之外的栅格中的静态虚拟物体与第1号栅格是不可见的。
当遍历的静态虚拟物体与玩家所处的位置对应的栅格可见时,执行步骤206,否则,当遍历的静态虚拟物体与玩家所处的位置对应的栅格不可见时,执行步骤208。
步骤206,对可见的静态虚拟物体进行渲染。
承接上述示例,当玩家当前处于第1号栅格对应的位置时,对处于第5、10、15、16、17和18号栅格中的静态虚拟物体进行渲染。
步骤207,判断玩家是否在虚拟场景中移动。
这里,当玩家在虚拟场景中移动时,执行步骤203;否则,当玩家在虚拟场景中移动时,结束流程。
步骤208,对不可见的静态虚拟物体进行遮挡剔除。
承接上述示例,当玩家当前处于第1号栅格对应的位置时,禁止对处于除第5、10、15、16、17或18号栅格之外的栅格中的静态虚拟物体进行渲染。
通过上述可知,本申请构建虚拟物体的层级视图,即在游戏场景中将虚拟物体分为很多种层级,而相机只会渲染被设定好的目标层级的虚拟物体。
参见图10-11,图10-11为本申请实施例提供的渲染设置界面示意图,图10中,设置好的目标层级的虚拟物体相对于玩家当前所处位置对应的栅格是可见的,因此对设置好的目标层级的虚拟物体进行渲染;图11中,对相对于玩家当前所处位置对应的栅格为不可见的遮挡剔除层进行遮挡剔除,即禁止对处于遮挡剔除层中的不可见虚拟物体进行渲染。
通过上述方式,在玩家在游戏场景的运行过程中,动态的对玩家不可见的虚拟物件或者元素等虚拟场景进行遮挡剔除,即动态的禁止对不可见的虚拟场景进行渲染,能够极大的降低性能消耗,进而提升了游戏的实时性。
下面继续说明本申请实施例提供的虚拟场景的渲染装置555的实施为软件模块的示例性结构,在一些实施例中,参见图12,图12为本申请实施例提供的虚拟场景的渲染装置的结构示意图,存储在存储器550的虚拟场景的渲染装置555中的软件模块可以包括:
第一获取模块5551,用于获取虚拟场景的地图,并基于所述地图确定所述虚拟场景中供虚拟对象移动的移动区域;
划分模块5552,用于对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格;
确定模块5553,用于确定所述多个栅格中栅格间的相对可见性关系;
第二获取模块5554,用于当所述虚拟对象在所述移动区域中移动时,获取所述虚拟对象所处的位置,以及所述位置对应的栅格;
渲染模块5555,用于基于所述相对可见性关系,确定与所述位置对应的栅格为相对可见关系的目标栅格,并对所述目标栅格对应的虚拟场景进行渲染。
在一些实施例中,所述第一获取模块,还用于确定所述地图包括的至少两个区域;
分别获取各所述区域的区域功能,并确定区域功能为供虚拟对象进行移动的区域为目标区域;
将所述虚拟场景中与所述目标区域相对应的区域,确定为所述移动区域。
在一些实施例中,所述划分模块,还用于获取所述地图中与所述移动区域相对应的区域的大小;
基于所述地图中与所述移动区域相对应的区域的大小,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
在一些实施例中,所述划分模块,还用于获取所述移动区域中的虚拟物体的物体大小;
基于所述虚拟物体的物体大小,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
在一些实施例中,所述划分模块,还用于当所述虚拟对象的数量为至少两个时,获取至少两个所述虚拟对象在所述移动区域中的历史平均移动速度;
基于所述历史平均移动速度,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
在一些实施例中,所述确定模块,还用于分别对所述多个栅格中的每个栅格执行以下操作:
从所述多个栅格中选择一个栅格作为检测栅格;
获取所述多个栅格与所述移动区域对应的检测模型的映射关系;
基于所述映射关系,分别获取所述移动区域的检测模型中,从所述检测栅格对应的位置向四周发射的多条检测射线,以及所述多个栅格中除所述检测栅格之外的其他栅格对应的检测框;
对所述检测射线与所述检测框进行交叉检测,并当所述检测射线与所述检测框存在交叉时,确定存在交叉的检测框对应的栅格与所述检测栅格为相对可见关系。
在一些实施例中,所述装置还包括:
剔除模块,还用于当所述检测射线与所述检测框未存在交叉时,确定与所述检测射线未存在交叉的检测框对应的栅格与所述检测栅格为相对不可见关系,并
将与所述检测栅格为相对不可见关系的栅格对应的虚拟场景进行遮挡剔除。
在一些实施例中,所述渲染模块,还用于当所述相对可见性关系表征所述位置对应的栅格与所述至少两个栅格中目标栅格为相对可见关系时,确定所述目标栅格为与所述位置对应的栅格为相对可见关系的目标栅格。
在一些实施例中,所述确定模块,还用于确定所述虚拟场景中每个栅格对应的潜在可见物体,并将所述多个栅格对应的潜在可见物体进行汇集得到潜在可见物体集;
基于所述潜在可见物体集,构建所述虚拟场景中的潜在可见物体集的层级视图;
其中,所述层级视图,用于表征所述虚拟场景中各个栅格对应的潜在可见物体,以及潜在可见物体之间的相对位置关系;
基于所述层级视图,确定所述多个栅格中栅格间的相对可见性关系。
在一些实施例中,所述渲染模块,还用于基于所述相对可见性关系,确定所述层级视图中各个栅格对应的虚拟场景的渲染层级;
将所述渲染层级达到目标层级的栅格,确定为与所述位置对应的栅格为相对可见关系的目标栅格。
在一些实施例中,所述确定模块,还用于对相邻栅格对应的潜在可见物体进行相似度匹配,得到相似度值;
当所述相似度值超过相似度阈值时,对相应的相邻栅格对应的潜在可见物体进行合并,并将合并后的潜在可见物体进行汇集得到潜在可见物体集。
在一些实施例中,所述对所述目标栅格对应的虚拟场景进行渲染之后,所述装置还包括:
视角调整模块,用于在所述虚拟对象在所述移动区域中移动的过程中,当虚拟场景的视角发生变化时,获取变化后的目标视角;
确定所述目标视角下,与所述虚拟对象当前位置对应的栅格为相对可见关系的栅格;
对与所述虚拟对象当前位置对应的栅格为相对可见关系的栅格对应的虚拟场景进行渲染。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的虚拟场景的渲染方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的虚拟场景的渲染方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种虚拟场景的渲染方法,其特征在于,所述方法包括:
获取虚拟场景的地图,并基于所述地图确定所述虚拟场景中供虚拟对象移动的移动区域;
对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格;
确定所述多个栅格中栅格间的相对可见性关系;
当所述虚拟对象在所述移动区域中移动时,获取所述虚拟对象所处的位置,以及所述位置对应的栅格;
基于所述相对可见性关系,确定与所述位置对应的栅格为相对可见关系的目标栅格,并对所述目标栅格对应的虚拟场景进行渲染。
2.如权利要求1所述的方法,其特征在于,所述基于所述地图确定所述虚拟场景中供虚拟对象移动的移动区域,包括:
确定所述地图包括的至少两个区域;
分别获取各所述区域的区域功能,并确定区域功能为供虚拟对象进行移动的区域为目标区域;
将所述虚拟场景中与所述目标区域相对应的区域,确定为所述移动区域。
3.如权利要求1所述的方法,其特征在于,所述对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格,包括:
获取所述地图中与所述移动区域相对应的区域的大小;
基于所述地图中与所述移动区域相对应的区域的大小,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
4.如权利要求1所述的方法,其特征在于,所述对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格,包括:
获取所述移动区域中的虚拟物体的物体大小;
基于所述虚拟物体的物体大小,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
5.如权利要求1所述的方法,其特征在于,所述对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格,包括:
当所述虚拟对象的数量为至少两个时,获取至少两个所述虚拟对象在所述移动区域中的历史平均移动速度;
基于所述历史平均移动速度,确定用于栅格划分的栅格的大小;
依据所述栅格的大小,对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格。
6.如权利要求1所述的方法,其特征在于,所述确定所述多个栅格中栅格间的相对可见性关系,包括:
分别对所述多个栅格中的每个栅格执行以下操作:
从所述多个栅格中选择一个栅格作为检测栅格;
获取所述多个栅格与所述移动区域对应的检测模型的映射关系;
基于所述映射关系,分别获取所述移动区域的检测模型中,从所述检测栅格向四周发射的多条检测射线,以及所述多个栅格中除所述检测栅格之外的其他栅格对应的检测框;
对所述检测射线与所述检测框进行交叉检测,并当所述检测射线与所述检测框存在交叉时,确定存在交叉的检测框对应的栅格与所述检测栅格为相对可见关系。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
当所述检测射线与所述检测框未存在交叉时,确定与所述检测射线未存在交叉的检测框对应的栅格与所述检测栅格为相对不可见关系,并
将与所述检测栅格为相对不可见关系的栅格对应的虚拟场景进行遮挡剔除。
8.如权利要求1所述的方法,其特征在于,所述基于所述相对可见性关系,确定与所述位置对应的栅格为相对可见关系的目标栅格,包括:
当所述相对可见性关系表征所述位置对应的栅格与所述至少两个栅格中目标栅格为相对可见关系时,确定所述目标栅格为与所述位置对应的栅格为相对可见关系的目标栅格。
9.如权利要求1所述的方法,其特征在于,所述确定所述多个栅格中栅格间的相对可见性关系,包括:
确定所述虚拟场景中每个栅格对应的潜在可见物体,并将所述多个栅格对应的潜在可见物体进行汇集得到潜在可见物体集;
基于所述潜在可见物体集,构建所述虚拟场景中的潜在可见物体集的层级视图;
其中,所述层级视图,用于表征所述虚拟场景中各个栅格对应的潜在可见物体,以及潜在可见物体之间的相对位置关系;
基于所述层级视图,确定所述多个栅格中栅格间的相对可见性关系。
10.如权利要求9所述的方法,其特征在于,所述基于所述相对可见性关系,确定与所述位置对应的栅格为相对可见关系的目标栅格,包括:
基于所述相对可见性关系,确定所述层级视图中各个栅格对应的虚拟场景的渲染层级;
将所述渲染层级达到目标层级的栅格,确定为与所述位置对应的栅格为相对可见关系的目标栅格。
11.如权利要求9所述的方法,其特征在于,所述将所述多个栅格对应的潜在可见物体进行汇集得到潜在可见物体集,包括:
对相邻栅格对应的潜在可见物体进行相似度匹配,得到相似度值;
当所述相似度值超过相似度阈值时,对相应的相邻栅格对应的潜在可见物体进行合并,并将合并后的潜在可见物体进行汇集得到潜在可见物体集。
12.如权利要求1所述的方法,其特征在于,所述对所述目标栅格对应的虚拟场景进行渲染之后,所述方法还包括:
在所述虚拟对象在所述移动区域中移动的过程中,当虚拟场景的视角发生变化时,获取变化后的目标视角;
确定所述目标视角下,与所述虚拟对象当前位置对应的栅格为相对可见关系的栅格;
对与所述虚拟对象当前位置对应的栅格为相对可见关系的栅格对应的虚拟场景进行渲染。
13.一种虚拟场景的渲染装置,其特征在于,所述装置包括:
第一获取模块,用于获取虚拟场景的地图,并基于所述地图确定所述虚拟场景中供虚拟对象移动的移动区域;
划分模块,用于对所述地图中与所述移动区域相对应的区域进行栅格划分,得到所述移动区域对应的多个栅格;
确定模块,用于确定所述多个栅格中栅格间的相对可见性关系;
第二获取模块,用于当所述虚拟对象在所述移动区域中移动时,获取所述虚拟对象所处的位置,以及所述位置对应的栅格;
渲染模块,用于基于所述相对可见性关系,确定与所述位置对应的栅格为相对可见关系的目标栅格,并对所述目标栅格对应的虚拟场景进行渲染。
14.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的虚拟场景的渲染方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至12任一项所述的虚拟场景的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110041268.XA CN112691381B (zh) | 2021-01-13 | 2021-01-13 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110041268.XA CN112691381B (zh) | 2021-01-13 | 2021-01-13 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112691381A true CN112691381A (zh) | 2021-04-23 |
CN112691381B CN112691381B (zh) | 2022-07-29 |
Family
ID=75514319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110041268.XA Active CN112691381B (zh) | 2021-01-13 | 2021-01-13 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112691381B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113487694A (zh) * | 2021-06-29 | 2021-10-08 | 阿波罗智能技术(北京)有限公司 | 电子地图渲染方法、装置、设备及自动驾驶车辆 |
CN114627221A (zh) * | 2021-12-08 | 2022-06-14 | 北京蓝亚盒子科技有限公司 | 一种场景渲染方法、装置及运行器、可读存储介质 |
CN115445188A (zh) * | 2022-09-29 | 2022-12-09 | 深圳市手心游戏科技有限公司 | 一种网格地图元素的优化方法和装置 |
WO2023093231A1 (zh) * | 2021-11-26 | 2023-06-01 | 腾讯科技(深圳)有限公司 | 一种基于虚拟场景的渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
WO2024067204A1 (zh) * | 2022-09-30 | 2024-04-04 | 腾讯科技(深圳)有限公司 | 场景画面的渲染方法、装置、设备、存储介质及程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574360B1 (en) * | 1999-07-23 | 2003-06-03 | International Business Machines Corp. | Accelerated occlusion culling using directional discretized occluders and system therefore |
CN108257103A (zh) * | 2018-01-25 | 2018-07-06 | 网易(杭州)网络有限公司 | 游戏场景的遮挡剔除方法、装置、处理器及终端 |
CN111080798A (zh) * | 2019-12-02 | 2020-04-28 | 网易(杭州)网络有限公司 | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 |
-
2021
- 2021-01-13 CN CN202110041268.XA patent/CN112691381B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574360B1 (en) * | 1999-07-23 | 2003-06-03 | International Business Machines Corp. | Accelerated occlusion culling using directional discretized occluders and system therefore |
CN108257103A (zh) * | 2018-01-25 | 2018-07-06 | 网易(杭州)网络有限公司 | 游戏场景的遮挡剔除方法、装置、处理器及终端 |
CN111080798A (zh) * | 2019-12-02 | 2020-04-28 | 网易(杭州)网络有限公司 | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113487694A (zh) * | 2021-06-29 | 2021-10-08 | 阿波罗智能技术(北京)有限公司 | 电子地图渲染方法、装置、设备及自动驾驶车辆 |
CN113487694B (zh) * | 2021-06-29 | 2024-04-05 | 阿波罗智能技术(北京)有限公司 | 电子地图渲染方法、装置、设备及自动驾驶车辆 |
WO2023093231A1 (zh) * | 2021-11-26 | 2023-06-01 | 腾讯科技(深圳)有限公司 | 一种基于虚拟场景的渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
CN114627221A (zh) * | 2021-12-08 | 2022-06-14 | 北京蓝亚盒子科技有限公司 | 一种场景渲染方法、装置及运行器、可读存储介质 |
CN114627221B (zh) * | 2021-12-08 | 2023-11-10 | 北京蓝亚盒子科技有限公司 | 一种场景渲染方法、装置及运行器、可读存储介质 |
CN115445188A (zh) * | 2022-09-29 | 2022-12-09 | 深圳市手心游戏科技有限公司 | 一种网格地图元素的优化方法和装置 |
CN115445188B (zh) * | 2022-09-29 | 2023-09-29 | 深圳市手心游戏科技有限公司 | 一种网格地图元素的优化方法和装置 |
WO2024067204A1 (zh) * | 2022-09-30 | 2024-04-04 | 腾讯科技(深圳)有限公司 | 场景画面的渲染方法、装置、设备、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN112691381B (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112691381B (zh) | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 | |
WO2022089189A1 (zh) | 互动剧情跳转方法、互动剧情界面显示方法、装置及设备 | |
US20170221242A1 (en) | Automatic overdraw reduction before rendering | |
CN110559659A (zh) | 一种游戏渲染优化方法、装置、设备及存储介质 | |
CN112711458B (zh) | 虚拟场景中道具资源的展示方法及装置 | |
CN112947969B (zh) | 一种页面离屏渲染方法、装置、设备和可读介质 | |
CN113082702B (zh) | 游戏的显示控制方法及电子设备 | |
US20230410433A1 (en) | Navigation mesh update | |
WO2014117559A1 (en) | 3d-rendering method and device for logical window | |
CN115309516A (zh) | 一种应用生命周期的检测方法、装置及计算机设备 | |
CN112783660B (zh) | 虚拟场景中的资源处理方法、装置及电子设备 | |
CN114130022A (zh) | 虚拟场景的画面显示方法、装置、设备、介质及程序产品 | |
CN109857259B (zh) | 碰撞体交互控制方法及装置、电子设备和存储介质 | |
CN117742677A (zh) | 一种xr引擎低代码开发平台 | |
CN111589111B (zh) | 图像处理方法、装置、设备和存储介质 | |
CN111009025B (zh) | 骨骼动画的隐藏方法、装置及设备 | |
CN116563503A (zh) | 基于增强现实的显示处理方法、装置、设备及存储介质 | |
CN114028807A (zh) | 虚拟对象的渲染方法、装置、设备及可读存储介质 | |
CN114518815A (zh) | 建筑图纸的显示方法、装置、设备、介质及程序产品 | |
CN112348955A (zh) | 一种物体渲染方法 | |
CN112169313A (zh) | 一种游戏界面的设置方法及装置、电子设备、存储介质 | |
CN116302296B (zh) | 资源预览方法、装置、设备及存储介质 | |
US20240033625A1 (en) | Rendering method and apparatus for virtual scene, electronic device, computer-readable storage medium, and computer program product | |
US20240257459A1 (en) | Virtual weather interaction method and apparatus, electronic device, computer-readable storage medium, and computer program product | |
CN116912431B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40042601 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |