CN112316434A - 地形贴图的加载方法、装置、移动终端及存储介质 - Google Patents
地形贴图的加载方法、装置、移动终端及存储介质 Download PDFInfo
- Publication number
- CN112316434A CN112316434A CN202011277134.XA CN202011277134A CN112316434A CN 112316434 A CN112316434 A CN 112316434A CN 202011277134 A CN202011277134 A CN 202011277134A CN 112316434 A CN112316434 A CN 112316434A
- Authority
- CN
- China
- Prior art keywords
- map
- terrain
- block
- addressing
- tile
- 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
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
Abstract
本申请公开了一种地形贴图的加载方法、装置、移动终端及存储介质,属于计算机和互联网技术领域。所述方法包括:在虚拟相机的位置发生变更的情况下,确定待释放的第一地形贴图块和待添加的第二地形贴图块;在间接寻址贴图中释放第一寻址贴图;根据第二地形贴图块的纹素等级,从间接寻址贴图中选择第二寻址贴图分配给第二地形贴图块;在第二寻址贴图中记录第二地形贴图块在虚拟贴图中的位置信息与在缓存贴图中的位置信息之间的映射关系。本申请中,避免在缓存中存储过多贴图造成的缓存超负荷,减少移动终端在地形渲染过程中的负荷;对释放与添加的合理调度,降低客户端对尺寸过大的间接寻址贴图的管理开销,提高间接寻址贴图的利用率。
Description
技术领域
本申请涉及计算机和互联网技术领域,特别涉及一种地形贴图的加载方法、装置、移动终端及存储介质。
背景技术
虚拟环境地形是构建虚拟三维世界必不可少的一部分,在这种情况下,地形渲染技术的应用较为广泛。在相关技术中,虚拟环境地形通过LOD(Levels of Detail,多细节层次)算法来动态生成地形网格。用于绘制地形的资源通过离线的方式生成好,然后通过CPU(Central Processing Unit,中央处理器)处理后提交给GPU(Graphics Processing Unit,图像处理器)。
然而,上述相关技术在处理规模较大的虚拟环境地形时,资源的准备和更新都是在CPU端完成的,由于数据体量巨大而CPU的算力有限,所以GPU只能等待CPU完成数据处理,极大增加了设备在地形渲染过程中的负荷。
发明内容
本申请实施例提供了一种地形贴图的加载方法、装置、移动终端及存储介质,能够减少移动终端负荷,提高间接寻址贴图的利用率。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种地形贴图的加载方法,所述方法包括:
在虚拟相机的位置发生变更的情况下,确定待释放的第一地形贴图块和待添加的第二地形贴图块;
在间接寻址贴图中释放第一寻址贴图,所述第一寻址贴图是所述第一地形贴图块对应的寻址贴图;其中,所述间接寻址贴图中包括多个纹素等级分别对应的寻址贴图,且每个纹素等级对应的寻址贴图的数量和尺寸是静态划分的;
根据所述第二地形贴图块的纹素等级,从所述间接寻址贴图中选择第二寻址贴图分配给所述第二地形贴图块;
在所述第二寻址贴图中记录所述第二地形贴图块在所述虚拟贴图中的位置信息与在所述缓存贴图中的位置信息之间的映射关系。
根据本申请实施例的一个方面,提供了一种地形贴图的加载装置,所述装置包括:
地形确定模块,用于在虚拟相机的位置发生变更的情况下,确定待释放的第一地形贴图块和待添加的第二地形贴图块;
贴图释放模块,用于在间接寻址贴图中释放第一寻址贴图,所述第一寻址贴图是所述第一地形贴图块对应的寻址贴图;其中,所述间接寻址贴图中包括多个纹素等级分别对应的寻址贴图,且每个纹素等级对应的寻址贴图的数量和尺寸是静态划分的;
贴图分配模块,用于根据所述第二地形贴图块的纹素等级,从所述间接寻址贴图中选择第二寻址贴图分配给所述第二地形贴图块;
关系记录模块,用于在所述第二寻址贴图中记录所述第二地形贴图块在所述虚拟贴图中的位置信息与在所述缓存贴图中的位置信息之间的映射关系。
根据本申请实施例的一个方面,本申请实施例提供了一种移动终端,所述移动终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述地形贴图的加载方法。
根据本申请实施例的一个方面,本申请实施例提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述地形贴图的加载方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。移动终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该移动终端执行上述地形贴图的加载方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过间接寻址贴图中的映射关系来对虚拟环境场地进行渲染,避免在缓存中存储过多贴图造成的缓存超负荷,减少移动终端在地形渲染过程中的负荷;在虚拟相机的位置发成变更时,确定待释放的第一地形贴图块,并从间接寻址贴图中释放该第一地形贴图块对应的第一寻址贴图,使得在客户端不采用第一寻址贴图对虚拟环境地形进行渲染时,及时释放第一地形贴图块所占的间接寻址贴图中的寻址贴图,避免非必要地形贴图块占用寻址贴图造成的资源浪费;而且,针对第一地形贴图块的释放与第二地形贴图块的添加的合理调度,使得释放的寻址贴图能够及时被使用,避免寻址贴图空闲造成的资源浪费,使得间接寻址贴图中不必要设置过多的空闲寻址贴图,有效地减少了间接寻址贴图的尺寸,降低客户端对尺寸过大的间接寻址贴图的管理开销,减少移动终端负荷,寻址贴图的排列紧凑也能够有效提高间接寻址贴图的利用率。
另外,间接寻址贴图中各个纹素等级对应的寻址贴图的静态划分,便于客户端对各个纹素等级的寻址贴图进行管理,避免寻址贴图的动态划分造成的管理不变,有利于提高地形贴图的渲染效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的地形贴图加载系统的示意图;
图2是本申请一个实施例提供的地形贴图的加载方法的流程图;
图3示例性示出了一种虚拟贴图的纹素坐标与缓存贴图的纹素坐标之间的映射关系的示意图;
图4示例性示出了一种相关技术中为虚拟贴图分配寻址贴图的示意图;
图5示例性示出了一种本申请中为虚拟贴图分配寻址贴图的示意图;
图6示例性示出了一种相关技术中渲染获取的颜色与本申请中渲染获取的颜色之间的区别的示意图;
图7示例性示出了一种纹素坐标写入缓存器的方式的示意图;
图8示例性示出了一种虚拟环境地形的划分方式的示意图;
图9示例性示出了一种地形贴图块中相邻纹素的确定方式的示意图;
图10本申请另一个实施例提供的地形贴图的加载方法的流程图;
图11是本申请一个实施例提供的地形贴图的加载装置的框图;
图12是本申请另一个实施例提供的地形贴图的加载装置的框图;
图13是本申请一个实施例提供的移动终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的地形贴图渲染系统的示意图。该地形贴图渲染系统可以包括:移动终端10和服务器20。
移动终端10可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等电子设备。移动终端10中可以安装应用程序的客户端。其中,该应用程序可以是需要下载安装的应用程序,也可以是即点即用的应用程序,本申请实施例对此不作限定。
在本申请实施例中,上述应用程序可以是任何能够提供虚拟环境,以供用户代入和操作的虚拟对象在该虚拟环境中进行活动的应用程序。典型地,该应用程序为游戏应用程序,如大型多人在线角色扮演(Massively Multiplayer Online Role-Playing,MMORP)游戏、大型多人在线(Massive Multiplayer Online,MMO)游戏、在线战术竞技(Multiplayer Online Battle Arena,MOBA)游戏、大型多人在线战略(MassivelyMultiplayer Online Simulation,MMOS)游戏、大逃杀生存(Battle Royale,BR)游戏、第三人称射击游戏(Third-Personal Shooting Game,TPS)、第一人称射击游戏(First-PersonShooting Game,FPS)和多人枪战类生存游戏,等等。当然,除了游戏应用程序之外,其它类型的应用程序中也可以向用户展示虚拟对象,并给虚拟对象提供相应的功能。例如,虚拟现实(Virtual Reality,VR)类应用程序、增强现实(Augmented Reality,AR)类应用程序、三维地图程序、军事仿真程序、社交类应用程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。可选地,移动终端10中运行有上述应用程序的客户端。在一些实施例中,上述应用程序是基于三维的虚拟环境引擎开发的应用程序,比如该虚拟环境引擎是Unity引擎,该虚拟环境引擎能够构建三维的虚拟环境、虚拟对象和虚拟道具等,给用户带来更加沉浸式的游戏体验。
其中,上述虚拟环境是应用程序(如游戏应用程序)的客户端在移动终端上运行时显示(或提供)的场景,该虚拟环境是指营造出的供虚拟对象进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图和虚拟建筑等。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境,也可以是2.5维虚拟环境,或者是三维虚拟环境,本申请实施例对此不作限定。
上述虚拟对象可以是用户帐号在应用程序中控制的虚拟角色,也可以是由应用程序中的计算机程序控制的虚拟角色。以应用程序为游戏应用程序为例,虚拟对象可以是用户帐号在游戏应用程序中控制的游戏角色,也可以是游戏应用程序中的计算机程序控制的游戏怪物。虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。虚拟对象可以三维形式展示,也可以二维形式展示,本申请实施例对此不作限定。可选地,当虚拟环境为三维虚拟环境时,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。
服务器20用于为移动终端10中的应用程序的客户端提供后台服务。例如,服务器20可以是上述应用程序的后台服务器。服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,服务器20同时为多个移动终端10中的应用程序提供后台服务。
可选地,移动终端10和服务器20之间可通过网络30进行互相通信。
请参考图2,其示出了本申请一个实施例提供的地形贴图的加载方法的流程图。该方法可应用于移动终端中,如各步骤的执行主体可以是图1所示的地形贴图渲染系统中的移动终端10(以下称为“客户端”)。该方法可以包括以下几个步骤(201~204):
步骤201,在虚拟相机的位置发生变更的情况下,确定待释放的第一地形贴图块和待添加的第二地形贴图块。
虚拟相机是指用于捕捉虚拟环境的显示画面的辅助道具,虚拟环境是指用于为虚拟对象提供活动的场景。可选地,客户端可以基于虚拟相机的拍摄范围确定虚拟环境的显示范围,进而根据该显示范围渲染该虚拟环境的显示画面。在一种可能的实施方式中,上述虚拟相机位于虚拟对象的斜上方,以虚拟对象的第三人称视角获取虚拟环境的显示画面。在另一种可能的实施方式中,上述虚拟相机位于虚拟对象的正前方,以虚拟对象的第一人称获取虚拟环境的显示画面。当然,在其它可能的实施方式中,用户可以根据实际情况对虚拟相机进行调节,使得虚拟相机能够在不同的场景中以不同的视角获取虚拟环境的显示画面;或者,用户也可以根据实际情况调整虚拟相机的位置,以获取不同位置的虚拟环境的显示画面。
地形贴图块是指对虚拟环境地形划分得到的多个地形块的贴图。可选地,客户端可以将虚拟环境地形块划分为多个等分的地形块,进而在对虚拟环境地形进行渲染时,以地形块为基本单位,采用地形贴图块对对应的地形块进行渲染。在一种可能的实施方式中,地形块是固定的。可选地,客户端在虚拟环境地形显示之前划分好固定的地形块,在这种情况下,地形块不随虚拟相机的位置移动而重新划分。在另一种可能的实施方式中,地形块是变化的。可选地,客户端在对虚拟环境地形进行划分之前,获取虚拟环境的位置,以虚拟相机的位置为基准对虚拟环境地形进行划分,在这种情况下,保证虚拟相机的位置始终处于某个地形块的顶点位置。
在本申请实施例中,客户端可以对虚拟环境中虚拟相机的位置进行检测,在虚拟相机的位置发生变更的情况下,确定待释放的第一地形贴图块和待添加的第二地形贴图块。其中,第一地形贴图块与第二地形贴图块是指纹素等级发生变化的地形块对应的贴图块,纹素等级用于指示地形贴图块在显示时的精致度,示例性地,与虚拟相机距离近的地形贴图块在显示时精致度高,反之,与虚拟相机距离远的地形贴图块在显示时精致度低。需要说明的一点是,每个地形块具有各自的纹素等级,且不同的地形块对应的纹素等级可以相同。可选地,客户端在检测到虚拟相机的位置发生变化的情况下,基于虚拟相机的位置确定纹素等级发生变化的各个地形块,进而确定待释放的第一地形贴图块和待添加的第二地形贴图块。
可选地,客户端在确定待添加的第二地形贴图块之后,可以基于上述虚拟相机与该第二地形贴图块之间的距离,确定第二地形贴图块的纹素等级,进而依据该纹素等级为第二地形贴图块从间接寻址贴图中分配寻址贴图。在一种可能的实施方式中,虚拟相机与地形贴图块之间的距离,与地形贴图块的纹素等级呈正相关关系,且地形贴图块的纹素等级与寻址贴图的尺寸呈负相关关系。也就是说,地形块与虚拟相机之间的距离越近,该地形块对应的地形贴图块与虚拟相机之间的距离越近,地形贴图块的纹素等级越低,该地形贴图块对应的寻址贴图尺寸越大,此时,地形贴图块在显示时的精致度越高。在另一种可能的实施方式中,虚拟相机与地形贴图块之间的距离,与地形贴图块的纹素等级呈负相关关系,且地形贴图块的纹素等级与寻址贴图的尺寸呈正相关关系。也就是说,地形块与虚拟相机之间的距离越近,该地形块对应的地形贴图块与虚拟相机之间的距离越近,地形贴图块的纹素等级越高,该地形贴图块对应的寻址贴图尺寸越大,此时,地形贴图块在显示时的精致度越高。
步骤202,在间接寻址贴图中释放第一寻址贴图。
间接寻址贴图用于记录虚拟贴图中的位置信息和缓存贴图中的位置信息之间的映射关系。其中,上述位置信息中可以包括纹理坐标,纹理坐标用于指示纹理在贴图上的位置,即上述间接寻址贴图用于记录虚拟贴图中的纹理坐标和缓存贴图中的纹理坐标之间的映射关系。可选地,间接寻址贴图的每个像素上记录一个纹理坐标之间的映射关系。示例性地,如图3所示,间接纹理贴图31中存储有虚拟贴图32中的纹素坐标与缓存贴图33中的纹素坐标之间的映射关系。其中,虚拟贴图32中的一个小方格代表一个纹素坐标,间接寻址贴图31上的一个小方格代表一个像素,缓存贴图33上的额小方格代表一个纹素坐标。
在本申请实施例中,间接寻址贴图中包括多个纹素等级分别对应的寻址贴图,且每个纹素等级对应的寻址贴图的数量和尺寸是静态划分的,每个寻址贴图用于记录一个地形贴图块在虚拟贴图中的位置信息与在缓存贴图中的位置信息之间的映射关系。其中,上述寻址贴图的尺寸与地形贴图块的精致度呈正比,可选地,寻址贴图的尺寸越大,则该寻址贴图上可存储的位置信息越多,即寻址贴图上可存储的纹素坐标越多,在这种情况下,地形贴图块在显示时的分辨率高,显示画面精致。
在本申请实施例中,客户端在确定待释放的第一地形贴图块之后,在间接寻址贴图中释放第一寻址贴图。其中,第一寻址贴图是上述第一地形贴图块对应的寻址贴图,该第一寻址贴图用于记录第一地形贴图块中的纹素坐标在虚拟贴图与缓存贴图之间的映射关系。可选地,客户端在确定第一地形贴图块对应的地形块的纹素等级发生变化之后,在间接寻址贴图中获取与该第一地形贴图块对应的寻址贴图,确定该寻址贴图块为第一寻址贴图,进而释放该第一寻址贴图,将该第一寻址贴图上所存储的信息清空,使得第一寻址贴图成为空白贴图,等待分配给下一个地形贴图块,并在分配给下一个地形贴图块之后,第一寻址贴图存储该地形贴图块的纹素坐标在虚拟贴图与缓存贴图之间的映射关系。
需要说明的一点时,在本申请实施例中,间接寻址贴图中释放上述第一寻址贴图之后,在缓存贴图中保留该第一地形贴图块,使得在第一地形贴图块对应的地形块的纹素等级重新恢复至第一地形贴图块的纹素等级时,客户端可以直接采用第一地形贴图块对上述地形块进行渲染,不需要重新获取第一地形贴图块,减少客户端的处理开销。当然,在缓存贴图中存储的地形贴图块的容量超过阈值之后,缓存贴图可以依据时间顺序或各个地形贴图块的使用频率,清除缓存时间最早的地形贴图块,或清除使用频率最低的地形贴图块,保证缓存贴图不会超负荷。
步骤203,根据第二地形贴图块的纹素等级,从间接寻址贴图中选择第二寻址贴图分配给第二地形贴图块。
第二地形贴图块是指待添加的地形贴图块。纹素等级用于指示地形贴图块的精致度。在本申请实施例中,客户端在确定待添加的第二地形贴图块之后,根据第二地形贴图块的纹素等级,从间接寻址贴图中选择第二寻址贴图分配给第二地形贴图块。可选地,客户端在检测到虚拟相机的位置变化之后,根据虚拟相机与地形块之间的距离,确定该地形块对应的地形贴图块与虚拟相机之间的距离,进而基于该地形贴图块与虚拟相机之间的距离确定地形贴图块的纹素等级,即在本申请实施例中,客户端可以基于虚拟相机与第二地形贴图块之间的距离确定该第二地形贴图块的纹素等级。
在本申请实施例中,客户端可以通过链表向第二地形贴图块分配寻址贴图。可选地,上述步骤203包括以下几个步骤:
1、确定与第二地形贴图块的纹素等级相对应的链表。
链表用于记录纹素等级对应的寻址贴图的占用情况。可选地,不同的纹素等级对应的链表不同,即一个链表仅仅管理一个纹素等级对应的寻址贴图。
在本申请实施例中,客户端在确定待添加的第二地形贴图块之后,获取该第二地形贴图块的纹素等级,并确定第二地形贴图块的纹素等级相对应的链表。
2、从链表中获取一个未被占用的寻址贴图,作为第二寻址贴图分配给第二地形贴图块。
在本申请实施例中,客户端在确定与第二地形贴图块的纹素等级相对应的链表之后,从链表中获取一个未被占用的寻址贴图,并将该寻址贴图作为第二寻址贴图分配给第二地形贴图块。可选地,客户端可以在第二地形贴图块的纹素等级对应的链表中查询空闲指针,并将该空闲指令的指针信息所指示的寻址贴图作为第二寻址贴图分配给第二地形贴图块。其中,上述指针信息用于指示未被占用的寻址贴图在间接寻址贴图中的位置。
需要说明的一点是,在链表为第二地形贴图块分配指针之后,该指针的指针信息与第二地形贴图对应的地形块建立关联关系,即第二地形可以直接通过该指正信息确定第二地形贴图块对应的寻址贴图。在这种情况下,在释放地形贴图块对应的训寻址贴图时,需要解除指针信息与地形块之间的关联关系。以上述第一寻址贴图为例,可选地,上述步骤202包括以下几个步骤:
1、获取第一地形贴图块的指针信息。
第一地形贴图块的指针信息用于指示第一地形贴图块对应的第一寻址贴图在间接寻址贴图中的位置。在本申请实施例中,客户端在确定待释放的第一地形贴图块之后,基于该第一地形贴图块对应的地形块获取该第一地形贴图块的指针信息。
2、基于第一地形贴图块的指针信息,在间接寻址贴图中释放第一寻址贴图。
在本申请实施例中,客户端在获取第一地形贴图块的指针信息之后,基于该第一地形贴图块的指针信息,在间接寻址贴图中释放第一寻址贴图。可选地,客户端在释放第一寻址贴图时,可以将该第一寻址贴图中存储的映射关系进行清空,使得该第一寻址贴图恢复为空白的寻址贴图。
3、将链表中第一寻址贴图的占用情况从已被占用修改为未被占用。
在本申请实施例中,在第一寻址贴图释放完成之后,将链表中第一寻址贴图的占用情况从已被占用修改为未被占用。可选地,客户端可以将上述第一地形贴图块的指针信息重新回收至链表中,使得该链表中增加一个可分配的空闲指针,进而在下次分配可以将该空闲指针分配给其它地形贴图块。
还需要说明的一点是,在本申请实施例中,针对第一寻址贴图的及时释放,即在客户端不采用第一地形贴图块对虚拟环境地形进行渲染时,及时释放第一地形贴图块对应的第一寻址贴图,避免第一地形贴图块在非使用过程中对间接寻址贴图资源的占用,能够有效提高间接寻址贴图的利用率,避免不必要的资源占用导致间接寻址贴图的尺寸过大造成的处理开销。
示例性地,在相关技术中,如图4所示,客户端为虚拟贴图40上的第一地形贴图块41分配间接寻址贴42上的第一寻址贴图43,为虚拟贴图40上的第二地形贴图块44分配间接寻址贴42上的第二寻址贴图45,为虚拟贴图40上的第三地形贴图块46分配间接寻址贴42上的第三寻址贴图47,之后,间接寻址贴图42上还存在许多空余的寻址贴图,间接寻址贴图42的利用率低,且间接寻址贴图42的尺寸过大造成客户端的处理开销过大。而本申请实施例提供的技术方案中,如图5所示,客户端以虚拟相机50的位置为基准,确定虚拟贴图51上各个地图块的纹素等级,并根据纹素等级为各个地形块的地形贴图块分配间接寻址贴图52上的寻址贴图。其中,纹素等级小于3的地形块的纹素等级均按照纹素等级为4进行分配。由图5可知,在寻址贴图分配完成后,间接寻址贴图52后中不存在空余的寻址贴图,间接寻址贴图52的利用率低,且间接寻址贴图52的尺寸小,减少客户端的处理开销。
步骤204,在第二寻址贴图中记录第二地形贴图块在虚拟贴图中的位置信息与在缓存贴图中的位置信息之间的映射关系。
在本申请实施例中,客户端在从间接寻址贴图中选择第二寻址贴图分配给第二地形贴图块,在第二寻址贴图中记录第二地形贴图块在虚拟贴图中的位置信息与在缓存贴图中的位置信息之间的映射关系。其中,上述位置信息中包括纹理坐标,可选地,客户端在将上述第二寻址贴图缓存至缓存贴图时,可以根据间接寻址贴图中记录的映射关系,对第二寻址贴图进行绘制,并存储至缓存贴图中。
综上所述,本申请实施例提供的技术方案中,通过间接寻址贴图中的映射关系来对虚拟环境场地进行渲染,避免在缓存中存储过多贴图造成的缓存超负荷,减少移动终端在地形渲染过程中的负荷;在虚拟相机的位置发成变更时,确定待释放的第一地形贴图块,并从间接寻址贴图中释放该第一地形贴图块对应的第一寻址贴图,使得在客户端不采用第一寻址贴图对虚拟环境地形进行渲染时,及时释放第一地形贴图块所占的间接寻址贴图中的寻址贴图,避免非必要地形贴图块占用寻址贴图造成的资源浪费;而且,针对第一地形贴图块的释放与第二地形贴图块的添加的合理调度,使得释放的寻址贴图能够及时被使用,避免寻址贴图空闲造成的资源浪费,使得间接寻址贴图中不必要设置过多的空闲寻址贴图,有效地减少了间接寻址贴图的尺寸,降低客户端对尺寸过大的间接寻址贴图的管理开销,减少移动终端负荷,寻址贴图的排列紧凑也能够有效提高间接寻址贴图的利用率。
另外,间接寻址贴图中各个纹素等级对应的寻址贴图的静态划分,便于客户端对各个纹素等级的寻址贴图进行管理,避免寻址贴图的动态划分造成的管理不变,有利于提高地形贴图的渲染效率。
下面,对地址贴图块写入存储至缓存贴图的方式进行介绍。具体如下:
1、若缓存贴图中还未存储第二地形贴图块,则将第二地形贴图块的颜色空间从线性颜色空间转换为非线性颜色空间,得到转换后的第二地形贴图块。
在本申请实施例中,客户端在确定待添加的第二地形贴图块之后,判断缓存贴图中是否存储该第二地形贴图块。若缓存贴图中还未存储第二地形贴图块,则客户端将第二地形贴图块的颜色空间从线性颜色空间转换为非线性颜色空间,得到转换后的第二地形贴图块。
2、将转换后的第二地形贴图块存储至缓存贴图中。
在本申请实施例中,客户端在获取转换后的第二地形贴图块之后,将该转换后的第二地形贴图块存储至缓存贴图中。可选地,客户端采用RGB565格式将转换后的第二地形贴图块以两张贴图的形式存储在缓存贴图中。其中,上述两张贴图中包括用于存储基本色的贴图和用于存储纹理信息和粗糙度的贴图。
可选地,在本申请实施例中,在需要采用第二地形贴图块对虚拟环境地形进行渲染显示的情况下,从缓存贴图中获取转换后的第二地形贴图块,并将转换后的第二地形贴图块的颜色空间从非线性颜色空间转换为线性颜色空间,得到第二地形贴图块,进而基于第二地形贴图块确定光照信息,并基于转换后的第二地形贴图块和光照信息对所述虚拟环境地形进行渲染显示。
需要说明的一点是,本申请实施例中的针对颜色空间的转换处理,能够有效地较低相关技术中在虚拟环境地形渲染过程中的颜色损失大的问题。示例性地,如图6所示,虚拟环境地形的正确颜色如图像61所示,若采用相关技术对虚拟环境地形进行渲染,则最终显示的颜色如图像62所示,与图像61相差较大,然而,若采用本申请提供的针对颜色空间的转换处理的方式对虚拟环境地形进行渲染,则最终显示的颜色如图63所示,与图像61相差小。
可选地,在本申请实施例中,在将第二地形贴图块存储至缓存贴图之前,可以采用缓冲器来存储第二地形贴图块的纹理坐标,进而在存储第二地形贴图块时,可以通过回读缓冲器来快速存储第二地形贴图块。
在一种可能的实施方式中,客户端在确定待添加的第二地形贴图块之后,通过第一缓冲器和第二缓冲器来存储第二地形贴图块中的纹理坐标。其中,第一缓冲器是指与间接寻址贴图中容量相同的,用于存储第二地形贴图块在虚拟贴图中的纹理坐标的缓冲器。可选地,该第一缓冲器中还可以存储第二地形贴图块的纹理信息在缓存贴图中的存储情况;第二缓冲器是指用于存储缓存贴图中未存储的纹理信息对应的纹理坐标。可选地,第一缓冲器与第二缓冲器的运行步骤具体如下:
1、基于第一缓冲器中存储的信息,确定缓存贴图中是否已存储第二地形贴图块;
2、若缓存贴图中还未存储第二地形贴图块,则将第二地形贴图块在虚拟贴图中的纹理坐标写入第二缓冲器中;
3、通过处理器从第二缓冲器中读取第二地形贴图块在虚拟贴图中的纹理坐标,并从虚拟贴图中获取第二地形贴图块的纹理信息,写入至缓存贴图中。
在本申请实施例中,客户端在确定待添加的第二地形贴图块之后,基于上述间接寻址贴图,将第二地形贴图块在虚拟贴图中的纹理坐标作为纹理标识,在第一缓冲器中输入第二地形贴图块在虚拟贴图中的纹理坐标,并将该纹理坐标对应的纹理信息在缓存贴图中的存储情况同样记录在该第一缓冲器中,进一步地,客户端基于第一缓冲器中存储的信息,确定缓存贴图中是否已存储第二地形贴图块。之后,若缓存贴图中还未存储第二地形贴图块,则客户端将第二地形贴图块在虚拟贴图中的纹理坐标写入第二缓冲器中;进一步地,客户端可以通过处理器从第二缓冲器中读取第二地形贴图块在虚拟贴图中的纹理坐标,并从虚拟贴图中获取第二地形贴图块的纹理信息,写入至缓存贴图中。
需要说明的一点是,上述仅仅是以第二地形贴图块对第一缓冲器和第二缓冲器的示例性介绍,在实际运用中,第一缓存器和第二缓存器可以同时对虚拟环境地形中的各个地形贴图块进行存储。示例性地,结合参考图7,针对虚拟环境地形70中的各个地形贴图块,客户端将各个地形贴图块在虚拟贴图中的纹理坐标存储至第一缓冲器71,并同时在第一缓冲器71中存储各个地形贴图块中纹理坐标对应的纹理信息在缓存贴图中的存储情况,如图,“1”代表已存储,“0”代表未存储,进一步地,将未存储在缓存贴图中的纹理信息对应的纹理坐标写入第二缓冲器72,处理器通过回读第二缓存器72存储的纹理坐标以获取需要存储至缓存贴图中的地形贴图块。
示例性地,上述步骤的代码如下:
half2 indirectionUv=indirectionIndex*IndirectionTextureResInv;//间接寻址贴图的纹理坐标=间接寻址贴图的像素/间接寻址贴图的分辨率
float4 cacheTextureAddr=tex2Dlod(IndirectionTexture,half4(indirectionUv,0,mip));//mip是需求的地形贴图块的纹素等级,采样间接寻址贴图,得到缓存贴图的信息(包括纹理坐标、实际地形贴图块)
uint realMip=DecodeMip(cacheTextureAddr);//解码采样到的间接寻址贴图的信息,得到已加载的纹理信息的实际地形贴图块的纹素等级
#if INTERNAL_VT_FEEDBACK_COMPUTE//使用回读方案1
If(mip!=realMip)//需求的地形贴图块的纹素等级与间接寻址贴图中取到的地形贴图块的纹素等级不一致,说明该地形贴图块的纹理信息不在缓存中,需要记录
在第二缓冲器里读取,读完后清零
在另一种可能的实施方式中,客户端在确定待添加的第二地形贴图块之后,通过第三缓冲器来存储第二地形贴图块中的纹理坐标。其中,第三缓冲器客户端在不支持使用第一缓冲器或第二缓冲器时所使用的,用于存储纹理坐标的缓冲器。可选地,第三缓冲器的运行步骤具体如下:
1、对虚拟环境地形进行划分处理,得到n个虚拟环境地形块,n为正整数,虚拟环境地形块中包括不同纹素等级的地形贴图块;
2、基于地形贴图块中的纹素等级,确定地形贴图块中的纹素数量;
3、根据纹素数量,结合地形贴图块在虚拟贴图块中的位置,在第三缓冲器中输入不同纹素等级的地形贴图块在缓存贴图中的纹理信息;
4、通过处理器从第三缓冲器中读取不同纹素等级的地形贴图的纹理信息,并将不同纹素等级的地形贴图的纹理信息写入至缓存贴图中。
在本申请实施例中,客户端在确定待添加的第二地形贴图块之后,对虚拟环境地形进行划分处理,得到n个虚拟环境地形块。其中,n为正整数,虚拟环境地形块中包括不同纹素等级的地形贴图块。示例性地,如图8所示,将虚拟环境地形80划分四个区域。进一步地,客户端可以对n个虚拟环境地形块进行并行处理,加快获取整个虚拟环境场景的速率。
可选地,客户端在获取上述n个虚拟环境地形块之后,基于地形贴图块中的纹素等级,确定地形贴图块中的纹素数量。其中,地形贴图块的精致度越高,该地形贴图块中的纹素数量越多。示例性地,如图9所示,在纹素等级较低的地形贴图块90中,采用相邻两个纹素共用一个纹理坐标。进一步地,客户端根据纹素数量,结合地形贴图块在虚拟贴图块中的位置,在第三缓冲器中输入不同纹素等级的地形贴图块在缓存贴图中的纹理坐标,进而,客户端通过处理器从第三缓冲器中读取不同纹素等级的地形贴图的纹理信息,并将不同纹素等级的地形贴图的纹理信息写入至缓存贴图中。
上文是以地形贴图块更换的角度对地形贴图的加载方法进行的介绍,下面,仅仅以目标地形贴图块加载的角度对本申请的地形贴图的加载方法进行介绍。
请参考图10,其示出了本申请另一个实施例提供的地形贴图的加载方法的流程图。该方法可应用于移动终端中,如各步骤的执行主体可以是图1所示的地形贴图渲染系统中的移动终端10(以下称为“客户端”)。该方法可以包括以下几个步骤(1001~1004):
步骤1001,确定待加载的目标地形贴图块。
待加载的目标地形块可以是任意未存储至缓存贴图中的地形贴图块。可选地,在本申请实施例中,客户端可以在检测到虚拟相机的位置信息处于新的虚拟环境中时,确定待加载的目标地形贴图块。
步骤1002,根据目标地形贴图块在虚拟贴图中的位置信息,从间接寻址贴图中获取目标地形贴图块在缓存贴图中的位置信息。
在本申请实施例中,客户端在获取待加载的目标地形贴图块之后,根据目标地形贴图块在虚拟贴图中的位置信息,从间接寻址贴图中获取目标地形贴图块在缓存贴图中的位置信息。其中,该间接寻址贴图中包括用于记录目标地形贴图块的位置信息在虚拟贴图与缓存贴图之间的映射关系的寻址贴图,该位置信息中包括纹理坐标,即上述间接寻址贴图中包括用于记录目标地形贴图块的纹理坐标在虚拟贴图与缓存贴图之间的映射关系的寻址贴图。
可选地,上述步骤1002包括以下几个步骤:
1、获取目标地形贴图块的指针信息。
目标地形贴图块的指针信息用于指示目标地形贴图块对应的寻址贴图在间接寻址贴图中的位置,该寻址贴图用于记录目标地形贴图块在虚拟贴图的位置信息与缓存贴图的位置信息之间的映射关系。
在本申请实施例中,客户端在确定待加载的目标地形贴图块之后,获取该目标地形贴图块的指针信息。可选地,目标地形贴图块的指针信息与目标地形贴图块之间具有关联关系,客户端在获取待加载的目标地形贴图块之后,可以获取与该目标地形贴图块具有关联关系的指针信息。
2、基于目标地形贴图块的指针信息,从间接寻址贴图中读取目标地形贴图块对应的寻址贴图。
在本申请实施例中,客户端在获取上述目标地形贴图块的指针信息之后,基于目标地形贴图块的指针信息,从间接寻址贴图中读取目标地形贴图块对应的寻址贴图。
3、根据目标地形贴图块在虚拟贴图中的位置信息以及目标地形贴图块对应的寻址贴图,确定目标地形贴图块在缓存贴图中的位置信息。
可选地,在本申请实施例中,客户端在获取上述目标地形贴图块对应的寻址贴图之后,根据目标地形贴图块在虚拟贴图中的位置信息以及目标地形贴图块对应的寻址贴图,确定目标地形贴图块在缓存贴图中的位置信息。
步骤1003,基于目标地形贴图块在缓存贴图中的位置信息,从缓存贴图中获取目标地形贴图块。
在本申请实施例中,客户端在获取上述目标地形贴图块在缓存贴图中的位置信息之后,基于该位置信息,从缓存贴图中获取目标地形贴图块。可选地,客户端可以在获取上述目标地形贴图块在缓存贴图中的位置信息之后,基于该位置信息在缓存贴图中存储该目标地形贴图,保证缓存贴图中成功存储该目标地形贴图。
步骤1004,采用目标地形贴图块对虚拟环境地形进行渲染显示。
在本申请实施例中,客户端在获取上述目标地形贴图块之后,采用该目标地形贴图块对虚拟环境地形进行渲染显示,进而在显示画面中显示该虚拟环境的显示画面。可选地,客户端在对虚拟环境地形进行渲染显示时,可以从缓存贴图中获取目标地形贴图。
需要说明的一点是,在实际运行中,在对虚拟环境地形进行渲染时,为了减少客户端的处理开销,可以依据虚拟相机的拍摄范围确定显示画面中能够显示的虚拟环境地形,进而依据能够显示的虚拟环境地形,确定所需要的目标地形贴图块进行渲染。
综上所述,本申请实施例提供的技术方案中,通过间接寻址贴图记录目标地形贴图块的位置信息在虚拟贴图和缓存贴图中的映射关系,并采用间接寻址贴图中的映射关系来对虚拟环境场地进行渲染,避免在缓存中存储过多贴图造成的缓存超负荷,有效地降低缓存的工作压力,在保证虚拟环境场景正常显示的同时,减少客户端的处理开销,使得虚拟环境场景的渲染技术能够运用到缓存小的移动终端,提高了虚拟环境相关产品的性能。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图11,其示出了本申请一个实施例提供的地形贴图的加载装置的框图。该装置具有实现上述地形贴图的加载方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是移动终端,也可以设置移动终端中。该装置1100可以包括:地形确定模块1101、贴图释放模块1102、贴图分配模块1103和关系记录模块1104。
地形确定模块1101,用于在虚拟相机的位置发生变更的情况下,确定待释放的第一地形贴图块和待添加的第二地形贴图块。
贴图释放模块1102,用于在间接寻址贴图中释放第一寻址贴图,所述第一寻址贴图是所述第一地形贴图块对应的寻址贴图;其中,所述间接寻址贴图中包括多个纹素等级分别对应的寻址贴图,且每个纹素等级对应的寻址贴图的数量和尺寸是静态划分的。
贴图分配模块1103,用于根据所述第二地形贴图块的纹素等级,从所述间接寻址贴图中选择第二寻址贴图分配给所述第二地形贴图块。
关系记录模块1104,用于在所述第二寻址贴图中记录所述第二地形贴图块在所述虚拟贴图中的位置信息与在所述缓存贴图中的位置信息之间的映射关系。
在示例性实施例中,所述贴图分配模块1103,用于确定与所述第二地形贴图块的纹素等级相对应的链表,所述链表用于记录所述纹素等级对应的寻址贴图的占用情况;从所述链表中获取一个未被占用的寻址贴图,作为所述第二寻址贴图分配给所述第二地形贴图块。
在示例性实施例中,所述贴图释放模块1102,用于获取所述第一地形贴图块的指针信息,所述第一地形贴图块的指针信息用于指示所述第一地形贴图块对应的所述第一寻址贴图在所述间接寻址贴图中的位置;基于所述第一地形贴图块的指针信息,在所述间接寻址贴图中释放所述第一寻址贴图;将所述链表中所述第一寻址贴图的占用情况从已被占用修改为未被占用。
在示例性实施例中,如图12所示,所述装置1100还包括:等级确定模块1105。
等级确定模块1105,用于基于所述虚拟相机与所述第二地形贴图块之间的距离,确定所述第二地形贴图块的纹素等级;其中,所述虚拟相机与地形贴图块之间的距离,与所述地形贴图块的纹素等级呈正相关关系,且所述地形贴图块的纹素等级与所述寻址贴图的尺寸呈负相关关系;或者,所述虚拟相机与地形贴图块之间的距离,与所述地形贴图块的纹素等级呈负相关关系,且所述地形贴图块的纹素等级与所述寻址贴图的尺寸呈正相关关系。
在示例性实施例中,如图12所示,所述装置1100还包括:存储判断模块1106、坐标写入模块1107和贴图写入模块1108。
存储判断模块1106,用于基于第一缓冲器中存储的信息,确定所述缓存贴图中是否已存储所述第二地形贴图块;其中,所述第一缓冲器用于记录所述第二地形贴图块在所述虚拟贴图中的纹理坐标的缓冲器,以及所述第二地形贴图块的纹理信息在所述缓存贴图中的存储情况。
坐标写入模块1107,用于若所述缓存贴图中还未存储所述第二地形贴图块,则将所述第二地形贴图块在所述虚拟贴图中的纹理坐标写入第二缓冲器中。
贴图写入模块1108,用于通过处理器从所述第二缓冲器中读取所述第二地形贴图块在所述虚拟贴图中的纹理坐标,并从所述虚拟贴图中获取所述第二地形贴图块的纹理信息,写入至所述缓存贴图中。
在示例性实施例中,如图12所示,所述装置1100还包括:地形划分模块1109、数量确定模块1110和坐标输入模块1111。
地形划分模块1109,用于对虚拟环境地形进行划分处理,得到n个虚拟环境地形块,所述n为正整数,所述虚拟环境地形块中包括不同纹素等级的地形贴图块。
数量确定模块1110,用于基于所述地形贴图块中的纹素等级,确定所述地形贴图块中的纹素数量。
坐标输入模块1111,用于根据所述纹素数量,结合所述地形贴图块在所述虚拟贴图块中的位置,在第三缓冲器中输入所述不同纹素等级的地形贴图块在所述缓存贴图中的纹理坐标。
所述贴图写入模块1108,还用于通过处理器从所述第三缓冲器中读取所述不同纹素等级的地形贴图的纹理坐标,并将所述不同纹素等级的地形贴图的纹理坐标对应的纹理信息写入至所述缓存贴图中。
在示例性实施例中,如图12所示,所述装置1100还包括:贴图存储模块1112。
贴图存储模块1112,用于若所述缓存贴图中还未存储所述第二地形贴图块,则将所述第二地形贴图块的颜色空间从线性颜色空间转换为非线性颜色空间,得到转换后的第二地形贴图块;将所述转换后的第二地形贴图块存储至所述缓存贴图中。
在示例性实施例中,如图12所示,所述装置1100还包括:地形渲染模块1113。
地形渲染模块1113,用于在需要采用所述第二地形贴图块对虚拟环境地形进行渲染显示的情况下,从所述缓存贴图中获取所述转换后的第二地形贴图块;将所述转换后的第二地形贴图块的颜色空间从所述非线性颜色空间转换为所述线性颜色空间,得到所述第二地形贴图块;基于所述第二地形贴图块确定光照信息;基于所述转换后的第二地形贴图块和所述光照信息对所述虚拟环境地形进行渲染显示。
在示例性实施例中,在所述间接寻址贴图中释放所述第一寻址贴图之后,在所述缓存贴图中保留所述第一地形贴图块。
在示例性实施例中,如图12所示,所述装置1100还包括:信息获取模块1114和贴图获取模块1115。
所述地形确定模块1101,还用于确定待加载的目标地形贴图块。
信息获取模块1114,用于根据所述目标地形贴图块在所述虚拟贴图中的位置信息,从所述间接寻址贴图中获取所述目标地形贴图块在缓存贴图中的位置信息。
贴图获取模块1115,用于基于所述目标地形贴图块在所述缓存贴图中的位置信息,从所述缓存贴图中获取所述目标地形贴图块。
所述地形渲染模块1113,还用于采用所述目标地形贴图块对虚拟环境地形进行渲染显示。
在示例性实施例中,所述信息获取模块1114,还用于获取所述目标地形贴图块的指针信息,所述目标地形贴图块的指针信息用于指示所述目标地形贴图块对应的寻址贴图在所述间接寻址贴图中的位置;基于所述目标地形贴图块的指针信息,从所述间接寻址贴图中读取所述目标地形贴图块对应的寻址贴图;根据所述目标地形贴图块在虚拟贴图中的位置信息以及所述目标地形贴图块对应的寻址贴图,确定所述目标地形贴图块在缓存贴图中的位置信息。
综上所述,本申请实施例提供的技术方案中,通过间接寻址贴图中的映射关系来对虚拟环境场地进行渲染,避免在缓存中存储过多贴图造成的缓存超负荷,减少移动终端在地形渲染过程中的负荷;在虚拟相机的位置发成变更时,确定待释放的第一地形贴图块,并从间接寻址贴图中释放该第一地形贴图块对应的第一寻址贴图,使得在客户端不采用第一寻址贴图对虚拟环境地形进行渲染时,及时释放第一地形贴图块所占的间接寻址贴图中的寻址贴图,避免非必要地形贴图块占用寻址贴图造成的资源浪费;而且,针对第一地形贴图块的释放与第二地形贴图块的添加的合理调度,使得释放的寻址贴图能够及时被使用,避免寻址贴图空闲造成的资源浪费,使得间接寻址贴图中不必要设置过多的空闲寻址贴图,有效地减少了间接寻址贴图的尺寸,降低客户端对尺寸过大的间接寻址贴图的管理开销,减少移动终端负荷,寻址贴图的排列紧凑也能够有效提高间接寻址贴图的利用率。
另外,间接寻址贴图中各个纹素等级对应的寻址贴图的静态划分,便于客户端对各个纹素等级的寻址贴图进行管理,避免寻址贴图的动态划分造成的管理不变,有利于提高地形贴图的渲染效率。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图13,其示出了本申请一个实施例提供的移动终端1300的结构框图。该移动终端1300可以是诸如手机、手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等电子设备。该移动终端用于实施上述实施例中提供的地形贴图的加载方法。该移动终端可以是图1所示地形贴图的加载系统中的移动终端10。具体来讲:
通常,移动终端1300包括有:处理器1301和存储器1302。
处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有GPU,GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集,且经配置以由一个或者一个以上处理器执行,以实现上述地形贴图的加载方法。
在一些实施例中,移动终端1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、显示屏1305、摄像头组件1306、音频电路1307、定位组件1308和电源1309中的至少一种。
本领域技术人员可以理解,图13中示出的结构并不构成对移动终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时以实现上述地形贴图的加载方法。
可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。移动终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该移动终端执行上述地形贴图的加载方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种地形贴图的加载方法,其特征在于,所述方法包括:
在虚拟相机的位置发生变更的情况下,确定待释放的第一地形贴图块和待添加的第二地形贴图块;
在间接寻址贴图中释放第一寻址贴图,所述第一寻址贴图是所述第一地形贴图块对应的寻址贴图;其中,所述间接寻址贴图中包括多个纹素等级分别对应的寻址贴图,且每个纹素等级对应的寻址贴图的数量和尺寸是静态划分的;
根据所述第二地形贴图块的纹素等级,从所述间接寻址贴图中选择第二寻址贴图分配给所述第二地形贴图块;
在所述第二寻址贴图中记录所述第二地形贴图块在所述虚拟贴图中的位置信息与在所述缓存贴图中的位置信息之间的映射关系。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第二地形贴图块的纹素等级,从所述间接寻址贴图中选择第二寻址贴图分配给所述第二地形贴图块,包括:
确定与所述第二地形贴图块的纹素等级相对应的链表,所述链表用于记录所述纹素等级对应的寻址贴图的占用情况;
从所述链表中获取一个未被占用的寻址贴图,作为所述第二寻址贴图分配给所述第二地形贴图块。
3.根据权利要求2所述的方法,其特征在于,所述在间接寻址贴图中释放第一寻址贴图,包括:
获取所述第一地形贴图块的指针信息,所述第一地形贴图块的指针信息用于指示所述第一地形贴图块对应的所述第一寻址贴图在所述间接寻址贴图中的位置;
基于所述第一地形贴图块的指针信息,在所述间接寻址贴图中释放所述第一寻址贴图;
将所述链表中所述第一寻址贴图的占用情况从已被占用修改为未被占用。
4.根据权利要求1所述的方法,其特征在于,所述确定待添加的第二地形贴图块之后,还包括:
基于所述虚拟相机与所述第二地形贴图块之间的距离,确定所述第二地形贴图块的纹素等级;
其中,所述虚拟相机与地形贴图块之间的距离,与所述地形贴图块的纹素等级呈正相关关系,且所述地形贴图块的纹素等级与所述寻址贴图的尺寸呈负相关关系;或者,所述虚拟相机与地形贴图块之间的距离,与所述地形贴图块的纹素等级呈负相关关系,且所述地形贴图块的纹素等级与所述寻址贴图的尺寸呈正相关关系。
5.根据权利要求1所述的方法,其特征在于,所述确定待添加的第二地形贴图块之后,还包括:
基于第一缓冲器中存储的信息,确定所述缓存贴图中是否已存储所述第二地形贴图块;其中,所述第一缓冲器用于记录所述第二地形贴图块在所述虚拟贴图中的纹理坐标,以及所述第二地形贴图块的纹理信息在所述缓存贴图中的存储情况;
若所述缓存贴图中还未存储所述第二地形贴图块,则将所述第二地形贴图块在所述虚拟贴图中的纹理坐标写入第二缓冲器中;
通过处理器从所述第二缓冲器中读取所述第二地形贴图块在所述虚拟贴图中的纹理坐标,并从所述虚拟贴图中获取所述第二地形贴图块的纹理信息,写入至所述缓存贴图中。
6.根据权利要求1所述的方法,其特征在于,所述确定待添加的第二地形贴图块之后,还包括:
对虚拟环境地形进行划分处理,得到n个虚拟环境地形块,所述n为正整数,所述虚拟环境地形块中包括不同纹素等级的地形贴图块;
基于所述地形贴图块中的纹素等级,确定所述地形贴图块中的纹素数量;
根据所述纹素数量,结合所述地形贴图块在所述虚拟贴图块中的位置,在第三缓冲器中输入所述不同纹素等级的地形贴图块在所述缓存贴图中的纹理坐标;
通过处理器从所述第三缓冲器中读取所述不同纹素等级的地形贴图的纹理坐标,并将所述不同纹素等级的地形贴图的纹理坐标对应的纹理信息写入至所述缓存贴图中。
7.根据权利要求1所述的方法,其特征在于,所述确定待添加的第二地形贴图块之后,还包括:
若所述缓存贴图中还未存储所述第二地形贴图块,则将所述第二地形贴图块的颜色空间从线性颜色空间转换为非线性颜色空间,得到转换后的第二地形贴图块;
将所述转换后的第二地形贴图块存储至所述缓存贴图中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在需要采用所述第二地形贴图块对虚拟环境地形进行渲染显示的情况下,从所述缓存贴图中获取所述转换后的第二地形贴图块;
将所述转换后的第二地形贴图块的颜色空间从所述非线性颜色空间转换为所述线性颜色空间,得到所述第二地形贴图块;
基于所述第二地形贴图块确定光照信息;
基于所述转换后的第二地形贴图块和所述光照信息对所述虚拟环境地形进行渲染显示。
9.根据权利要求1所述的方法,其特征在于,在所述间接寻址贴图中释放所述第一寻址贴图之后,在所述缓存贴图中保留所述第一地形贴图块。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:
确定待加载的目标地形贴图块;
根据所述目标地形贴图块在所述虚拟贴图中的位置信息,从所述间接寻址贴图中获取所述目标地形贴图块在缓存贴图中的位置信息;
基于所述目标地形贴图块在所述缓存贴图中的位置信息,从所述缓存贴图中获取所述目标地形贴图块;
采用所述目标地形贴图块对虚拟环境地形进行渲染显示。
11.根据权利要求10所述的方法,其特征在于,所述根据所述目标地形贴图块在所述虚拟贴图中的位置信息,从所述间接寻址贴图中获取所述目标地形贴图块在缓存贴图中的位置信息,包括:
获取所述目标地形贴图块的指针信息,所述目标地形贴图块的指针信息用于指示所述目标地形贴图块对应的寻址贴图在所述间接寻址贴图中的位置;
基于所述目标地形贴图块的指针信息,从所述间接寻址贴图中读取所述目标地形贴图块对应的寻址贴图;
根据所述目标地形贴图块在虚拟贴图中的位置信息以及所述目标地形贴图块对应的寻址贴图,确定所述目标地形贴图块在缓存贴图中的位置信息。
12.一种地形贴图的加载装置,其特征在于,所述装置包括:
地形确定模块,用于在虚拟相机的位置发生变更的情况下,确定待释放的第一地形贴图块和待添加的第二地形贴图块;
贴图释放模块,用于在间接寻址贴图中释放第一寻址贴图,所述第一寻址贴图是所述第一地形贴图块对应的寻址贴图;其中,所述间接寻址贴图中包括多个纹素等级分别对应的寻址贴图,且每个纹素等级对应的寻址贴图的数量和尺寸是静态划分的;
贴图分配模块,用于根据所述第二地形贴图块的纹素等级,从所述间接寻址贴图中选择第二寻址贴图分配给所述第二地形贴图块;
关系记录模块,用于在所述第二寻址贴图中记录所述第二地形贴图块在所述虚拟贴图中的位置信息与在所述缓存贴图中的位置信息之间的映射关系。
13.一种移动终端,其特征在于,所述移动终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至11任一项所述的地形贴图的加载方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至11任一项所述的地形贴图的加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011277134.XA CN112316434B (zh) | 2020-11-16 | 2020-11-16 | 地形贴图的加载方法、装置、移动终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011277134.XA CN112316434B (zh) | 2020-11-16 | 2020-11-16 | 地形贴图的加载方法、装置、移动终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112316434A true CN112316434A (zh) | 2021-02-05 |
CN112316434B CN112316434B (zh) | 2022-06-10 |
Family
ID=74318218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011277134.XA Active CN112316434B (zh) | 2020-11-16 | 2020-11-16 | 地形贴图的加载方法、装置、移动终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112316434B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794666A (zh) * | 2023-01-31 | 2023-03-14 | 摩尔线程智能科技(北京)有限责任公司 | 纹素的内存地址确定方法、装置、设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334661A (ja) * | 2003-05-09 | 2004-11-25 | Namco Ltd | 画像生成システム、プログラム及び情報記憶媒体 |
CN102422327A (zh) * | 2009-05-14 | 2012-04-18 | 阿尔卡特朗讯公司 | 用于生成对象的三维模型的方法 |
CN104063904A (zh) * | 2013-06-03 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 一种模拟虚拟场景实时处理的方法和装置 |
CN107909638A (zh) * | 2017-11-15 | 2018-04-13 | 网易(杭州)网络有限公司 | 虚拟物体的渲染方法、介质、系统和电子设备 |
CN108694687A (zh) * | 2017-04-07 | 2018-10-23 | 英特尔公司 | 用于保护虚拟化和图形环境中的内容的设备及方法 |
CN108986195A (zh) * | 2018-06-26 | 2018-12-11 | 东南大学 | 一种结合环境映射和全局光照渲染的单镜头混合现实实现方法 |
CN110018742A (zh) * | 2019-04-03 | 2019-07-16 | 北京八亿时空信息工程有限公司 | 一种网络虚拟旅游系统及其构建方法 |
CN110609726A (zh) * | 2019-09-16 | 2019-12-24 | 网易(杭州)网络有限公司 | 贴图处理方法及装置、计算机可读存储介质、电子设备 |
CN111494944A (zh) * | 2020-04-22 | 2020-08-07 | 浙江无端科技股份有限公司 | 一种地形纹理加载方法及相关装置 |
CN111669564A (zh) * | 2019-03-07 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 图像重建方法、系统、设备及计算机可读存储介质 |
-
2020
- 2020-11-16 CN CN202011277134.XA patent/CN112316434B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334661A (ja) * | 2003-05-09 | 2004-11-25 | Namco Ltd | 画像生成システム、プログラム及び情報記憶媒体 |
CN102422327A (zh) * | 2009-05-14 | 2012-04-18 | 阿尔卡特朗讯公司 | 用于生成对象的三维模型的方法 |
CN104063904A (zh) * | 2013-06-03 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 一种模拟虚拟场景实时处理的方法和装置 |
CN108694687A (zh) * | 2017-04-07 | 2018-10-23 | 英特尔公司 | 用于保护虚拟化和图形环境中的内容的设备及方法 |
CN107909638A (zh) * | 2017-11-15 | 2018-04-13 | 网易(杭州)网络有限公司 | 虚拟物体的渲染方法、介质、系统和电子设备 |
CN108986195A (zh) * | 2018-06-26 | 2018-12-11 | 东南大学 | 一种结合环境映射和全局光照渲染的单镜头混合现实实现方法 |
CN111669564A (zh) * | 2019-03-07 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 图像重建方法、系统、设备及计算机可读存储介质 |
CN110018742A (zh) * | 2019-04-03 | 2019-07-16 | 北京八亿时空信息工程有限公司 | 一种网络虚拟旅游系统及其构建方法 |
CN110609726A (zh) * | 2019-09-16 | 2019-12-24 | 网易(杭州)网络有限公司 | 贴图处理方法及装置、计算机可读存储介质、电子设备 |
CN111494944A (zh) * | 2020-04-22 | 2020-08-07 | 浙江无端科技股份有限公司 | 一种地形纹理加载方法及相关装置 |
Non-Patent Citations (5)
Title |
---|
匿名: "Sparse Virtual Texture", 《HTTPS://GAMEINSTITUTE.QQ.COM/COMMUNITY/DETAIL/123185》 * |
匿名: "Sparse Virtual Texture", 《HTTPS://GAMEINSTITUTE.QQ.COM/COMMUNITY/DETAIL/123185》, 18 March 2018 (2018-03-18), pages 1 - 2 * |
李兵: "浅谈Virtual Texture", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/138484024 》 * |
李兵: "浅谈Virtual Texture", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/138484024 》, 6 May 2020 (2020-05-06), pages 3 * |
王守平等: "《三维动画基础技法》", 31 August 2015, 沈阳:辽宁美术出版社, pages: 115 - 120 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794666A (zh) * | 2023-01-31 | 2023-03-14 | 摩尔线程智能科技(北京)有限责任公司 | 纹素的内存地址确定方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112316434B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9480914B2 (en) | Online gaming | |
US10402937B2 (en) | Multi-GPU frame rendering | |
CN1938730B (zh) | 基于寄存器的对纹理请求的排队 | |
CN100432977C (zh) | 用于向多个图形装置传输数据的装置和方法 | |
US5794016A (en) | Parallel-processor graphics architecture | |
US6862027B2 (en) | System and method for parallel execution of data generation tasks | |
US6750872B1 (en) | Dynamic allocation of texture cache memory | |
KR101728624B1 (ko) | 타일 기반 렌더링을 위한 인트라-프레임 타임스탬프들 | |
US11288765B2 (en) | System and method for efficient multi-GPU execution of kernels by region based dependencies | |
CN103995684A (zh) | 超高分辨率平台下的海量影像并行处理显示方法及系统 | |
CN110935169B (zh) | 虚拟对象的控制方法、信息显示方法、装置、设备及介质 | |
CN112288619A (zh) | 用于在渲染图形时预加载纹理的技术 | |
EP1255227A1 (en) | Vertices index processor | |
US10430915B2 (en) | Multi-GPU frame rendering | |
CN112316434B (zh) | 地形贴图的加载方法、装置、移动终端及存储介质 | |
KR102308780B1 (ko) | 캐시 메모리의 관리 방법 및 그 장치 | |
CN116261740A (zh) | 基于每个信道压缩纹理数据 | |
CN117435521B (zh) | 基于gpu渲染的纹理显存映射方法、装置及介质 | |
CN116883575B (zh) | 建筑群渲染方法、装置、计算机设备和存储介质 | |
WO2022116012A1 (zh) | 一种纹理处理的方法和装置 | |
JP5020443B2 (ja) | 共有リソースへのアクセス方法及び装置 | |
CN117710570A (zh) | 光照渲染方法、系统、电子设备及存储介质 | |
CN118043842A (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: 40038861 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |