一种虚拟世界中虚拟对象的渲染方法、系统以及装置
文献发布时间:2023-06-19 10:24:22
技术领域
本申请涉及数据处理领域,尤其涉及一种虚拟世界中虚拟对象的渲染方法、系统、装置及计算机存储介质。
背景技术
随着计算机技术的不断发展,虚拟世界已经成为信息技术领域的热点之一,三维的虚拟世界越来越收到用户欢迎,目前,现有的虚拟世界中,一般是终端设备从服务器获取虚拟世界数据,然后终端对虚拟世界数据进行渲染,并根据渲染结果生成虚拟世界的图像进行展示。
现有技术提供的方案中,终端设备在对虚拟世界中的虚拟对象进行渲染时,会获取该对象所有的面的信息,然后对该虚拟对象所有的面进行渲染,全部渲染完成后生成图像进行展示,如果该三维对象的面较多或者较复杂,则计算量是非常庞大的,终端设备需要花费大量的时间进行渲染,因此需要等待较长时间才能加载出该虚拟对象,这种方法加载虚拟对象的效率较低,影响用户使用虚拟世界的体验。
发明内容
为了解决上述技术问题,本申请提供了一种虚拟世界中虚拟对象的渲染方法、系统、装置及计算机存储介质,用于提高虚拟世界中虚拟对象的加载效率。
本申请第一方面提供了一种虚拟世界中虚拟对象的渲染方法,所述方法应用于三维虚拟世界中,所述三维虚拟世界中包含有虚拟对象以及操作角色,所述方法包括:
确定所述操作角色当前在所述三维虚拟世界中的视野范围;
确定所述虚拟对象在所述三维虚拟世界中的对象位置;
根据所述对象位置以及所述视野范围对所述虚拟对象与所述操作角色建立投影关系;
根据所述投影关系确定所述虚拟对象在所述三维虚拟世界中的可视面,所述可视面为位于所述视野范围内的面;
将所述可视面拆分为多层对象进行渲染并展示。
可选的,在所述三维虚拟世界中,所述虚拟对象包含有至少一个积木块,所述根据所述投影关系确定所述虚拟对象在所述三维虚拟世界中的可视面包括:
根据所述投影关系确定所述至少一个积木块在所述三维虚拟世界中的可视面。
可选的,所述将所述可视面拆分为多层对象进行渲染并展示包括:
对所述可视面对应的积木块中的各个积木块拆分为第一层级对象;
对所述第一层级对象拆分为第二层级对象;
对所述第二层级对象拆分为第三层级对象;
对所述第一层级对象、所述第二层级对象以及所述第三层级对象进行渲染并展示;
所述第一层级对象的尺寸为512像素×512像素×512像素,所述第二层级对象的尺寸为64像素×64像素×64像素,所述第三层级对象的尺寸为1像素×1像素×1像素。
可选的,所述三维虚拟世界中配置有三维坐标系,所述确定所述虚拟对象在所述三维虚拟世界中的对象位置包括:
确定所述至少一个积木块中各个积木块在所述三维虚拟世界中的积木块三维坐标。
可选的,所述确定所述操作角色当前在所述三维虚拟世界中的视野范围包括:
确定所述操作角色当前在所述三维虚拟世界中的角色位置;
根据所述角色位置以及预设视野信息确定所述操作角色当前在所述三维虚拟世界中的视野范围,所述预设视野信息包括预设可视距离以及预设可视角度。
可选的,在所述将所述可视面拆分为多层对象进行渲染并展示之后,所述方法还包括:
确定所述虚拟对象中除所述可视面外的不可视面;
对所述不可视面进行渲染。
本申请第二方面提供了一种虚拟世界中虚拟对象的渲染系统,包括:
第一确定单元,用于确定所述操作角色当前在所述三维虚拟世界中的视野范围;
第二确定单元,用于确定所述虚拟对象在所述三维虚拟世界中的对象位置;
投影单元,用于根据所述对象位置以及所述视野范围对所述虚拟对象与所述操作角色建立投影关系;
第三确定单元,用于根据所述投影关系确定所述虚拟对象在所述三维虚拟世界中的可视面,所述可视面为位于所述视野范围内的面;
渲染单元,用于将所述可视面拆分为多层对象进行渲染并展示。
可选的,所述第三确定单元具体用于:
根据所述投影关系确定所述若干个积木块在所述三维虚拟世界中的可视面;
所述渲染单元具体用于:
对所述可视面对应的积木块中的各个积木块拆分为第一层级对象;
对所述第一层级对象拆分为第二层级对象;
对所述第二层级对象拆分为第三层级对象;
对所述第一层级对象、所述第二层级对象以及所述第三层级对象进行渲染并展示;
所述第一层级对象的尺寸为512像素×512像素×512像素,所述第二层级对象的尺寸为64像素×64像素×64像素,所述第三层级对象的尺寸为1像素×1像素×1像素。
本申请第三方面提供了一种虚拟世界中虚拟对象的渲染装置,所述装置包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述存储器保存有程序,所述处理器调用所述程序以执行第一方面以及第一方面中任一项可选的所述方法。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行第一方面以及第一方面中任一项可选的所述方法。
从以上技术方案可以看出,本申请具有以下优点:
本申请提供的虚拟世界中虚拟对象的加载方法中,终端首先根据操作角色在所述三维虚拟世界中的视野范围,根据虚拟对象的对象位置以及视野范围,对该虚拟对象与操作角色建立投影关系,确定出对于操作角色的可视面,进而对可视面进行渲染并展示,即当虚拟对象位于视野范围内时,终端只渲染虚拟对象的可视面并展示,该方法中,终端仅对该可视面进行渲染,可以减少终端的计算量,减少加载虚拟对象所需要的时间,并且,对可视面拆分为多层对象进行渲染更符合显卡的渲染规则,可以提高渲染效率。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请中虚拟世界中的虚拟对象的渲染方法的一个实施例流程示意图;
图2为本申请中虚拟世界中的虚拟对象的渲染方法的另一个实施例流程示意图;
图3为本申请中虚拟世界中的虚拟对象的渲染系统的一个实施例结构示意图;
图4为本申请中虚拟世界中的虚拟对象的渲染装置的一个实施例结构示意图。
具体实施方式
现有技术提供的方案中,终端设备在对虚拟世界中的虚拟对象进行渲染时,会获取该对象所有的面的信息,然后对该虚拟对象所有的面进行渲染,全部渲染完成后生成图像进行展示,如果该三维对象的面较多或者较复杂,则计算量是非常庞大的,终端设备需要花费大量的时间进行渲染,因此需要等待较长时间才能加载出该虚拟对象,这种方法加载虚拟对象的效率较低,影响用户使用虚拟世界的体验。
基于此,本申请提供了一种虚拟世界中虚拟对象的渲染方法,用于提高虚拟对象的渲染效率。
需要说明的是,本申请提供的虚拟世界中虚拟对象的渲染方法,可以应用于终端也可以应用于系统,还可以应用于服务器上,例如终端可以是智能手机或电脑、平板电脑、智能电视、智能手表、便携计算机终端也可以是台式计算机等固定终端。为方便阐述,本申请中以终端为执行主体进行举例说明。
请参阅图1,图1为本申请提供的虚拟世界中虚拟对象的渲染方法一个实施例流程示意图,该虚拟世界中虚拟对象的渲染方法方法包括:
101、确定操作角色当前在三维虚拟世界中的视野范围;
本申请提供的虚拟世界中虚拟对象的渲染方法应用于三维虚拟世界,该三维虚拟世界中包含有虚拟对象以及操作角色,本申请中所提及或讨论的三维虚拟世界是指具有虚拟三维特征的虚拟世界,三维虚拟世界中有各种场景以及虚拟对象,操作角色是指在三维虚拟世界中用户所控制的角色,用户可以控制该操作角色在三维虚拟世界中执行各种操作,例如移动跳跃等,操作角色有一定的视野范围,当三维虚拟世界中的某些虚拟对象在该视野范围内时,终端会加载该虚拟对象进行渲染并展示,即只有在该视野范围内的虚拟对象才会被终端展示给用户,随着该操作角色的移动,视野范围会不断移动,因此,终端首先确定当前在三维虚拟世界中的视野范围,具体的可以是,确定操作角色当前在三维虚拟世界中的角色位置;根据角色位置以及预设视野信息确定操作角色当前在三维虚拟世界中的视野范围,预设视野信息包括预设可视距离以及预设可视角度,例如该视野范围可以是以操作角色当前位置为圆心的一个扇形区域。
102、确定虚拟对象在三维虚拟世界中的对象位置;
当虚拟对象出现在该视野范围内时,终端会加载该虚拟对象,在进行加载之前,终端首先确定该虚拟对象在该三维虚拟世界中的对象位置,例如该虚拟对象在三维虚拟世界中的三维坐标。
103、根据对象位置以及视野范围对虚拟对象与操作角色建立投影关系;
终端确定虚拟对象的位置之后,对该虚拟对象与操作角色建立投影关系,即将该虚拟对象的各个面对操作角色建立投影关系,以通过投影关系确立可视面,在另一种可能的实现方式中,虚拟对象中可以由至少包含有一个积木块,积木块包含有多个面,在建立投影关系时,可以是对积木块的各个面对操作角色建立投影关系。
104、根据投影关系确定虚拟对象在三维虚拟世界中的可视面,可视面为位于视野范围内的面;
终端在建立投影关系之后,通过该投影关系确定虚拟对象在三维虚拟世界中的可视面,可视面为该视野范围内的面,即位于视野前方的可以被操作角色所观察到的面,不可视面为位于视野后方的不可被操作角色所观察到的。当虚拟对象中包含有透明属性的部位时,透明物体后方的面也可以是可视面。
在另一种可能的实现方式中,当虚拟对象中包含有积木块时,例如包含有一个不透明的正方体的积木块,当该正方体斜着朝向该操作角色时,正方体的左侧面以及右侧面可以被操作角色观察到,左侧面以及右侧面为可视面。
105、将可视面拆分为多层对象进行渲染并展示。
本实施例提供的方法中,终端在对可视面进行渲染时,将可视面拆分为多层对象进行渲染,渲染是将预先构建的素材渲染为数字图像并显示的过程,三维虚拟世界中的虚拟对象可以由多个面拼接而成,在对可视面进行渲染时将可视面拆分为多层级对象,每一个层级对象具有不同的渲染信息,较低的层级具有较少细节,可以保证虚拟对象的加载速度,较高的层级具有丰富的细节,可以保证虚拟对象的显示精细度,显卡在对虚拟对象进行渲染时,一般从低层级开始渲染到高层级。具体的拆分过程可以是,例如积木块中包含有六个面,将积木块中的可视面对应的积木块拆分为第一层级对象;将第一层级对象拆分为第二层级对象,将第二层级对象拆分为第三层级对象,其中,第一层级对象为最低层级对象,第三层级对象为最高层级对象。显示最高层级对象时图像最为清晰。第一层级对象的像素尺寸为512*512*512,第二层级对象的像素尺寸为64*64*64,第三层级对象的像素尺寸为1*1*1,从第一层级对象到第二层级对象,以及第二层级对象到第三层级对象的过程中,不再进行其它拆分,可以提高显卡渲染效率。
本申请提供的虚拟世界中虚拟对象的加载方法中,终端首先根据操作角色在三维虚拟世界中的视野范围,根据虚拟对象的对象位置以及视野范围,对该虚拟对象与操作角色建立投影关系,确定出对于操作角色的可视面,进而对可视面进行渲染并展示,即当虚拟对象位于视野范围内时,终端只渲染虚拟对象的可视面并展示,该方法中,终端仅对该可视面进行渲染,可以减少终端的计算量,减少加载虚拟对象所需要的时间,并且,对可视面拆分为多层对象进行渲染更符合显卡的渲染规则,可以提高渲染效率。
在实际应用中,终端对可视面进行渲染,受到视野的限制,操作角色或者用户暂时看不到除可视面以外的面,在对可视面进行渲染并展示之后,终端还可以对不可视面进行预渲染,当操作角色移动至可以观察到不可视面的位置时,可以直接对不可视面进行展示。下面将结合附图对该方法进行详细说明。
请参阅图2,图2为本申请提供的虚拟世界中虚拟对象的渲染方法的一个实施例流程示意图,该虚拟世界中虚拟对象的渲染方法包括:
201、确定操作角色当前在三维虚拟世界中的视野范围;
202、确定虚拟对象在三维虚拟世界中的对象位置;
203、根据对象位置以及视野范围对虚拟对象与操作角色建立投影关系;
204、根据投影关系确定虚拟对象在三维虚拟世界中的可视面,可视面为位于视野范围内的面;
205、将可视面拆分为多层对象进行渲染并展示;
本实施例中步骤201至步骤205与前述实施例中步骤101至105类似,此处不再赘述。
206、确定虚拟对象中除可视面外的不可视面;
终端在对可视面进行渲染并展示之后,可以对不可视面进行预渲染,终端首先确定不可视面,不可视面即位于视野后方的不可被操作角色所观察到的面。
207、对不可视面进行渲染。
终端对不可视面进行渲染,具体的,可以是对不可视面进行拆分为多层对象进行渲染。具体与步骤105类似,此处不再赘述。
本实施例提供的方法中,终端在对可视面进行渲染并展示之后,还对不可视面进行渲染,当操作角色移动至可以观察到不可视面的位置之后,可以直接对该不可视面进行展示,提高虚拟对象的加载效率。
上述实施例对本申请中提供的虚拟世界中虚拟对象的渲染方法进行了详细说明,下面将结合附图对本申请中的虚拟世界中虚拟对象的渲染系统、装置以及计算机存储介质进行说明。
请参阅图3,图3为本申请提供的虚拟世界中虚拟对象的渲染系统的一个实施例结构示意图,该虚拟世界中虚拟对象的渲染系统包括:
第一确定单元301,用于确定操作角色当前在三维虚拟世界中的视野范围;
第二确定单元302,用于确定虚拟对象在三维虚拟世界中的对象位置;
投影单元303,用于根据对象位置以及视野范围对虚拟对象与操作角色建立投影关系;
第三确定单元304,用于根据投影关系确定虚拟对象在三维虚拟世界中的可视面,可视面为位于视野范围内的面;
渲染单元305,用于将可视面拆分为多层对象进行渲染并展示。
可选的,第三确定单元304具体用于:
根据投影关系确定至少一个积木块在三维虚拟世界中的可视面。
可选的,渲染单元305具体用于:
对可视面对应的积木块中的各个积木块拆分为第一层级对象;
对第一层级对象拆分为第二层级对象;
对第二层级对象拆分为第三层级对象;
对第一层级对象、第二层级对象以及第三层级对象进行渲染并展示;
第一层级对象的尺寸为512像素×512像素×512像素,第二层级对象的尺寸为64像素×64像素×64像素,第三层级对象的尺寸为1像素×1像素×1像素。
可选的,第二确定单元302具体用于:
确定至少一个积木块中各个积木块在三维虚拟世界中的积木块三维坐标。
可选的,第一确定单元301具体用于:
确定操作角色当前在三维虚拟世界中的角色位置;
根据角色位置以及预设视野信息确定操作角色当前在三维虚拟世界中的视野范围,预设视野信息包括预设可视距离以及预设可视角度。
可选的,系统还包括第四确定单元306,第四确定单元306具体用于:
确定虚拟对象中除可视面外的不可视面;
对不可视面进行渲染。
本申请还提供了一种虚拟世界中虚拟对象的渲染装置,包括:
处理器401、存储器402、输入输出单元403、总线404;
处理器401与存储器402、输入输出单元403以及总线404相连;
存储器402保存有程序,处理器401调用程序以执行如上任一虚拟世界中虚拟对象的渲染方法。
本申请提供的虚拟世界中虚拟对象的渲染系统中,系统首先根据操作角色在所述三维虚拟世界中的视野范围,根据虚拟对象的对象位置以及视野范围,对该虚拟对象与操作角色建立投影关系,确定出对于操作角色的可视面,进而对可视面进行渲染并展示,即当虚拟对象位于视野范围内时,系统只渲染虚拟对象的可视面并展示,该系统中,系统仅对该可视面进行渲染,可以减少系统的计算量,减少加载虚拟对象所需要的时间,并且,对可视面拆分为多层对象进行渲染更符合显卡的渲染规则,可以提高渲染效率。
本申请还涉及一种计算机可读存储介质,计算机可读存储介质上保存有程序,其特征在于,当程序在计算机上运行时,使得计算机执行如上任一虚拟世界中虚拟对象的渲染方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
- 一种虚拟世界中虚拟对象的渲染方法、系统以及装置
- 一种虚拟场景中渲染对象的确定方法、装置及电子设备