一种地形纹理加载方法及相关装置制造方法及图纸

技术编号:25162607 阅读:21 留言:0更新日期:2020-08-07 20:53
本申请公开了一种地形纹理加载方法,包括:根据摄像机与地块的距离采用四叉树算法对待渲染地形进行分块,得到多层次细节地形;根据多层次细节地形中每个地块与摄像机的距离计算出每个地块对应的Mipmap等级;根据Mipmap等级对多层次细节地形中每个地块按照摄像机与地块的距离从近到远依次进行纹理合成,得到合成纹理;将合成纹理作为物理纹理进行加载。将此时的地形根据距离远近加载不同细节程度的纹理,降低纹理加载的显存空间,提高处理性能。本申请还公开了一种地形纹理加载装置、服务器以及计算机可读存储介质,具有以上有益效果。

【技术实现步骤摘要】
一种地形纹理加载方法及相关装置
本申请涉及计算机
,特别涉及一种地形纹理加载方法、地形纹理加载装置、服务器以及计算机可读存储介质。
技术介绍
随着信息技术的不断发展,电子游戏的硬件要求随着质量不断攀升。其中,在计算机中进行建模处理的过程使用的纹理贴图会占据较多的显存空间。目前,常用纹理映射技术处理大批量的纹理贴图。进一步的,在地形渲染过程中,用于表现地形细节度的纹理贴图是由好几张不同的纹理贴图融合而成的,而根据细节度不同,需要的纹理贴图数量也不同。但对于要求细节度比较高的超大地形,所需的纹理贴图的总大小很有可能远远超过实际显存的大小。因此,现有技术中就需要应用虚拟纹理技术。现有技术中,整个地形需要的一张超大纹理,该纹理的每个纹理映射细节级别切割成大小相同的小块纹理,一般该小块纹理大小为256X256像素。虚拟纹理有多个Mipmap等级,每个Mipmap等级可以认为是一张单独的纹理贴图,等级越高,则纹理贴图大小越小,低等级的Mipmap等级贴图大小比较大,用于需要高精度贴图的情况下,比如渲染中离摄像机比较近的地形,相反,高等级的Mipmap等级用于离像机比较远的地形。其中,低等级的Mipmap等级加载的前提是已经加载了高等级的Mipmap等级,比如需要加载Mipmap等级3需要,那么必须要先加载Mipmap等级4和Mipmap等级5。在实际渲染过程中,并不是地形所有区域都是可见的,并不需要加载全部的小块纹理,只需要加载实际需要的小块纹理。所有需要的小块纹理被存储在一张物理纹理中,这张物理纹理大小远小于虚拟纹理大小,同时这张物理纹理上的空间是可以被重用的,例如如果某个小块纹理不需要了,可以被卸载。在渲染过程中,采样纹理时分为两步,首先查询对应虚拟纹理的间接纹理(IndirectionTexture),得到实际对应的小块纹理在物理纹理中的位置,然后再采用物理纹理得到对应位置的像素值。如果采样时发现该纹理没有被加载到物理纹理当中去,则需要加载该纹理。加载纹理时,一般需要计算对应地形需要的虚拟纹理Mipmap等级大小并加载对应的Mipmap等级的小块纹理。现有技术中,目前常用方案有两种,分别是MegaVirtualTexture(巨型虚拟纹理)和ProceduralVirtualTexture(过程虚拟纹理)。其中,MegaVirtualTexture预先生成地形的小块纹理,然后实际需要的时候去加载。而ProceduralVirtualTexture则是实时合成小块纹理。但是,MegaVirtualTexture缺点在于需要预先合成纹理并保存到磁盘当中,如果纹理较大的情况下,纹理大小可能达到上百G大小,极大地占用磁盘空间。ProceduralVirtualTexture实时合成需要的纹理,如果需要合成的小块纹理数量过多,则影响运行时的程序性能。同时由于对于需要加载虚拟纹理的Mipmap等级是在CPU上计算的,现有技术中只是一个较粗略的估计,并不能真实反映GPU实际需要的Mipmap等级,存在误差,一般情况下,GPU需要的Mipmap等级会更高,也就是实际只需要加载比计算结果更少数量的纹理。可见,现有技术均需要耗费巨大的显存空间,用于存放多余的纹理数据。因此,如何解决游戏较大地形渲染过程中纹理贴图数量过多而显存不足的问题是本领域技术人员关注的重点问题。
技术实现思路
本申请的目的是提供一种地形纹理加载方法、地形纹理加载装置、服务器以及计算机可读存储介质,通过首先对待渲染地形进行分块,然后对多层次细节地形,最后在该多层次细节地形中将不同Mipmap等级的纹理同时加载在一个合成纹理中,以便将此时的地形根据距离远近加载不同细节程度的纹理,降低纹理加载的显存空间,提高处理性能。为解决上述技术问题,本申请提供一种地形纹理加载方法,包括:根据摄像机与地块的距离采用四叉树算法对待渲染地形进行分块,得到多层次细节地形;根据所述多层次细节地形中每个地块与摄像机的距离计算出每个地块对应的Mipmap等级;根据所述Mipmap等级对所述多层次细节地形中每个地块按照摄像机与地块的距离从近到远依次进行纹理合成,得到合成纹理;将所述合成纹理作为物理纹理进行加载。可选的,根据摄像机与地块的距离采用四叉树算法对待渲染地形进行分块,得到多层次细节地形,包括:根据所述摄像机与地块的距离分批次将所述待渲染地形分成不同网格密度的多个地形块;将所述不同网格密度的多个地形块进行合成得到所述多层次细节地形。可选的,根据所述多层次细节地形中每个地块与摄像机的距离计算出每个地块对应的Mipmap等级,包括:计算所述摄像机与所述多层次细节地形中每个地块的目标距离;根据预设距离表和所述目标距离对所述多层次细节地形中每个地块进行匹配,得到每个地块的Mipmap等级。可选的,根据所述Mipmap等级对所述多层次细节地形中每个地块按照摄像机与地块的距离从近到远依次进行纹理合成,得到合成纹理,包括:按照所述摄像机与地块的距离从近到远将所述多层次细节地形分为不同层次的多个地块集合;根据所述Mipmap等级对所述多个地块集合分别匹配对应的纹理数据;将所有所述地块集合的纹理数据进行合成,得到所述合成纹理。可选的,还包括:根据所述合成纹理进行间接纹理更新处理得到间接纹理,并将所述间接纹理作为索引。可选的,还包括:使用所述物理纹理进行地形渲染处理。可选的,还包括:在对所述待渲染地形进行分块之前,在GPU中预加载最高级别Mipmap等级对应的所有纹理。本申请还提供一种地形纹理加载装置,包括:地形分块模块,用于根据摄像机与地块的距离采用四叉树算法对待渲染地形进行分块,得到多层次细节地形;Mipmap等级获取模块,用于根据所述多层次细节地形中每个地块与摄像机的距离计算出每个地块对应的Mipmap等级;纹理合成模块,用于根据所述Mipmap等级对所述多层次细节地形中每个地块按照摄像机与地块的距离从近到远依次进行纹理合成,得到合成纹理;纹理加载模块,用于将所述合成纹理作为物理纹理进行加载。本申请还提供一种服务器,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的地形纹理加载方法的步骤。本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的地形纹理加载方法的步骤。本申请所提供的一种地形纹理加载方法,包括:根据摄像机与地块的距离采用四叉树算法对待渲染地形进行分块,得到多层次细节地形;根据所述多层次细节地形中每个地块与摄像机的距离计算出每个地块对应的Mipmap等级;根据所述Mipmap等级对所述多层次细节地形中每个地块按照摄像机与地块的距离从近到远依次进行纹理合成,得到合成纹理;将所述合成纹理作为物理纹理进行加载。首先根据摄像机与地块之间的距本文档来自技高网
...

【技术保护点】
1.一种地形纹理加载方法,其特征在于,包括:/n根据摄像机与地块的距离采用四叉树算法对待渲染地形进行分块,得到多层次细节地形;/n根据所述多层次细节地形中每个地块与摄像机的距离计算出每个地块对应的Mipmap等级;/n根据所述Mipmap等级对所述多层次细节地形中每个地块按照摄像机与地块的距离从近到远依次进行纹理合成,得到合成纹理;/n将所述合成纹理作为物理纹理进行加载。/n

【技术特征摘要】
1.一种地形纹理加载方法,其特征在于,包括:
根据摄像机与地块的距离采用四叉树算法对待渲染地形进行分块,得到多层次细节地形;
根据所述多层次细节地形中每个地块与摄像机的距离计算出每个地块对应的Mipmap等级;
根据所述Mipmap等级对所述多层次细节地形中每个地块按照摄像机与地块的距离从近到远依次进行纹理合成,得到合成纹理;
将所述合成纹理作为物理纹理进行加载。


2.根据权利要求1所述的地形纹理加载方法,其特征在于,根据摄像机与地块的距离采用四叉树算法对待渲染地形进行分块,得到多层次细节地形,包括:
根据所述摄像机与地块的距离分批次将所述待渲染地形分成不同网格密度的多个地形块;
将所述不同网格密度的多个地形块进行合成得到所述多层次细节地形。


3.根据权利要求1所述的地形纹理加载方法,其特征在于,根据所述多层次细节地形中每个地块与摄像机的距离计算出每个地块对应的Mipmap等级,包括:
计算所述摄像机与所述多层次细节地形中每个地块的目标距离;
根据预设距离表和所述目标距离对所述多层次细节地形中每个地块进行匹配,得到每个地块的Mipmap等级。


4.根据权利要求1所述的地形纹理加载方法,其特征在于,根据所述Mipmap等级对所述多层次细节地形中每个地块按照摄像机与地块的距离从近到远依次进行纹理合成,得到合成纹理,包括:
按照所述摄像机与地块的距离从近到远将所述多层次细节地形分为不同层次的多个地块集合;
根据所述Mipmap等级对所述多个地块集合分别匹配对应的纹理数据;

【专利技术属性】
技术研发人员:李鑫
申请(专利权)人:浙江无端科技股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1