CN114677467B - 地形图像渲染方法、装置、设备及计算机可读存储介质 - Google Patents
地形图像渲染方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114677467B CN114677467B CN202210596593.7A CN202210596593A CN114677467B CN 114677467 B CN114677467 B CN 114677467B CN 202210596593 A CN202210596593 A CN 202210596593A CN 114677467 B CN114677467 B CN 114677467B
- Authority
- CN
- China
- Prior art keywords
- pixel point
- information
- updated
- map
- determining
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种地形图像渲染方法、装置、设备及计算机可读存储介质;方法包括:在确定达到地形图像的刷新时机时,确定待刷新的目标层级和需要刷新的地表范围信息;从预先生成的图集中分别获取所述目标层级对应的贴图数据,图集中包括至少两个贴图图像,贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片;基于地表范围信息对目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于更新后的贴图数据对图集进行更新,得到更新后的图集;基于更新后的图集确定可视范围内的各个像素点的渲染信息;基于各个像素点的渲染信息渲染可视范围内的地形图像。通过本申请,能够提高地表图像的渲染效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种地形图像渲染方法、装置、设备及计算机可读存储介质。
背景技术
在基于三维虚拟环境的游戏中,需要对虚拟地形的三维模型进行渲染,以便生成地形画面并显示。地形作为视景中的主要几何模型,其需要渲染的三角面的数量在整个视景中占很大比重,因此实时性,即漫游的流畅感对于整个视景系统的帧间速率、人机交互性和沉浸性都有极大影响。
发明内容
本申请实施例提供一种地形图像渲染方法、装置及计算机可读存储介质,能够提高地表图像的渲染效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种地形图像渲染方法,包括:
在确定达到地形图像的刷新时机时,确定待刷新的目标层级和需要刷新的地表范围信息;
从预先生成的图集中分别获取所述目标层级对应的贴图数据,所述图集中包括至少两个贴图图像,所述贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片;
基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集;
基于所述更新后的图集确定可视范围内的各个像素点的渲染信息;
基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像。
本申请实施例提供一种地形图像渲染装置,包括:
第一确定模块,用于在确定达到地形图像的刷新时机时,确定待刷新的目标层级和需要刷新的地表范围信息;
第一获取模块,用于从预先生成的图集中分别获取所述目标层级对应的贴图数据,所述图集中包括至少两个贴图图像,所述贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片;
第一更新模块,用于基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集;
第二确定模块,用于基于所述更新后的图集确定可视范围内的各个像素点的渲染信息;
第一渲染模块,用于基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像。
本申请实施例提供一种计算机设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的地形图像渲染方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的地形图像渲染方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本申请实施例提供的方法。
本申请实施例具有以下有益效果:
在确定达到地形图像的刷新时机时,首先确定待刷新的目标层级和需要刷新的地表范围信息,其中需要刷新的地表范围信息应该是小于待刷新目标层级对应的覆盖范围的,然后从预先生成的图集中分别获取所述目标层级对应的贴图数据,所述图集中包括至少两个贴图图像,所述贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片,再基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集,最后基于所述更新后的图集确定可视范围内的各个像素点的渲染信息,并基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像,由于已经预先把多层贴图以裁剪映射(ClipMap)的方式来混合生成不同距离的细节层级图片,然后合并到一个大的贴图图像中,而免去了在渲染时实时进行混合烘焙的过程,并且在需要刷新时,仅仅更新目标层级对应覆盖范围中的部分地表范围,因此能够提高地形渲染性能和效率。
附图说明
图1A为权重图的示意图;
图1B为MipMap的8个层级示意图;
图1C为ClipMap的各个层级示意图;
图1D为材质纹理示意图;
图2为本申请实施例提供的渲染系统的网络架构示意图;
图3是本申请实施例提供的终端400的结构示意图;
图4是本申请实施例提供的地形图像渲染方法的一种实现流程示意图;
图5是本申请实施例提供的确定各个像素点的渲染信息的流程示意图;
图6是本申请实施例提供的地形图像渲染方法的另一种实现流程示意图;
图7为本申请实施例提供的地形图像渲染方法的再一种实现流程示意图;
图8为本申请实施例提供的局部刷新贴图图像的示意图;
图9为本申请实施例提供的不同距离范围在贴图图像中对应的单元格示意图;
图10为本申请实施例提供的将Splat图预烘培为一张图片的示意图;
图11A为对渲染图像进行插值处理前后的对比图;
图11B为将插值处理前的地形图像局部放大示意图;
图12为法线高度贴图示意图;
图13为本申请实施例提供的立面修复对比示意图;
图14为本申请实施例提供的进行平滑过度处理前后的地形图像对比示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)权重(Splat)图:
在地形里,纹理可能是草、泥土、岩石、雪或者其他类型。一个纹理中通常有多个通道:红、绿、蓝、半透,可以利用不同通道来存储不同地形类型的混合权重,来融合出一些草和泥土交织的效果,图1A所示图片即为的权重图。
2)多级渐远纹理(Mipmap),为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为Mipmap。Mipmap中每一个层级的小图都是主图的一个特定比例的缩小细节的复制品,如果贴图的基本尺寸是256x256像素的话,如图1B所示,Mipmap就会有8个层级。每个层级是上一层级的四分之一的大小,依次层级大小就是:128*128、64*64、32*32、16*16、8*8、4*4、2*2、1*1(一个像素)。
因为Mipmap贴图需要被读取的像素远少于普通贴图,所以渲染的速度得到了提升。而且操作的时间减少了,因为Mipmap的图片已经是做过抗锯齿处理的,从而减少了实时渲染的负担。但是使用Mipmap需要预先生成原始贴图在若干级别下的子贴图,因而会带来一定的额外空间占用量(大约33%)。
3)细节层次(LOD,Levels of Detail),是指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
4)ClipMap,ClipMap的思想起源于Mipmap,该思想可有效应用于地形LOD,以及超大高度图数据的裁剪。作用是用尽量少的内存渲染更大的空间。如图1C所示,用多层等大分辨率的数据,每一层覆盖空间的一个范围,越高层覆盖的范围越大,每一层大小是上一层的2倍。这个数据可以是贴图,也可以是其他。
5)DrawCall,是CPU调用图形编程接口,来命令GPU进行渲染的操作。在每次调用Draw Call之前,CPU需要向GPU发送很多内容,包括数据,状态,命令等。如果Draw Call的数量太多,就会造成CPU的过载,典型的优化方法是通过合批来减少DrawCall的数量。
6)贴图采样(TextureSample),简单理解贴图采样就是根据一些设置好的规则(Sampler state. Filter mode, addressing mode, max anisotropy等)来获取对应贴图数据的功能。
一般来说贴图采样对于性能和功耗都是渲染流程中占比很高的部分,是优化性能时需要重点关注的数据指标之一。
7)UV坐标,在网格表面上的每个点处,可以获得纹理映射坐标,它将定义纹理贴图中与该三维位置对应的二维位置。一般这些坐标分配了变量(u,v),其中u是水平坐标,v是垂直坐标。因此纹理映射坐标又简称UV坐标。
8)虚拟纹理(VT,VirtualTexture),很多游戏希望有一张巨大的贴图去表现一个十分精致的纹理,比如大型第一人称射击类游戏(FPS,First-person shooting game)中的地形地表纹理,贴图范围巨大,且所需要的资源是海量的,如果将贴图数据直接读取到内存中,显然是不现实的。因此提出了虚拟纹理的概念,一个很大的纹理将不会全部加载到内存中,而是根据实际需求,将需要的部分加载。这样的机制不仅仅减少了带宽消耗和内存(显存)消耗,也带来了其他好处,比如有利于合批。
9)PBR(Physically Based Rendering),基于物理的渲染过程,是一种着色和渲染技术,用于更精确的描述光如何与物体表面互动,由于其高度的易用性以及方便的工作流,已经被电影和游戏业界广泛使用。PBR的优势在于其通过精确的物理计算公式,可以准确的得到各种光照环境下的效果,为不同的3D设计师们提供统一的工作流程。材质部分由:基础色、法线、高光、粗糙度、金属度来定义材质表面属性。由于属性较多,所以一般会用图1D所示的三张贴图来分别存储不同属性,其中,111表征基础色属性、112表征法线属性、113表征高光、粗糙度和金属度属性。
为了更好地理解本申请实施例提供的地形图像渲染方法,首先对相关技术中的地形图像渲染方法及存在的确定进行说明。
一、Splat图的方案(使用Splat图来控制多层地表贴图混合)
为了获得更丰富的地表效果,通常会使用Splat图混合4层纹理来生成最终颜色,目前主流商业游戏引擎都采用这种方案,比如Unity和Unreal Engine。这种方案的好处是能用很少的图片资源做出丰富的各种地形效果,且被大量外部工具支持。
二、ID图采样纹理数组。
在实现时,先生成一张ID图,再通过ID图来采样纹理数组(extureArray)T中对应的地表贴图。
三、AdaptiveVirtualTexture方案。
目前常用的Unity引擎还没有支持,已知的游戏应用也比较少,该方案是在虚拟纹理(VirtualTextures)的基础上进一步的添加了LOD的概念,在近处生成更高精度而远处则是更低。
Splat图的方案好处是精度高效果好,缺点是混合层数变多时,DrawCall和贴图采样数都会升高导致性能下降,以目前的游戏制作标准,很容易成为性能瓶颈,并且无法做一些岩石和地表融合的效果,因为难以预料当前有多少层图片需要混合,基于实现和性能的原因很难在地形以外的其他模型上获取地表效果。另外,不同地块不同贴图也不利于合批,也是影响性能的点。
ID图采样纹理数组的方案的缺点是,ID图本身有精度限制,导致采样纹理数组里面的对应的地表贴图后,在不同地表贴图切换的地方会有锯齿效果,虽然可以通过采样附近像素做插值来解决部分该问题,但效果不理想。并且没法很好处理地表贴图混合渐变的情况,比如沙和图的混合,效果难以让美术满意,并且和很多地表生成工具生成的效果有差异。
AdaptiveVirtualTexture方案,需要通过ID图来转换到采样图集的UV坐标,会多至少一次的ID图采样。由于图集分块较小,会导致实时刷新图集时的DrawCall较高,同时过多的分块也不利于场景裁剪对应的贴花或者道路模型烘焙到地形。并且实现复杂,在手机上落地是非常困难的。
本申请实施例提供一种性能更好的地表实时渲染方案,通过高效的实时预烘焙以及简化的VT方案解决上述问题,并且支持场景模型和地表融合效果。
本申请实施例提供一种地形图像渲染方法、装置、设备和计算机可读存储介质,能够提升地形图像的渲染效率,下面说明本申请实施例提供的计算机设备的示例性应用,本申请实施例提供的设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端。下面,将说明设备实施为终端时示例性应用。
参见图2,图2是本申请实施例提供的渲染系统100的网络架构示意图,如图2所示,该网络架构包括服务器200、网络300和终端400,其中,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400中可以安装有应用程序的客户端。其中,该应用程序可以是需要下载安装的应用程序,也可以是即点即用的应用程序(小程序),本申请实施例对此不作限定。在本申请实施例中,该应用程序可以是任何能够提供虚拟环境,以供用户代入和操作的虚拟对象在该虚拟环境中进行活动的应用程序。典型地,该应用程序为游戏应用程序,如大型多人在线角色扮演(MMORP,Massively Multiplayer Online Role-Playing)游戏、第三人称射击游戏(TPS,Third-Personal Shooting Game)、第一人称射击游戏(FPS,First-PersonShooting Game)等等。当然,除了游戏应用程序之外,其它类型的应用程序中也可以向用户展示虚拟对象,并给虚拟对象提供相应的功能。例如,虚拟现实(VR,VirtualReality)类应用程序、增强现实(AR,Augmented Reality)类应用程序、三维地图程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。在一些实施例中,上述应用程序是基于三维的虚拟环境引擎开发的应用程序,比如该虚拟环境引擎是Unity引擎,该虚拟环境引擎能够构建三维的虚拟环境、虚拟对象和虚拟道具等,给用户带来更加沉浸式的游戏体验。
其中,上述虚拟环境是应用程序的客户端在终端400上运行时显示(或提供)的场景,该虚拟环境是指营造出的供虚拟对象进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图和虚拟建筑等。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境,或者是三维虚拟环境,本申请实施例对此不作限定。
在本申请实施例中,在需要渲染虚拟场景中的地形图像时,终端400可以从服务器200获取预先生成的的图集,该图集中包括至少两个贴图图像,并且贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片;然后终端400从该图集中获取所述目标层级对应的贴图数据,并基于地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,之后基于更新后的贴图数据对所述图集进行更新,得到更新后的图集,最后基于所述更新后的图集确定可视范围内的各个像素点的渲染信息,并基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像。
在一些实施例中,终端400还可以是从服务器200获取虚拟场景的高度数据和法线数据,然后基于高度数据和法线数据预先生成图集中的法线高度贴图图像,终端400还从服务器200获取多层地表纹理图像,然后以裁剪映射的方式将多层地表纹理图像进行混合生成的不同距离的细节层级图片,并合成颜色贴图图像;另外终端400还可以从服务器获取多层材质纹理图像,并且进行与地表纹理图像类似的处理过程,生成不同距离的材质细节层级图片,然后将不同距离的材质细节层级图片合成材质贴图图像。之后终端在进行地形图像渲染时,在确定达到地形图像的刷新时机时,确定待刷新的目标层级和需要刷新的地表范围信息;从预先生成的图集中获取所述目标层级对应的贴图数据,所述图集中包括至少两个贴图图像,所述贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片;基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集;基于所述更新后的图集确定可视范围内的各个像素点的渲染信息;基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像。由于已经预先把多层贴图以裁剪映射(ClipMap)的方式来混合生成不同距离的细节层级图片,然后合并到一个大的贴图图像中,而免去了在渲染时实时进行混合烘焙的过程,并且在需要刷新时,仅仅更新目标层级对应覆盖范围中的部分地表范围,因此能够提高地形渲染性能和效率。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载智能终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图3,图3是本申请实施例提供的终端400的结构示意图,图3所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器450中的地形图像渲染装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第一确定模块4551、第一获取模块4552、第一更新模块4553、第二确定模块4554和第一渲染模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的地形图像渲染方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的地形图像渲染方法。
本申请实施例提供一种地形图像渲染方法,应用于计算机设备,该计算机可以是终端,图4为本申请实施例提供的地形图像渲染方法的一种实现流程示意图,以下结合图4,对本申请实施例提供的地形图像渲染方法的各个步骤进行说明。
步骤S101,在确定达到地形图像的刷新时机时,确定待刷新的目标层级和需要刷新的地表范围信息。
在本申请实施例中,确定是否达到地形图像的刷新时机可以是通过处于虚拟场景中虚拟对象的移动信息确定的。该虚拟对象可以是用户帐号在应用程序中控制的虚拟角色,也可以是由应用程序中的计算机程序控制的虚拟角色。以应用程序为游戏应用程序为例,虚拟对象可以是用户帐号在游戏应用程序中控制的游戏角色,也可以是游戏应用程序中的计算机程序控制的游戏怪物。虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。
作为示例,可以在监测到虚拟对象移动时,获取虚拟对象的移动距离,并在移动距离大于一定移动阈值时,确定达到地形图像的刷新时机,还可以是确定移动距离与不同细节层级对应尺寸信息的比值,在比值大于预设的比值阈值时,确定达到刷新时机。此时需要进一步根据虚拟对象的移动距离确定待刷新的目标层级和需要刷新的地表范围信息。其中,如果虚拟对象的移动距离超过根据某一细节层级对应覆盖范围所确定出的移动阈值时,将该细节层级确定为目标层级;然后再基于目标层级的覆盖范围和移动信息确定需要刷新的地表范围信息。在本申请实施例中,需要刷新的地表范围信息是小于目标层级的覆盖范围的。
步骤S102,从预先生成的图集中分别获取所述目标层级对应的贴图数据。
所述图集中包括至少两个贴图图像,贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片,并且在贴图图像中不同距离的细节层级图片的尺寸信息是相同的,但是覆盖范围是不同的,贴图图像中包括多个图像区域(在一些实施例中,也可以称为单元格),每个图像区域对应一个细节层级图片。也就是说,一个贴图图像是有多个细节层级图片拼接合成的。该图集可以是终端自身预先烘焙生成的,也可以是从服务器获取的。
步骤S103,基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集。
在本申请实施例中,图集中至少包括法线高度贴图图像、颜色贴图图像和材质贴图图像,那么该步骤在实现,需要基于地表范围信息对目标层级对应的法线高度贴图数据、颜色贴图数据和材质贴图数据进行更新,分别得到更新后的法线高度贴图数据、更新后的颜色贴图数据和更新后的材质贴图数据。对应地,基于更新后的贴图数据对图集进行更新在实现时,是将更新后的法线高度贴图数据、更新后的颜色贴图数据和更新后的材质贴图数据替换掉法线高度贴图图像中的原始法线高度贴图数据、以及颜色贴图图像中的原始颜色贴图数据和材质贴图图像中的原始材质贴图数据,对应得到更新后的法线高度贴图图像、更新后的颜色贴图图像、更新后的材质贴图图像,从而由更新后的法线高度贴图图像、更新后的颜色贴图图像、更新后的材质贴图图像构成更新后的图集。
步骤S104,基于所述更新后的图集确定可视范围内的各个像素点的渲染信息。
该步骤在实现,首先获取可视范围内各个像素点的世界坐标,基于世界坐标确定出各个像素点的映射纹理坐标,然后基于映射纹理坐标从更新后的法线高度贴图图像、更新后的颜色贴图图像、更新后的材质贴图图像中分别获取各个像素点对应的表征法线高度的像素值、表征颜色的像素值和表征材质的像素值,并将表征法线高度的像素值、表征颜色的像素值和表征材质的像素值确定为各个像素点的渲染信息。
步骤S105,基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像。
在获取到各个像素点的表征法线高度的像素值、表征颜色的像素值和表征材质的像素值确之后,可以根据表征法线高度的像素值确定出各个像素点的高度以及法线信息,从而确定出各个像素点的光照结果,根据表征颜色的像素值确定各个像素点的色彩;根据表征材质的像素值确定各个像素点的金属度、粗糙度,如此根据以上信息即可渲染出可视范围内的地形图像。
在本申请实施例提供的地形图像渲染方法中,在确定达到地形图像的刷新时机时,首先确定待刷新的目标层级和需要刷新的地表范围信息,其中需要刷新的地表范围信息应该是小于待刷新目标层级对应的覆盖范围的,然后从预先生成的图集中分别获取所述目标层级对应的贴图数据,所述图集中包括至少两个贴图图像,所述贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片,再基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集,最后基于所述更新后的图集确定可视范围内的各个像素点的渲染信息,并基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像,由于已经预先把多层贴图以裁剪映射(ClipMap)的方式来混合生成不同距离的细节层级图片,然后合并到一个大的贴图图像中,而免去了在渲染时实时进行混合烘焙的过程,并且在需要刷新时,仅仅更新目标层级对应覆盖范围中的部分地表范围,因此能够提高地形渲染性能和效率。
在一些实施例中,在步骤S101之前,还可以通过下述的步骤S001至步骤S003确定是否达到地形图像的刷新时机,以下对各个步骤进行说明。
步骤S001,在监测到虚拟对象在虚拟场景中移动时,获取所述虚拟对象的移动距离和各个细节层级对应的尺寸信息。
虚拟对象的移动距离可以是根据虚拟对象移动前的第一坐标和移动后的第二坐标确定的。在实现时,由于渲染出的整个虚拟场景的显示尺寸和虚拟场景的物理尺寸具有一定的缩放比例,例如虚拟场景的显示尺寸为1024*1024,虚拟场景的物理尺寸为2048米*2048米,那么虚拟场景的显示尺寸与物理尺寸的缩放比例为0.5,也即在虚拟场景的坐标移动1,表征实际移动了2米。因此,在基于第一坐标和第二坐标确定出两个坐标点之间的距离之后,再乘以2即得到虚拟对象的移动距离。
各个细节层级对应的尺寸信息可以是各个细节层级对应的覆盖范围的边长,为简化说明,假设一共有四个细节层级,分别为细节层级0、细节层级1、细节层级2和细节层级3,并且细节层级0对应的覆盖范围为10米*10米,细节层级1对应的覆盖范围为20米*20米,细节层级2对应的覆盖范围为40米*40米,细节层级3对应的覆盖范围为80米*80米。
步骤S002,确定所述移动距离与各个细节层级对应的尺寸信息之间的比值。
将移动距离除以各个细节层级对应的尺寸信息即得到了各个比值。假设移动距离为3米,那么细节层级0对应的比值为0.3,细节层级1对应的比值为0.15,细节层级2对应的比值为0.075,细节层级3对应的比值为0.0375。
步骤S003,确定是否在比值大于预设的比值阈值的细节层级。
其中,比值阈值为大于0且小于1的实数。确定存在比值大于预设的比值阈值的细节层级时,确定达到地形图像的刷新时机,此时进入步骤S101;确定不存在比值大于比值阈值的细节层级时,确定未达到地形图像的刷新时机,则返回步骤S001。
在上述步骤S001至步骤S003所在实施例中,可以根据虚拟对象的移动距离与各个细节层级对应的尺寸信息之间的比值,确定是否达到刷新时机,其中,当当存在至少一个比值大于比值阈值时,说明虚拟对象在至少一个细节层级的移动程度较大,需要对该细节层级的贴图数据进行刷新,从而为判断是否达到刷新时机提供判决条件。
在一些实施例中,上述步骤S101中的“确定待刷新的目标层级和需要刷新的地表范围信息”可以通过下述的步骤S1011至步骤S1013实现,以下对各个步骤进行说明。
步骤S1011,将所述比值大于所述比值阈值的细节层级确定为待刷新的目标层级。
假设比值阈值为0.1,承接上述举例,细节层级0对应的比值为0.3,细节层级1对应的比值为0.15,细节层级2对应的比值为0.075,细节层级3对应的比值为0.0375,由于细节层级0和细节层级1对应的比值大于该比值阈值,因此将细节层级0和细节层级1确定为待刷新的目标层级。
步骤S1012,获取所述虚拟对象的移动方向。
在本申请实施例中,虚拟对象的移动方向可以是根据虚拟对象移动前的第一坐标与移动后的第二坐标确定的。例如,第一坐标为(x1,y1),第二坐标为(x2,y2),那么移动方向可以通过arctan((y2-y1)/(x2-x1))确定。
步骤S1013,基于所述移动方向、所述移动距离和所述目标层级的尺寸信息,确定所述需要刷新的地表范围信息。
在实现时,可以是按照移动距离s和移动方向确定出水平方向和竖直方向的偏移量,然后再基于目标层级的尺寸信息,确定需要刷新的地表范围信息。
举例来说,当移动距离为2米,移动方向为90°(也即移动方向为向前),目标层级为细节层级0,那么水平方向的偏移量为2*cos90°,也即为0,在竖直方向的偏移量为2*sin90°,也即为2。那么需要刷新的地表范围信息为目前目标层级覆盖范围向前2米的范围,也即当前目标层级的覆盖范围向前2*10米的矩形区域。
通过上述步骤S1011至步骤S1013可以基于虚拟对象的移动距离和移动方向确定出虚拟对象在水平方向和竖直方向的偏移量,由于目标层级的覆盖范围是以虚拟对象所在位置为中心的,那么在虚拟对象在移动之后,需要根据虚拟对象在水平方向和竖直方向的偏移量以及目标层级对应的尺寸信息对目标层级的覆盖范围进行更新,以保证虚拟对象位于目标层级的中心位置。
在一些实施例中,确定待刷新的地表范围信息在实现时,还可以是确定以虚拟对象移动后的第二坐标为中心的,以目标层级对应尺寸信息为边长的第一区域的第一区域信息,该区域信息可以是该第一区域的左下角和右上角的坐标,然后基于虚拟对象移动前的第一坐标为中心的第二区域的第二区域信息,将第一区域中位于第二区域部分之外的其他区域确定为待刷新的地表范围。地表范围信息可以包括能够表征待刷新的地表范围的顶点坐标。例如待刷新的地表范围是当前目标层级的覆盖范围向前2*10米的矩形区域,待刷新地表范围信息即为该矩形区域的两个对角顶点的坐标。
在一些实施例中,上述步骤S103中的“基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据”可以通过下述的步骤S1031至步骤S1034实现,以下对各个步骤进行说明。
步骤S1031,将所述目标层级对应的贴图数据基于虚拟对象的移动方向和移动距离进行偏移,得到偏移后的贴图数据。
该步骤在实现时,可以是将目标层级对应的贴图数据按照虚拟对象的移动方向的反方向移动该移动距离,得到偏移后的贴图数据。例如,当移动距离为2米,移动方向为90°(也即移动方向为向前),那么将目标层级对应的贴图数据按照移动方向的反方向(-90°,也即向后)移动2米,得到偏移后的贴图数据。参见图8,由于虚拟对象向前移动2米,那么将目标层级对应的贴图数据向后移动2米,得到图8中的801所示的目标层级偏移后的的贴图数据,在801中空白部分为真正需要刷新的部分。
步骤S1032,将偏移后的贴图数据存储至临时图像。
所述临时图像的尺寸与所述目标层级的贴图数据的尺寸相同。由于经过偏移,将偏移后的贴图数据存储至临时图像时,在临时图像中会有一部分是空白部分,该部分为待刷新的地表范围信息对应的区域。
步骤S1033,确定需要刷新的地表范围信息对应的补充贴图数据。
在本申请实施例中,图集中至少包括颜色贴图、法线高度贴图和材质贴图,那么在该步骤中,需要确定出待刷新的地表范围信息对应的补充贴图数据包括由于地表范围信息可以包括能够表征待刷新的地表范围的顶点坐标,那么可以根据顶点坐标确定出用于烘焙出颜色贴图的多个地表纹理图像,并将多个地表纹理图像进行混合,得到颜色补充贴图数据。材质贴图与颜色贴图类似,也是由多层材质纹理图像混合烘焙得到的,因此也需要根据需要刷新的地表范围信息确定出对应的多个材质纹理图像,并将多个材质纹理图像进行混合,得到材质补充贴图数据。而法线高度贴图是直接根据法线信息和高度信息得到的,并没有进行多层混合,因此直接根据需要刷新的地表范围信息就可以确定出法线高度补充贴图数据。
步骤S1034,将所述补充贴图数据添加到所述临时图像,并将所述临时图像确定为更新后的贴图数据。
在实现时,是将补充贴图数据添加至临时图像的空白部分,得到填充满的临时图像,并将填充满的临时图像确定为更新后的贴图数据。
在上述步骤S1031至步骤S1034中,在确定更新后的贴图数据时,是根据需要刷新的地表范围信息确定出补充贴图数据,而不是将整个目标层级的贴图数据进行更新,因此能够降低贴图数据的更新数据量,提高更新效率。
在本申请实施例中,该图集中包括颜色贴图、法线高度贴图和材质贴图,对应地,所述更新后的贴图数据包括更新后的颜色贴图区域、更新后的法线高度贴图区域和更新后的材质贴图区域,因此上述步骤S103中的“基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集”,可以通过以下步骤实现:
步骤S1035,将所述颜色贴图中所述目标层级对应的原始颜色贴图区域替换为所述更新后的颜色贴图区域,得到更新后的颜色贴图。
步骤S1036,将所述法线高度贴图中所述目标层级对应的原始法线高度贴图区域替换为所述更新后的法线高度贴图区域,得到更新后的法线高度贴图。
步骤S1037,将所述材质贴图中所述目标层级对应的原始材质贴图区域替换为所述更新后的材质贴图区域,得到更新后的材质贴图。
步骤S1038,将所述更新后的颜色贴图、所述更新后的法线高度贴图和所述更新后的材质贴图确定为更新后的图集。
通过上述的步骤S1035至步骤S1038,能够实现对颜色贴图、法线高度贴图和材质贴图的更新过程,并得到更新后的图集,从而为后续利用更新后的图集进行贴图采样提供必要的数据基础。
在一些实施例中,可以通过以下步骤完成颜色贴图的预先烘焙过程:
步骤S201,获取预先生成的第一权重图和各个细节层级对应的待混合的多个地表纹理图像。
第一权重图(Splat图)可以是预先利用第三方工具生成的,各个细节层级对应的待混合的多个地表纹理图像可以是从服务器获取的,该多个地表纹理图像可以包括土地纹理图像、草地纹理图像等。
步骤S202,基于所述第一权重图对所述各个细节层级对应的多个地表纹理图像进行融合处理,得到各个细节层级对应的融合后的地表纹理图像。
在实现时,可以是以ClipMap的方式烘培多个地表纹理图像,得到各个LOD对应的融合后的地表纹理图像。其中不同细节层级对应的融合后的地表纹理图像尺寸相同(也即分辨率相同,例如都是512*512),但具有不同的覆盖范围。例如Level 0存储10米内的地表,Level 1存储20米内的地表,Level 2存储40米内的地表,以此类推直到最大视野范围。
步骤S203,将所述各个细节层级对应的融合后的地表纹理图像进行合成处理,得到颜色贴图。
这里,可以是将各个细节层级对应的融合后的地表纹理图像进行拼接,得到颜色贴图。例如将4个512*512的融合后的地表纹理图像进行合成处理(或拼接处理),得到一个1024*1024的颜色贴图。
通过上述的步骤S201至步骤S203,通过第一权重图将多层地表纹理图像进行混合,并按照ClipMap的方式生成不同不同细节层级对应的融合后的地表纹理图像,能够还原多层混合地表贴图的效果,并且适用于大世界场景。
在一些实施例中,可以通过以下步骤完成法线高度贴图的预先烘焙过程:
步骤S301,获取各个细节层级对应覆盖范围中各个像素点的法线信息,对所述法线信息进行压缩处理,得到压缩后的法线信息。
模型表面上像素的光照效果只与光照以及表面上的法线相关,法线的方向决定了模型表面的光照效果。因此,光照信息最重要的是光入射方向与入射点的法线夹角,为了实现更加逼真的渲染效果需要确定各个像素点的法线信息。一般情况下法线信息需要用四个字节来表示,在本申请实施例中,各个细节层级对应覆盖范围中各个像素点的法线信息可以是从法线图中获取的,并且获取到的法线信息需要3个字节来表示,在本申请实施例中,将法线信息压缩到2个字节,作为示例,可以是把法线的x值和y值转换到0-255的范围进行存储,舍弃z值,在使用时,可以通过x、y值计算得到z值。
步骤S302,获取所述各个细节层级对应覆盖范围中各个像素点的高度信息。
各个像素点的高度信息可以是从高度图中获取的,高度图一般使用16位数据存储,取值范围0-65535,0表示最低点,65535表示最高点,然后利用位运算对高度信息进行编码,编码后的高度信息占用2个字节。使用时需要对编码后的高度信息进行解码。
步骤S303,基于所述各个细节层级对应覆盖范围中各个像素点的压缩后的法线信息和高度信息,生成所述各个细节层级对应的法线高度图。
在实现时,可以将各个像素点的高度信息存储在颜色的RG通道上,压缩后的法线信息存储到BA通道上,正好占用一个颜色值的4个通道,从而生成各个细节层级对应的法线高度图。
步骤S304,将所述各个细节层级对应的法线高度图进行合成处理,得到法线高度贴图。
在实现时,可以是将各个细节层级对应的法线高度图进行合成拼接处理,得到法线高度贴图。
需要说明的是,在将各个细节层级对应的融合后的地表纹理图像进行合成拼接处理时所采用的拼接顺序与将各个细节层级对应的法线高度图进行合成拼接处理时采用的拼接顺序是相同的,从而保证相同细节层级的融合后的地表纹理图像与法线高度图所在位置相同。
通过上述的步骤S301至步骤S304,能够将法线信息和高度信息合成在一张贴图中,从而能够减少贴图数量,能够降低贴图数据的更新量和进行贴图采样的数据处理量,从而提高渲染效率和性能。
在一些实施例中,上述步骤S104“基于所述更新后的图集确定可视范围内的各个像素点的渲染信息”,包括:
步骤S1041,获取可视范围内各个像素点的世界坐标。
步骤S1042,基于所述各个像素点的世界坐标确定所述各个像素点的纹理映射坐标。
该步骤在实现时,首先,确定各个像素点所在细节层级,然后计算各个像素点在所在细节层级中的第一偏移量以及所在细节层级在各个贴图图像中的第二偏移量,将第一偏移量和第二偏移量相加即得到了像素点的纹理映射坐标。
其中,在确定像素点所在细节层级时,按ClipMap的思路,先用世界坐标减去记录的当前虚拟对象的坐标,得到一个相对坐标,然后除以最小细节层级的尺寸,取整后,log2指数运算得到的值就是像素点所在的细节层级。
在确定像素点在所在细节层级的第一偏移量,在实现时,根据计算像素点所在细节层级从保存的层级信息的配置表里面获取像素点所在细节层级的坐标等信息,像素点的世界坐标减去像素点所在细节层级再进行缩放换算后就得到像素点在所在细节层级的第一偏移量。
计算像素点所在细节层级在贴图图像中的第二偏移量,在实现时是将像素点所在层级除以贴图图像中的分块数量,将商确定为纹理映射水平坐标(u值),将余数确定为纹理映射竖直坐标(v值),如此也就得到了像素点的纹理映射坐标。
步骤S1043,基于所述各个像素点的纹理映射坐标从所述更新后的图集中确定所述各个像素点的渲染信息。
在一些实施例中,上述步骤S1043可以通过图5所示的步骤S431至步骤S437实现,以下结合图5对各个步骤进行说明。
步骤S431,获取所述各个像素点所在的细节层级和所述细节层级中心位置的中心坐标。
由于各个像素点的所在细节层级在步骤S1042中已经确定出来,因此直接获取即可。细节层级中心位置的中心坐标可以从层级信息的配置表里面获取。
步骤S432,基于所述各个像素点的纹理映射坐标和所述中心坐标,确定所述各个像素点与所述中心位置的距离。
步骤S433,确定第i个像素点对应的距离是否小于预设的距离阈值。
其中,i=1,2,…,N,N为像素点总数,N为大于2的正整数。当第i个像素点对应的距离小于预设的距离阈值时,说明第i个像素点距离中心位置较近,此时进入步骤S434;当第i个像素点对应的距离大于或者等于该距离阈值时,说明第i个像素点距离中心位置较远,距离该细节层级覆盖范围对应的边缘较近,此时进入步骤S435。
步骤S434,将所述更新后的图集中所述第i个像素点纹理映射坐标对应的像素值确定为所述第i个像素点的渲染信息。
在本申请实施例中,当第i个像素点对应的距离小于预设的距离阈值时,说明第i个像素点距离中心位置较近,也即距离该细节层级覆盖范围对应的边缘较远,因此可以从更新后的图集中获取第i个像素点纹理映射坐标在颜色贴图、法线高度贴图和材质贴图对应的像素值,也即此时得到的是三个像素值,并将这三个像素值确定为第i个像素点的渲染信息。
步骤S435,基于所述距离确定坐标更新权重。
在本申请实施例中,预设有距离和坐标更新权重的对应关系,该对应关系可以是正相关关系,也即距离越大,那么坐标更新权重越大,也就是说,像素点与中心坐标的距离越远则进行坐标更新的概率就越高,并且与中心坐标距离相同的多个像素点的更新权重是相同的。
步骤S436,当基于所述坐标更新权重确定所述第i个像素点需要进行坐标更新时,从所述第i个像素点所在细节层级的下一个层级确定所述第i个像素点的目标像素点。
在实现时,可以基于坐标更新权重和噪声随机采样值确定出是否需要从第i个像素点所在当前细节层级的下一个层级来获取数据。其中,当确定所述第i个像素点需要进行坐标更新时,从所述第i个像素点所在细节层级的下一个层级确定所述第i个像素点的目标像素点,其中,目标像素点为第i个像素点坐在细节层级的下一个层级中与第i个像素点具有相同世界坐标的像素点。
步骤S437,将所述目标像素点对应的像素值确定为所述第i个像素点的渲染信息。
由于不同细节层级的像素精度不同,细节层级越高,像素精度越低,因此在本申请实施例中,为了避免在不同细节层级的交界处出现明显的像素精度差异,将两个相邻细节层级中,较低细节层级中靠近边缘的像素点取较高层级中的任一像素点确定为该第i个像素点的目标像素点,并将目标像素点对应的像素值确定为第i个像素点的渲染信息,从而实现不同细节层级间的平滑过度。
在一些实施例中,还可以基于待渲染模型的模型标识,确定是否需要将该渲染模型进行世界坐标的调整,其中当基于模型标识确定待渲染模型为位于地表之上的其他模型时,例如是岩石、房子、树木等模型时,还可以通过图6所示的以下步骤进行地形图像的渲染,以下结合图6对各个步骤进行说明。
步骤S401,获取待渲染模型的模型标识,基于所述模型标识确定所述待渲染模型为位于地表之上的其他模型时,获取所述其他模型对应的贴图数据。
步骤S402,获取所述其他模型上各个像素点的法线信息,并将所述各个像素点的法线取反方向,得到反向法线信息。
步骤S403,将所述反向法线信息和各个像素点对应的高度差的乘积,确定为调整坐标。
这里,各个像素点对应的高度差是各个像素点与地面的高度差。
步骤S404,利用所述调整坐标对所述各个像素点的世界坐标进行调整,得到所述各个像素点调整后的世界坐标。
在实现时,将各个像素点的调整坐标与各个像素点的世界坐标进行加法运算,得到各个像素点调整后的世界坐标。
步骤S405,基于各个像素点调整后的世界坐标确定所述各个像素点的渲染信息。
该步骤在实现时,可以首先对各个像素点调整后的世界坐标进行坐标转换,得到各个像素点的纹理映射坐标,然后基于各个像素点的纹理坐标从该其他模型对应的贴图数据中确定出各个像素点的渲染信息。
步骤S406,确定所述其他模型中各个像素点与地表的高度差。
该步骤在实现时,首先获取该其他模型中各个像素点的高度数据以及该其他模型所在地表的高度数据,进而根据各个像素点的高度数据和地表的高度数据确定各个像素点与地表的高度差。
步骤S407,基于所述高度差确定所述各个像素点对应的混合权重。
在本申请实施例中,可以预设有高度差与混合权重的对应关系,该对应关系可以是负相关关系,也就是说,一个像素点的高度差越小,那么该像素点对应的混合权重越高。
步骤S408,获取所述各个像素点对应的地表参考像素点和所述地表参考像素点的渲染信息。
在本申请实施例中,其他模型上的各个像素点对应的地表参考像素点,可以是与各个像素点水平方向上的坐标相同,竖直方向上的坐标在地表模型的像素点。在确定出各个像素点对应的地表参考像素点后,可以基于地表参考像素点的纹理映射坐标获取到地表参考像素点的渲染信息。
步骤S409,基于所述各个像素点对应的混合权重,将所述各个像素点的渲染信息和所述各个像素点对应地表参考像素点的渲染信息进行融合处理,得到融合后的渲染信息。
地表参考像素点的渲染信息包括地表参考法线高度信息、地表参考颜色信息以及地表参考材质信息,对应地该其他模型上各个像素点的渲染信息包括各个像素点的法线高度信息、颜色信息以及材质信息,该步骤在实现时,可以是将地表参考法线高度信息和各个像素点的法线高度信息利用各个像素点的混合权重进行加权求和,得到融合后的法线高度信息;将地表参考颜色信息和各个像素点的颜色信息利用各个像素点的混合权重进行加权求和,得到融合后的颜色信息;将地表参考材质信息和各个像素点的材质信息利用各个像素点的混合权重进行加权求和,得到融合后的材质信息。
步骤S410,将所述融合后的渲染信息更新为所述各个像素点的渲染信息。
通过上述步骤S401至步骤S410,可以在渲染高于地表的其他模型时,通过对其他模型中各个像素点的法线取反方向,从而实现向模型内部偏移以调整像素点的世界坐标,并且调整后的世界坐标的确定只涉及乘法和加法运算,计算量小,并不会影响渲染效率,之后通过调整后的世界坐标来采样图集,获取各个像素点的渲染信息,从而解决其他模型中立面的拉伸问题,使得渲染效果更加逼真。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供一种地形图像渲染方法,在程序运行时,预先把多层地表贴图以ClipMap的方式来混合生成不同距离的LOD图片,然后合并到一个大的贴图图像里面,渲染地形时以ClipMap的方式来采样贴图图像中对应的像素值,同时利用噪声在不同LOD层级之间做插值来达到平滑过度的效果。
在渲染岩石等模型对象时,同样可以采样贴图图像中对应的像素值,来和自身颜色做一个根据高度插值的混合,来做出岩石和地面融合在一起无缝衔接的效果。
图7为本申请实施例提供的地形图像渲染方法的再一种实现流程示意图,如图7所示,该流程包括:
步骤S701,监测虚拟对象移动。
步骤S702,判断图集是否需要刷新。
图集可以包括贴图图像1、贴图图像2和贴图图像3在实现时,可以根据虚拟对象的移动距离确定图集是否需要刷新,其中可以是判断移动距离与最小层级对应覆盖范围的比例是否大于一定的比例阈值,其中当移动距离与最小层级对应覆盖范围的比例大于或等于该比例阈值,确定图集需要刷新,进入步骤S703;当移动距离与最小层级对应覆盖范围的比例小于该比例阈值,确定图集不需要刷新,进入步骤S706。
步骤S703,计算需要刷新的地表范围。
步骤S704,获取需要刷新的地表范围对应的法线高度贴图数据信息、颜色贴图数据信息和材质贴图数据信息。
在本申请实施例中,以获取需要刷新的地表范围对应的颜色贴图数据信息为例进行说明。在实现时,先从贴图图像2中拷贝当前层级的颜色贴图,并将该颜色贴图按照虚拟对象的移动信息进行偏移,将偏移后的颜色贴图写入临时图片中,然后只用渲染临时图片中真正需要刷新的区域,最后把临时图片拷贝回图集中。
图8为本申请实施例提供的局部刷新示意图,图8中的801为当前层级偏移后的的颜色贴图,空白部分为真正需要刷新的部分,图8中802为经过局部更新得到的颜色贴图,在得到802后,将802拷贝回贴图图像2中。
步骤S705,将法线高度贴图数据信息、颜色贴图数据信息和材质贴图数据信息传输至图集管理器。
图集管理器基于需要刷新的地表范围对应的法线高度贴图数据信息、颜色贴图数据信息和材质贴图数据信息对贴图图像1、贴图图像2和贴图图像3进行更新。在步骤S705之后执行步骤S707。
步骤S706,将地形世界坐标转换为UV坐标。
步骤S707,从图集中采样,得到采样结果。
在实现时,采样结果可以包括从贴图图像1、贴图图像2和贴图图像3中分别进行采样,得到对应的表征法线高度的像素值、表征颜色的像素值和表征材质的像素值。
步骤S708,输出到屏幕。
在本申请实施例中,在通过采样结果得到对应的表征法线高度的像素值、表征颜色的像素值和表征材质的像素值之后,即可根据这些信息渲染出地形图像,并输出显示在屏幕。
仍然以贴图图像2中的颜色贴图为例进行说明。在进行贴图图像采样时,是通过世界坐标转换来采样贴图图像中的像素值:首先将当前地形像素对应的世界坐标,通过一个转换函数,计算出当前地形像素所在的层级和一个相对摄像机坐标的偏移量,然后基于当前地形像素所在层级和相对摄像机坐标的偏移量就可以计算出该当前地形像素在各个贴图图像中的UV坐标,最后使用UV坐标直接采样各个贴图图像得到对应的像素值。
图9为本申请实施例提供的不同距离范围在贴图图像中对应的单元格示意图,如图9所示,层级0对应贴图图像2中的单元格901、层级1对应贴图图像2中的单元格902、层级2对应贴图图像2中的单元格903、层级3对应贴图图像2中的单元格904、层级4对应贴图图像2中的单元格905、层级5对应贴图图像2中的单元格906。
在本申请实施例中,在步骤S701之前,首先要生成图集中的各个贴图图像。在实现时,在程序运行前将第三方工具生成的地形Splat图,预先混合多层地表纹理,并烘培到贴图图像里面。以贴图图像为贴图图像2为例,贴图图像中每一个单元格,存储一定范围内的合成后的地表图片,比如Level 0存储10米内的地表,Level 1存储20米内的地表,Level 2存储40米内的地表,以此类推直到最大视野范围。
图10为本申请实施例提供的将Splat图预烘培为一张图片的示意图,如图10所示,利用Splat图片1001将草地图片1002和土地图片1003进行混合烘焙,得到混合后的纹理图片1004。
在本申请实施例中,将不同覆盖范围的烘焙结果拷贝至图10所示的贴图图像中对应的一个单元格中,其中,不同的单元格的数据块大小相等,但具有不同的覆盖范围和精度。
由于图集中各个贴图图像不同距离的数据块大小相等,但具有不同的覆盖范围和精度,从而导致相邻两级会有一倍的像素精度差,在两级切换的地方会呈现一条明显的分界线。
在本申请实施例中,可以首先计算出LOD交界的区域,对该区域进行噪声随机采样,从而处理掉明显的分界线。在精度较高的一边,通过随机采样下一级Mipmap值来得到和相邻的Level一样的像素精度,并且在越靠近分界线的地方使用更多的下一级Mipmap的值,这样可以得到一个平滑过度的效果。
图11A为对渲染图像进行插值处理前后的对比图,其中1101为进行插值处理前的渲染图像,1102为进行插值处理后的渲染图像,其中1101中的黑色边框为不同层级的分界线,图11B为将插值处理前的地形图像局部放大示意图,图11B为图11A中1101中Level 1和Level 2分界线附近区域11011的放大图像,其中图11B中左上部分为Level 2的覆盖范围区域,右下部分为Level 1的覆盖范围区域,对比这两个不同的覆盖范围区域,可以看出Level1和Level 2具有较为明显的图像精度差异。
在本申请实施例中,顶点的高度信息和法线信息存储在一个图片中,在实现时,可以把顶点法线信息进行压缩存储,只占用2个通道,这样就可以和高度信息(16个字节占用两个通道)合并占用一个32位的颜色值。这样在使用时就可以一次采样同时获得地形顶点高度和顶点法线。
高度图采样高度值存储在颜色的RG通道上,法线图采样压缩存储到BA通道上,正好占用一个颜色值的4个通道,输出到如图12所示的一张图片里。
另外,为了避免出现立面UV拉伸的问题,在本申请实施例中,对当前岩石模型中各个像素点法线取反方向,再与高度差进行乘积,得到调整坐标,然后再将调整坐标与当前岩石坐标各个像素点的世界坐标进行叠加运算,得到调整后的世界坐标,最后利用调整后的世界坐标采样图集,如此能够实现往模型内部偏移来采样图集,从而避免立面UV产生拉伸的问题。
图13为本申请实施例提供的立面修复对比示意图,其中图13中的1301为未修复陡峭面立面拉伸问题的岩石渲染图,图13中的1302为修复陡峭面立面拉伸问题的岩石渲染图,通过对比1301和1302能够看出修复后陡峭面上的像素点未出现拉伸问题。
在进行地形渲染的时候,岩石模型同样通过世界坐标转换来采样图集中的像素值,然后再通过采样地形高度图得到地面和当前岩石模型的高度差,并根据地面和当前岩石模型的高度差确定岩石颜色与地表颜色进行混合时采用的混合权重,并且高差差越小,混合权重越大。图14为本申请实施例提供的进行平滑过度处理前后的地形图像对比示意图,其中图14中的1401是未进行平滑过度处理的地形图像,1402是进行平滑处理后的地形图像,通过对比1401和1402可以看出,经过平滑过渡处理后,岩石和地表接触的部分较处理之前过渡更加平滑。
需要说明的是,本申请实施例提供的地形渲染方法,可用于进行纹理渲染,还可以用于进行阴影渲染,从而提升性能,降低实时渲染开销。并且在生成图集时,颜色通道的组织方式不限于本申请实施例提供的方式,可以根据项目需求,可以有1到N张不同图集来存储不同信息。
通过本申请实施例提供的地形渲染方法,美术人员在制作地形时可以应用更丰富的贴图资源,不再因为性能而受到使用数量的限制(商业引擎中的Splat贴图混合方案受性能限制,一般建议只使用4层以内的地表材质),并且能够实现场景物件和地表的融合效果,增强场景真实感。比如岩石和树根等模型可以和地表无缝过渡,看起来会更加自然和谐,另外贴花效果和道路都可以预先烘焙到地形图集里面,来进一步减少实时渲染压力,提升整体性能。
下面继续说明本申请实施例提供的地形图像渲染装置455的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器450的地形图像渲染装置455中的软件模块可以包括:
第一确定模块4551,用于在确定达到地形图像的刷新时机时,确定待刷新的目标层级和需要刷新的地表范围信息;
第一获取模块4552,用于从预先生成的图集中分别获取所述目标层级对应的贴图数据,所述图集中包括至少两个贴图图像,所述贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片;
第一更新模块4453,用于基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集;
第二确定模块4454,用于基于所述更新后的图集确定可视范围内的各个像素点的渲染信息;
第一渲染模块4455,用于基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像。
在一些实施例中,该装置还包括:
第二获取模块,用于在监测到虚拟对象在虚拟场景中移动时,获取所述虚拟对象的移动距离和各个细节层级对应的尺寸信息;
第三确定模块,用于确定所述移动距离与各个细节层级对应的尺寸信息之间的比值;
第四确定模块,用于确定是否存在比值大于预设的比值阈值的细节层级,其中,当确定存在比值大于预设的比值阈值的细节层级时,确定达到地形图像的刷新时机。
在一些实施例中,该第一确定模块,还用于:
将所述比值大于所述比值阈值的细节层级确定为待刷新的目标层级;
获取所述虚拟对象的移动方向;
基于所述移动方向、所述移动距离和所述目标层级的尺寸信息,确定所述需要刷新的地表范围信息。
在一些实施例中,该第一更新模块,还用于:
将所述目标层级对应的贴图数据按照所述虚拟对象的移动方向和移动距离进行偏移,得到偏移后的贴图数据;
并将偏移后的贴图数据存储至临时图像,所述临时图像的尺寸与所述目标层级的贴图数据的尺寸相同;
需要刷新的地表范围信息对应的补充贴图数据;
将所述补充贴图数据添加到所述临时图像,并将所述临时图像确定为更新后的贴图数据。
在一些实施例中,所述图集中包括颜色贴图、法线高度贴图和材质贴图,对应地,所述更新后的贴图数据包括更新后的颜色贴图区域、更新后的法线高度贴图区域和更新后的材质贴图区域,该第一更新模块,还用于:
将所述颜色贴图中所述目标层级对应的原始颜色贴图区域替换为所述更新后的颜色贴图区域,得到更新后的颜色贴图;
将所述法线高度贴图中所述目标层级对应的原始法线高度贴图区域替换为所述更新后的法线高度贴图区域,得到更新后的法线高度贴图;
将所述材质贴图中所述目标层级对应的原始材质贴图区域替换为所述更新后的材质贴图区域,得到更新后的材质贴图;
将所述更新后的颜色贴图、所述更新后的法线高度贴图和所述更新后的材质贴图确定为更新后的图集。
在一些实施例中,该装置还包括:
第三获取模块,用于获取预先生成的第一权重图和各个细节层级对应的待混合的多个地表纹理图像;
第一融合模块,用于基于所述第一权重图将所述各个细节层级对应的多个地表纹理图像进行融合处理,得到各个细节层级对应的融合后的地表纹理图像,其中不同细节层级对应的融合后的地表纹理图像尺寸相同,但具有不同的覆盖范围;
第一合成模块,用于将所述各个细节层级对应的融合后的地表纹理图像进行合成处理,得到颜色贴图。
在一些实施例中,该装置还包括:
第四获取模块,还用于获取各个细节层级对应覆盖范围中各个像素点的法线信息,对所述法线信息进行压缩处理,得到压缩后的法线信息;
第五获取模块,用于获取所述各个细节层级对应覆盖范围中各个像素点的高度信息;
第一生成模块,用于基于所述各个细节层级对应覆盖范围中各个像素点的压缩后的法线信息和高度信息,生成所述各个细节层级对应的法线高度图;
第二合成模块,用于将所述各个细节层级对应的法线高度图进行合成处理,得到法线高度贴图。
在一些实施例中,该第二确定模块,还用于:
获取可视范围内各个像素点的世界坐标;
基于所述各个像素点的世界坐标确定所述各个像素点的纹理映射坐标;
基于所述各个像素点的纹理映射坐标从所述更新后的图集中确定所述各个像素点的渲染信息。
在一些实施例中,该第二确定模块,还用于:
基于所述各个像素点的纹理映射坐标确定所述各个像素点所在的细节层级和所述细节层级中心位置的中心坐标;
基于所述各个像素点的纹理映射坐标和所述中心坐标,确定所述各个像素点与所述中心位置的距离;
当第i个像素点对应的距离小于预设的距离阈值时,将所述更新后的图集中所述第i个像素点纹理映射坐标对应的像素值确定为所述第i个像素点的渲染信息。
在一些实施例中,该第二确定模块,还用于:
当第i个像素点对应的距离大于或者等于所述距离阈值时,基于所述距离确定坐标更新权重;
当基于所述坐标更新权重确定所述第i个像素点需要进行坐标更新时,从所述第i个像素点所在细节层级的下一个层级确定所述第i个像素点的目标像素点,其中,目标像素点为第i个像素点坐在细节层级的下一个层级中与第i个像素点具有相同世界坐标的像素点;
将所述目标像素点对应的像素值确定为所述第i个像素点的渲染信息。
在一些实施例,该装置还包括:
第六获取模块,用于获取待渲染模型的模型标识,基于所述模型标识确定所述待渲染模型为位于地表之上的其他模型时,获取所述其他模型对应的贴图数据;
第七获取模块,用于获取所述其他模型上各个像素点的法线信息,并将所述各个像素点的法线取反方向,得到反向法线信息;
第五确定模块,用于将所述反向法线信息和各个像素点对应的高度差的乘积,确定为调整坐标;
第一调整模块,用于利用所述调整坐标对所述各个像素点的世界坐标进行调整,得到所述各个像素点调整后的世界坐标;
第六确定模块,用于基于所述各个像素点调整后的世界坐标确定所述各个像素点的渲染信息。
在一些实施例中,该装置还包括:
第七确定模块,用于在确定出位于地表之上的其他模型的渲染信息之后,确定所述其他模型中各个像素点与地表的高度差;
第八确定模块,用于基于所述高度差确定所述各个像素点对应的混合权重;
第七获取模块,用于获取所述各个像素点对应的地表参考像素点和所述地表参考像素点的渲染信息;
融合模块,用于基于所述各个像素点对应的混合权重,将所述各个像素点的渲染信息和所述各个像素点对应地表参考像素点的渲染信息进行融合处理,得到融合后的渲染信息;
第二更新模块,用于将所述融合后的渲染信息更新为所述各个像素点的渲染信息。
需要说明的是,本申请实施例针对地形图像渲染装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的地形图像渲染方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的地形图像渲染方法,例如,如图4、图5和图6示出的地形图像渲染方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (14)
1.一种地形图像渲染方法,其特征在于,所述方法包括:
在监测到虚拟对象移动时,获取虚拟对象的移动距离,确定所述移动距离与不同细节层级对应尺寸信息的比值,确定存在比值大于预设的比值阈值的细节层级时,确定达到刷新时机,将所述比值大于所述比值阈值的细节层级确定为待刷新的目标层级,确定需要刷新的地表范围信息;
从预先生成的图集中获取所述目标层级对应的贴图数据,所述图集中包括至少两个贴图图像,所述贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片;
基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集;
基于所述更新后的图集确定可视范围内的各个像素点的渲染信息;
基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像。
2.根据权利要求1中所述的方法,其特征在于,所述确定需要刷新的地表范围信息,包括:
获取所述虚拟对象的移动方向;
基于所述移动方向、所述移动距离和所述目标层级的尺寸信息,确定所述需要刷新的地表范围信息。
3.根据权利要求2中所述的方法,其特征在于,所述基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,包括:
将所述目标层级对应的贴图数据按照虚拟对象的移动方向和移动距离进行偏移,得到偏移后的贴图数据;
将所述偏移后的贴图数据存储至临时图像,所述临时图像的尺寸与所述目标层级的贴图数据的尺寸相同;
确定需要刷新的地表范围信息对应的补充贴图数据;
将所述补充贴图数据添加到所述临时图像,并将所述临时图像确定为更新后的贴图数据。
4.根据权利要求3中所述的方法,其特征在于,所述图集中包括颜色贴图、法线高度贴图和材质贴图,对应地,所述更新后的贴图数据包括更新后的颜色贴图区域、更新后的法线高度贴图区域和更新后的材质贴图区域,所述基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集,包括:
将所述颜色贴图中所述目标层级对应的原始颜色贴图区域替换为所述更新后的颜色贴图区域,得到更新后的颜色贴图;
将所述法线高度贴图中所述目标层级对应的原始法线高度贴图区域替换为所述更新后的法线高度贴图区域,得到更新后的法线高度贴图;
将所述材质贴图中所述目标层级对应的原始材质贴图区域替换为所述更新后的材质贴图区域,得到更新后的材质贴图;
将所述更新后的颜色贴图、所述更新后的法线高度贴图和所述更新后的材质贴图确定为更新后的图集。
5.根据权利要求4中所述的方法,其特征在于,所述方法还包括:
获取预先生成的第一权重图和各个细节层级对应的待混合的多个地表纹理图像;
基于所述第一权重图对所述各个细节层级对应的多个地表纹理图像进行融合处理,得到各个细节层级对应的融合后的地表纹理图像,其中不同细节层级对应的融合后的地表纹理图像尺寸相同,但具有不同的覆盖范围;
将所述各个细节层级对应的融合后的地表纹理图像进行合成处理,得到颜色贴图。
6.根据权利要求4中所述的方法,其特征在于,所述方法还包括:
获取各个细节层级对应覆盖范围中各个像素点的法线信息,对所述法线信息进行压缩处理,得到压缩后的法线信息;
获取所述各个细节层级对应覆盖范围中各个像素点的高度信息;
基于所述各个细节层级对应覆盖范围中各个像素点的压缩后的法线信息和高度信息,生成所述各个细节层级对应的法线高度图;
将所述各个细节层级对应的法线高度图进行合成处理,得到法线高度贴图。
7.根据权利要求1中所述的方法,其特征在于,所述基于所述更新后的图集确定可视范围内的各个像素点的渲染信息,包括:
获取可视范围内各个像素点的世界坐标;
基于所述各个像素点的世界坐标确定所述各个像素点的纹理映射坐标;
基于所述各个像素点的纹理映射坐标从所述更新后的图集中确定所述各个像素点的渲染信息。
8.根据权利要求7中所述的方法,其特征在于,所述基于所述各个像素点的纹理映射坐标从所述更新后的图集中确定所述各个像素点的渲染信息,包括:
基于所述各个像素点的纹理映射坐标确定所述各个像素点所在的细节层级和所述细节层级中心位置的中心坐标;
基于所述各个像素点的纹理映射坐标和所述中心坐标,确定所述各个像素点与所述中心位置的距离;
当第i个像素点对应的距离小于预设的距离阈值时,将所述更新后的图集中所述第i个像素点纹理映射坐标对应的像素值确定为所述第i个像素点的渲染信息,其中,i=1,2,…,N,N为像素点总数,N为大于2的正整数。
9.根据权利要求8中所述的方法,其特征在于,所述基于所述各个像素点的纹理映射坐标从所述更新后的图集中确定所述各个像素点的渲染信息,包括:
当所述第i个像素点对应的距离大于或者等于所述距离阈值时,基于所述距离确定坐标更新权重;
当基于所述坐标更新权重确定所述第i个像素点需要进行坐标更新时,从所述第i个像素点所在细节层级的下一个层级确定所述第i个像素点的目标像素点,其中,目标像素点为第i个像素点坐在细节层级的下一个层级中与第i个像素点具有相同世界坐标的像素点;
将所述目标像素点对应的像素值确定为所述第i个像素点的渲染信息。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:
获取待渲染模型的模型标识,基于所述模型标识确定所述待渲染模型为位于地表之上的其他模型时,获取所述其他模型对应的贴图数据;
获取所述其他模型上各个像素点的法线信息,并将所述各个像素点的法线取反方向,得到反向法线信息;
将所述反向法线信息和各个像素点对应的高度差的乘积,确定为调整坐标;
利用所述调整坐标对所述各个像素点的世界坐标进行调整,得到所述各个像素点调整后的世界坐标;
基于所述各个像素点调整后的世界坐标确定所述各个像素点的渲染信息。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在确定出位于地表之上的其他模型的渲染信息之后,确定所述其他模型中各个像素点与地表的高度差;
基于所述高度差确定所述各个像素点对应的混合权重;
获取所述各个像素点对应的地表参考像素点和所述地表参考像素点的渲染信息;
基于所述各个像素点对应的混合权重,将所述各个像素点的渲染信息和所述各个像素点对应地表参考像素点的渲染信息进行融合处理,得到融合后的渲染信息;
将所述融合后的渲染信息更新为所述各个像素点的渲染信息。
12.一种地形图像渲染装置,其特征在于,所述装置包括:
第二获取模块,用于在监测到虚拟对象在虚拟场景中移动时,获取所述虚拟对象的移动距离和各个细节层级对应的尺寸信息;
第三确定模块,用于确定所述移动距离与各个细节层级对应的尺寸信息之间的比值;
第四确定模块,确定存在比值大于预设的比值阈值的细节层级时,确定达到刷新时机;
第一确定模块,用于将所述比值大于所述比值阈值的细节层级确定为待刷新的目标层级,确定需要刷新的地表范围信息;
第一获取模块,用于从预先生成的图集中分别获取所述目标层级对应的贴图数据,所述图集中包括至少两个贴图图像,所述贴图图像中包括多个以裁剪映射的方式生成的不同距离的细节层级图片;
第一更新模块,用于基于所述地表范围信息对所述目标层级对应的贴图数据进行更新,得到更新后的贴图数据,并基于所述更新后的贴图数据对所述图集进行更新,得到更新后的图集;
第二确定模块,用于基于所述更新后的图集确定可视范围内的各个像素点的渲染信息;
第一渲染模块,用于基于所述各个像素点的渲染信息渲染所述可视范围内的地形图像。
13.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至11任一项所述的方法。
14.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至11任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210596593.7A CN114677467B (zh) | 2022-05-30 | 2022-05-30 | 地形图像渲染方法、装置、设备及计算机可读存储介质 |
PCT/CN2023/084552 WO2023231537A1 (zh) | 2022-05-30 | 2023-03-29 | 地形图像渲染方法、装置、设备及计算机可读存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210596593.7A CN114677467B (zh) | 2022-05-30 | 2022-05-30 | 地形图像渲染方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114677467A CN114677467A (zh) | 2022-06-28 |
CN114677467B true CN114677467B (zh) | 2022-09-02 |
Family
ID=82080415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210596593.7A Active CN114677467B (zh) | 2022-05-30 | 2022-05-30 | 地形图像渲染方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114677467B (zh) |
WO (1) | WO2023231537A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114677467B (zh) * | 2022-05-30 | 2022-09-02 | 腾讯科技(深圳)有限公司 | 地形图像渲染方法、装置、设备及计算机可读存储介质 |
CN115690286B (zh) * | 2022-10-19 | 2023-08-29 | 珠海云洲智能科技股份有限公司 | 三维地形生成方法、终端设备及计算机可读存储介质 |
CN117036576B (zh) * | 2023-10-09 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 地图渲染方法、装置、电子设备及存储介质 |
CN117557710B (zh) * | 2024-01-12 | 2024-05-03 | 深圳市其域创新科技有限公司 | 一种纹理渲染方法、装置、终端设备及存储介质 |
CN117975912A (zh) * | 2024-03-28 | 2024-05-03 | 深圳市善之能科技有限公司 | 一种设备中的显示屏的图像刷新方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7436405B2 (en) * | 2004-05-14 | 2008-10-14 | Microsoft Corporation | Terrain rendering using nested regular grids |
US7626591B2 (en) * | 2006-01-24 | 2009-12-01 | D & S Consultants, Inc. | System and method for asynchronous continuous-level-of-detail texture mapping for large-scale terrain rendering |
CN101261743B (zh) * | 2007-10-19 | 2010-12-01 | 北京航空航天大学 | 一种基于规则网格的大规模地形漫游模拟方法 |
CN104484896B (zh) * | 2014-10-30 | 2018-01-16 | 无锡梵天信息技术股份有限公司 | 一种基于环境贴图来模拟人物皮肤次表面散射的物理方法 |
CN109949693B (zh) * | 2019-04-17 | 2021-12-10 | 珠海金山网络游戏科技有限公司 | 一种地图绘制方法、装置、计算设备及存储介质 |
US11170576B2 (en) * | 2019-09-20 | 2021-11-09 | Facebook Technologies, Llc | Progressive display of virtual objects |
CN114677467B (zh) * | 2022-05-30 | 2022-09-02 | 腾讯科技(深圳)有限公司 | 地形图像渲染方法、装置、设备及计算机可读存储介质 |
-
2022
- 2022-05-30 CN CN202210596593.7A patent/CN114677467B/zh active Active
-
2023
- 2023-03-29 WO PCT/CN2023/084552 patent/WO2023231537A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN114677467A (zh) | 2022-06-28 |
WO2023231537A1 (zh) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114677467B (zh) | 地形图像渲染方法、装置、设备及计算机可读存储介质 | |
US10713845B2 (en) | Three-dimensional modelling with improved virtual reality experience | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN112256897B (zh) | 一种三维场景下矢量瓦片加载方法 | |
CN111701238B (zh) | 虚拟画卷的显示方法、装置、设备及存储介质 | |
CN109102560B (zh) | 三维模型渲染方法及装置 | |
CN112169324A (zh) | 游戏场景的渲染方法、装置及设备 | |
KR20150124112A (ko) | 3차원 지형 영상 가시화에서의 적응형 렌더링 방법 | |
CN114119818A (zh) | 场景模型的渲染方法、装置及设备 | |
CN111445563B (zh) | 一种图像生成的方法以及相关装置 | |
WO2022161319A1 (zh) | 一种阴影贴图的处理方法、装置、设备及计算机可读存储介质、程序产品 | |
CN115908716A (zh) | 虚拟场景灯光渲染方法、装置、存储介质及电子设备 | |
CN116228960A (zh) | 虚拟博物馆展示系统的构建方法、构建系统和展示系统 | |
CN112231020B (zh) | 模型切换方法和装置、电子设备和存储介质 | |
CN117101127A (zh) | 虚拟场景中的图像渲染方法、装置、电子设备及存储介质 | |
CN112494941A (zh) | 虚拟对象的显示控制方法及装置、存储介质、电子设备 | |
CN113192173B (zh) | 三维场景的图像处理方法、装置及电子设备 | |
CN116958457A (zh) | 一种基于OSGEarth的战争迷雾效果绘制方法 | |
CN114119831A (zh) | 积雪模型的渲染方法、装置、电子设备及可读介质 | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
CN111729303B (zh) | 一种大地图烘焙切割方法及恢复方法 | |
CN116883572B (zh) | 一种渲染方法、装置、设备及计算机可读存储介质 | |
CN116899216B (zh) | 一种虚拟场景中特效融合的处理方法和装置 | |
CN117351126A (zh) | 虚拟场景中雨雪特效的生成方法、装置及电子设备 | |
WO2023221683A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40071512 Country of ref document: HK |