CN108122268B - 贴图处理方法和装置 - Google Patents
贴图处理方法和装置 Download PDFInfo
- Publication number
- CN108122268B CN108122268B CN201711371857.4A CN201711371857A CN108122268B CN 108122268 B CN108122268 B CN 108122268B CN 201711371857 A CN201711371857 A CN 201711371857A CN 108122268 B CN108122268 B CN 108122268B
- Authority
- CN
- China
- Prior art keywords
- map
- area
- layer
- preset
- mapping
- 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
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种贴图处理方法和装置。其中,该方法包括:获取观察位置;在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域;以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,在第一层贴图区域中每个叶子节点作为一个贴图节点;分别生成每层贴图区域的每个贴图节点所对应的贴图。本发明解决了相关技术中的贴图处理方法容易导致贴图浪费的情况的技术问题。
Description
技术领域
本发明涉及贴图领域,具体而言,涉及一种贴图处理方法和装置。
背景技术
在游戏系统以及其它涉及到地形网格生成与显示的系统中,经常会遇到生成地表网格并与地表贴图结合渲染显示地表系统的需要。最原始的地形系统的网格统一按照最高密度制作,且对于地形上所处理的贴图没有做处理,从而导致每帧需要处理的顶点数目繁多,且对于贴图的处理复杂,费时费力。随着技术的进步,人们对于地表网格密度以及地形贴图的处理都有了新的进展:为了便于对地形网格系统进行管理,人们大多采用四叉树的构造方式,设定一个最小的尺寸作为叶子节点的尺寸,从而每四个子节点构成一个父节点(节点都是方形的),层层递进以至根节点。最终的渲染就是以这些节点为基础来完成。
在当前的地形渲染系统中最出名的解决方案就是细节级别,(Level of Detail,简称LOD),其核心要旨就在于在必要的地方(如距离相机最近的位置或者高低落差比较大的位置等)使用最高精度的数据(高密度的网格,高分辨率的贴图等),而在不必要的地方(如距离相机较远的或者地势比较平坦的位置)则使用低精度的数据。LOD是个统称,凡是借鉴了上述思想的技术方案都可以归入到LOD的范畴。而当前的主流LOD可以按照高精度数据使用方式划分为以下两大类,分别是基于相机的LOD(camera-based LOD)以及基于高度的LOD(height-based LOD)。其中,Camera-based LOD指的是距离相机较近的位置使用高精度数据,而距离相机较远的位置使用低精度数据的LOD系统。这种系统对于地表贴图而言是比较有利的,较近的地方贴图清晰,较远的位置贴图虽然模糊,但因为距离的关系并不会有什么影响。
目前,Camera-based LOD系统采用最多的策略为将之前所说的四叉树节点按照距离相机的远近分割为不同的Level。首先设定一系列的距离阈值fDist0,fDist1…fDistn,大于fDist0小于fDist1的归入第一层,大于fDist1小于fDist2的归入第二层,以此类推。第一层按照最高分辨率的贴图绘制(如假设每个叶子节点占用一张1024*1024的贴图),第二层按照次一级分辨率的贴图绘制(如每个叶子节点的父节点占用一张1024*1024贴图,相对于上一层分辨率下降到四分之一),以此类推等等。
Camera-based LOD系统使用的贴图数目比较多,占用显存较大。举例估计,以叶子节点的边长作为第一层节点的判定距离fDist1,那么在最恶劣情况下,第一层将占用九张贴图,如图1所示,圆环表示第一层覆盖范围,与之相交的节点均归属于第一层贴图范围,并且,当下的主流地形系统为了便于管理都是采用四叉树的结构,故而贴图的生成都是以节点为单位生成的,如果按照每层判定距离乘以二的方式来进行贴图的划分,在这种情况下,假设图1中每个格子为一个叶子节点,左上角的四个格子为叶子节点的父节点,那么其右侧的同级父节点对应的四个叶子节点只有左边的两个落在第一层贴图范围中,剩下的两个则落在第二层贴图范围中,即父节点对应的四个叶子节点中对应的贴图将有一半处于高分辨率状态,另一半处于低分辨率状态,这种情况处理复杂,容易导致贴图浪费。
针对相关技术中的贴图处理方法容易导致贴图浪费的情况的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种贴图处理方法和装置,以至少解决相关技术中的贴图处理方法容易导致贴图浪费的情况的技术问题。
根据本发明实施例的一个方面,提供了一种贴图处理方法,该方法包括:获取观察位置;在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域;以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,在第一层贴图区域中每个叶子节点作为一个贴图节点;分别生成每层贴图区域的每个贴图节点所对应的贴图。
进一步地,在分别生成每层贴图区域的每个贴图节点所对应的贴图之后,该方法还包括:在观察位置发生移动的情况下,确定观察位置超出任意一层贴图区域对应的预设区域内,其中,预设区域为预先设置的、在对应层贴图区域之内的、并且以对应层贴图区域的中心点为基准的区域;移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内。
进一步地,确定观察位置超出任意一层贴图区域对应的预设区域内包括:获取观察位置在平面直角坐标系中预设轴上的投影位置;确定每层贴图区域的预设区域对应的预设区间,其中,预设区间为对应的预设区域在预设轴上的投影区间;确定投影位置超出任意一层贴图区域对应的预设区间内。
进一步地,移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内包括:将对应层贴图区域沿对应层贴图区域的中心点指向投影位置的方向移动至少一个叶子节点的距离以使观察位置处于对应层贴图区域对应的预设区域内。
进一步地,在移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内之后,该方法还包括:确定两个存在共用边界的贴图区域相差的层数超过预设层数;将层数较高的贴图区域沿层数较高的贴图区域的中心点朝向共用边界的方向移动预设距离。
进一步地,预设距离为层数较高的贴图区域的低一层贴图区域的贴图节点的边长。
进一步地,在层数相邻的两个贴图区域中,层数较高的贴图区域中每个贴图节点的覆盖面积等于层数较低的贴图区域的覆盖面积。
根据本发明实施例的另一方面,还提供了一种贴图处理装置,该装置包括:获取单元,用于获取观察位置;选取单元,用于在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域;第一生成单元,用于以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,位于上层的贴图区域中每个贴图节点的覆盖面积大于相邻下层的贴图区域中每个贴图节点的覆盖面积,在第一层贴图区域中每个叶子节点作为一个贴图节点;第二生成单元,用于分别生成每层贴图区域的每个贴图节点所对应的贴图。
进一步地,该装置还包括:第一确定单元,用于在分别生成每层贴图区域的每个贴图节点所对应的贴图之后,在观察位置发生移动的情况下,确定观察位置超出任意一层贴图区域对应的预设区域内,其中,预设区域为预先设置的、在对应层贴图区域之内的、并且以对应层贴图区域的中心点为基准的区域;第一移动单元,用于移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内。
进一步地,第一确定单元包括:获取模块,用于获取观察位置在平面直角坐标系中预设轴上的投影位置;第一确定模块,用于确定每层贴图区域的预设区域对应的预设区间,其中,预设区间为对应的预设区域在预设轴上的投影区间;第二确定模块,用于确定投影位置超出任意一层贴图区域对应的预设区间内。
进一步地,第一移动单元包括:第一移动模块,用于将对应层贴图区域沿对应层贴图区域的中心点指向投影位置的方向移动至少一个叶子节点的距离以使观察位置处于对应层贴图区域对应的预设区域内。
进一步地,该装置还包括:第二确定单元,用于在移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内之后,确定两个存在共用边界的贴图区域相差的层数超过预设层数;第二移动单元,用于将层数较高的贴图区域沿层数较高的贴图区域的中心点朝向共用边界的方向移动预设距离。
进一步地,预设距离为层数较高的贴图区域的低一层贴图区域的贴图节点的边长。
进一步地,在层数相邻的两个贴图区域中,层数较高的贴图区域中每个贴图节点的覆盖面积等于层数较低的贴图区域的覆盖面积。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明的贴图处理方法。
根据本发明实施例的另一方面,还提供了一种终端,该终端包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,第一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序包括用于执行本发明的贴图处理方法。
在本发明实施例中,通过获取观察位置;在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域;以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,在第一层贴图区域中每个叶子节点作为一个贴图节点;分别生成每层贴图区域的每个贴图节点所对应的贴图,解决了相关技术中的贴图处理方法容易导致贴图浪费的情况的技术问题,进而实现了防止贴图浪费的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术的一种可选的贴图处理方法的示意图;
图2是根据本发明实施例的一种可选的贴图处理方法的流程图;
图3是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图4是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图5是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图6是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图7是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图8是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图9是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图10是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图11是根据本发明实施例的另一种可选的贴图处理方法的示意图;
图12是根据本发明实施例的一种可选的贴图处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请提供了一种贴图处理方法的实施例。
图2是根据本发明实施例的一种可选的贴图处理方法的流程图,如图2所示,该方法包括如下步骤:
步骤S101,获取观察位置;
步骤S102,在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域;
步骤S103,以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,在第一层贴图区域中每个叶子节点作为一个贴图节点;
步骤S104,分别生成每层贴图区域的每个贴图节点所对应的贴图。
该实施例提供的贴图处理方法用于生成贴图系统,在该实施例提供的贴图处理方法所生成的贴图系统中,包括多层贴图区域,每层贴图区域包括多个贴图节点,进而在生成贴图时,可以根据贴图节点生成贴图,防止出现某个贴图节点中包括处于不同层级的贴图区域的多个部分,进而可以防止贴图资源的浪费,并能够简化贴图处理过程。
在步骤S101提供的方案中,获取观察位置是当前的观察位置,在该实施例提供的贴图处理方法应用于Camera-based LOD系统的情况下,观察位置是指相机的位置。
步骤S102至步骤S104提供的方案是贴图系统的初始生成步骤,可以在初始状态下或者需要再次重新生成贴图系统的情况(例如,观察位置移动的距离较大)下执行步骤S102至步骤S104生成贴图系统。
地形中包括多个叶子节点,在步骤S102提供的方案中,在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域,需要说明的是,多个叶子节点是相邻的,例如,可以选择距离观察位置最近的四个叶子节点组成的方形区域作为第一层贴图区域,如图3所示,图3中圆圈表示的位置即为观察位置,由距离观察位置最近的四个叶子节点组成第一层贴图区域。但是,通常观察位置不处于四个叶子节点的中心位置,此时可以按照预设的规则在观察位置四周选择多个叶子节点作为第一层贴图区域。
在步骤S103提供的方案中,以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,其中,在第一层贴图区域中每个叶子节点作为一个贴图节点,具体的,可以预先设定相邻两层贴图区域中层数较高的贴图区域中每个贴图节点的覆盖面积与层数较低的贴图区域的覆盖面积相同,一种可选的实施方式如图4所示,第一层贴图区域包括四个叶子节点,每个叶子节点为一个贴图节点,第二层贴图区域包括四个贴图节点,每个贴图节点的面积与第一层贴图区域的面积相同,依次类推。需要说明的是,贴图区域的层数可以是根据精度的要求预设的,也可以是设定使得能够铺满整个地形的层数。
在生成预设层数的多层贴图区域之后,执行步骤S104,分别生成每层贴图区域的每个贴图节点所对应的贴图,具体的,每个贴图节点所对应的贴图的分辨率可以是相同的,由于层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,因此,层数较低的贴图区域的显示的精度要高于层数较高的贴图区域的显示精度。需要说明的是,并不是每个贴图节点均要生成贴图,可以在生成贴图之前先对每个贴图节点进行判定,判断是否需要生成贴图,例如,如果一个贴图节点被遮挡物挡住,则无需生成贴图。
在生成贴图之后,分别对每个贴图节点进行贴图。可选的,可以由较高层级的贴图区域生成贴图并进行贴图,进而,在处理速度较慢或由其它原因造成的卡顿问题时,较低层级的贴图区域即使未生成贴图,也可以显示较高层级的显示精度较低的贴图。
在通过上述步骤生成初始的贴图系统之后,观察位置可能发生移动,在观察位置发生移动的情况下,根据观察位置的移动对贴图系统进行更新,具体而言,在分别生成每层贴图区域的每个贴图节点所对应的贴图之后,且观察位置发生移动的情况下,确定观察位置超出任意一层贴图区域对应的预设区域内,其中,预设区域为预先设置的、在对应层贴图区域之内的、并且以对应层贴图区域的中心点为基准的区域,移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内。例如,设置第一层贴图区域对应的预设区域为以第一层贴图区域的中心点为基准,且预设区域的面积为第一层贴图区域的9/16,在观察位置超出第一层贴图区域中间的9/16区域时,将第一层贴图区域向超出的方向移动一个叶子节点。
需要说明的是,移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内包括:将对应层贴图区域沿对应层贴图区域的中心点指向投影位置的方向移动至少一个叶子节点的距离以使观察位置处于对应层贴图区域对应的预设区域内,具体地,可以预先设定移动的距离为对应层贴图区域的贴图节点的边长。
在贴图区域位置发生移动之后,释放已经不属于第一层贴图区域的叶子节点的贴图,并对新生成的第一层贴图区域的叶子节点生成新的贴图。
作为一种可选的实施方式,在确定观察位置超出任意一层贴图区域对应的预设区域内时,可以采用如下步骤:获取观察位置在平面直角坐标系中预设轴上的投影位置;确定每层贴图区域的预设区域对应的预设区间,其中,预设区间为对应的预设区域在预设轴上的投影区间;确定投影位置超出任意一层贴图区域对应的预设区间内。
例如,设置第一层贴图区域对应的预设区域为以第一层贴图区域的中心点为基准,且预设区域的面积为第一层贴图区域的9/16,则第一层贴图区域对应的预设区域在平面直角坐标系中横轴上的预设区间为第一层贴图区域在横轴上投影区间的1/8至7/8,如果观察位置在横轴上的投影位置处于第一层贴图区域在横轴上投影区间的1/8位置处或在0~1/8区间时,也即,在投影位置与第一层贴图区域的中心点的距离超出3/4倍的贴图节点的边长时,则将第一层贴图区域向左移动一个叶子节点,如图4和图5所示,在观察位置由图4中的位置移动至图5中的位置时,第一层贴图区域向左移动一个叶子节点,如果观察位置在横轴上的投影位置处于第一层贴图区域在横轴上投影区间的1/8至7/8之间时,将第一层贴图区域移动回原来的区域,如图6所示。
基于上述的根据观察位置的变化移动贴图区域的方案,该实施例提供的贴图处理方法可能会出现某层贴图区域与跨层贴图区域共边的情况,共边是指两层贴图区域存在共用边界,如图7和图8所示,第一层贴图区域与第三层贴图区域存在共边。在出现跨级贴图区域共边的情况下,由于共边的两个贴图区域的精度相差较大,会造成视觉上的不适。
为了解决上述问题,在移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内之后,确定两个存在共用边界的贴图区域相差的层数超过预设层数,如果超过预设层数,则将层数较高的贴图区域沿层数较高的贴图区域的中心点朝向共用边界的方向移动预设距离。具体地,预设距离可以是层数较高的贴图区域的低一层贴图区域的贴图节点的边长。
如图9所示,在相机位置在横轴上的投影位置处于第一层贴图区域在横轴上投影区间的1/8位置处或在0~1/8区间时,需要更新贴图区域,更新贴图区域位置后的贴图系统如图10所示,在图10的贴图系统中第一层贴图区域与第三层贴图区域的左侧共边,将第三层贴图区域向左移动两个叶子节点的边长(等于第二层贴图区域中贴图节点的边长)的距离,移动之后的贴图系统如图11所示。
该实施例通过获取观察位置;在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域;以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,在第一层贴图区域中每个叶子节点作为一个贴图节点;分别生成每层贴图区域的每个贴图节点所对应的贴图,解决了相关技术中的贴图处理方法容易导致贴图浪费的情况的技术问题,进而实现了防止贴图浪费的技术效果。
对上述实施例提供的贴图处理方法的一种具体实施方式的步骤进行描述如下:
1.根据需要设置地表贴图LOD的层数,也即贴图区域的层数或级数。如指定最高六层的实施方案,每层由四张贴图节点构成,每个贴图节点对应一张贴图,每层最多由四张贴图构成,第一层的四张贴图对应于四个叶子节点,后面每一层的四张贴图都对应于四个贴图节点,这四个贴图节点与上一层的贴图区域覆盖范围一致,故而每层贴图的覆盖范围是上一层的2*2倍。
2.根据需要按照层数由低到高的顺序对每帧图像生成若干张贴图直到当前帧图像所需要的所有贴图均已生成完成(限定每帧图像的生成贴图张数是为了缩减每帧贴图生成时间,保证帧率)。
3.相机位置(观察位置)与需要生成贴图的贴图节点的关系说明如下,下面的步骤以第一层的叶子节点为例,其余层类同:
a)初始时,以相机所在的叶子节点的父节点下辖的四个子节点作为四个贴图节点。
b)在相机移动位置后,如果当前相机位置与四个贴图节点的中心点的连线(指向相机位置)向量在水平或者垂直方向上的投影距离超出此节点边长的3/4,则生成新的节点贴图,并释放被取代的节点贴图。以水平移动为例,见图3、图5和图6。最初生成的四张贴图(图3所示的阴影填充的叶子节点)以及相机所在位置(图3所示空心圆点)如图3所示,当相机向左移动到图5中的位置,此位置与原相机位置(也就是四个贴图节点的中心点)的距离恰好是对应的贴图节点边长的3/4,那么生成新的贴图如图5中所示,并释放原来处于第一层贴图区域的右侧的两张贴图。之所以使用3/4的规则,而不用1/2的规则,是为了避免相机在1/2位置来回晃动导致贴图的频繁释放与创建,如此,只有当相机向右移动到图6所示的位置时候,才会进行新一次的释放与创建。
c)如果某贴图与相邻的贴图层级相差过大,如第一级贴图与第四级(上述3/4约束条件保证了不会出现第一级与超出第四级的贴图的交界)贴图交界,就会导致视觉问题。为了解决这个问题,必须做一些约束条件。如图9所示,空心圆圈表示相机位置,当相机位置处于第一级贴图区域左边节点的3/4位置时候,需要更新贴图,其结果如图10所示,此时会出现第一级与第三级的贴图区域共边的情况。为了避免这种可能,在检测到n级贴图区域与n+2贴图区域共用某边界(如第一级贴图区域与第三级贴图区域共边,图10所示)时,就修正n+2级的贴图覆盖范围,使其沿中心点向此共边方向挪动一个单位(也即n+1层贴图区域的贴图节点的边长),结果如图11所示,从而解决跨多级贴图区域的贴图过渡问题。
需要说明的是,在附图的流程图虽然示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请还提供了一种存储介质的实施例,该实施例的存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明实施例的贴图处理方法。
本申请还提供了一种终端的实施例,该实施例的终端包括一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,第一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序包括用于执行本发明实施例的贴图处理方法。
本申请还提供了一种贴图处理装置的实施例。需要说明的是,该实施例提供的贴图处理装置可以用于执行本发明提供的贴图处理方法。
图12是根据本发明实施例的一种可选的贴图处理装置的示意图,如图12所示,该装置包括获取单元10,选取单元20,第一生成单元30和第二生成单元40,其中,获取单元,用于获取观察位置;选取单元,用于在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域;第一生成单元,用于以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,在第一层贴图区域中每个叶子节点作为一个贴图节点;第二生成单元,用于分别生成每层贴图区域的每个贴图节点所对应的贴图。
该实施例通过获取单元获取观察位置,通过选取单元在地形中选取与观察位置的距离最近的多个叶子节点作为第一层贴图区域,通过第一生成单元以第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,通过第二生成单元分别生成每层贴图区域的每个贴图节点所对应的贴图,解决了相关技术中的贴图处理方法容易导致贴图浪费的情况的技术问题,进而实现了防止贴图浪费的技术效果。
作为一种可选的实施方式,该装置还包括:第一确定单元,用于在分别生成每层贴图区域的每个贴图节点所对应的贴图之后,在观察位置发生移动的情况下,确定观察位置超出任意一层贴图区域对应的预设区域内,其中,预设区域为预先设置的、在对应层贴图区域之内的、并且以对应层贴图区域的中心点为基准的区域;第一移动单元,用于移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内。
作为一种可选的实施方式,第一确定单元包括:获取模块,用于获取观察位置在平面直角坐标系中预设轴上的投影位置;第一确定模块,用于确定每层贴图区域的预设区域对应的预设区间,其中,预设区间为对应的预设区域在预设轴上的投影区间;第二确定模块,用于确定投影位置超出任意一层贴图区域对应的预设区间内。
作为一种可选的实施方式,第一移动单元包括:第一移动模块,用于将对应层贴图区域沿对应层贴图区域的中心点指向投影位置的方向移动至少一个叶子节点的距离以使观察位置处于对应层贴图区域对应的预设区域内。
作为一种可选的实施方式,该装置还包括:第二确定单元,用于在移动对应层贴图区域以使观察位置处于对应层贴图区域对应的预设区域内之后,确定两个存在共用边界的贴图区域相差的层数超过预设层数;第二移动单元,用于将层数较高的贴图区域沿层数较高的贴图区域的中心点朝向共用边界的方向移动预设距离。
作为一种可选的实施方式,预设距离为层数较高的贴图区域的低一层贴图区域的贴图节点的边长。
作为一种可选的实施方式,在层数相邻的两个贴图区域中,层数较高的贴图区域中每个贴图节点的覆盖面积等于层数较低的贴图区域的覆盖面积。
上述的装置可以包括处理器和存储器,上述单元均可以作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
上述本申请实施例的顺序不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。
其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (12)
1.一种贴图处理方法,其特征在于,包括:
获取观察位置;
在地形中选取与所述观察位置的距离最近的多个叶子节点作为第一层贴图区域;
以所述第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,在所述第一层贴图区域中每个叶子节点作为一个贴图节点;
分别生成每层贴图区域的每个贴图节点所对应的贴图;
在分别生成每层贴图区域的每个贴图节点所对应的贴图之后,所述方法还包括:在所述观察位置发生移动的情况下,确定所述观察位置超出任意一层贴图区域对应的预设区域内,其中,所述预设区域为预先设置的、在对应层贴图区域之内的、并且以对应层贴图区域的中心点为基准的区域;移动对应层贴图区域以使所述观察位置处于对应层贴图区域对应的预设区域内;
在移动对应层贴图区域以使所述观察位置处于对应层贴图区域对应的预设区域内之后,所述方法还包括:确定两个存在共用边界的贴图区域相差的层数超过预设层数;将层数较高的贴图区域沿所述层数较高的贴图区域的中心点朝向所述共用边界的方向移动预设距离。
2.根据权利要求1所述的方法,其特征在于,确定所述观察位置超出任意一层贴图区域对应的预设区域内包括:
获取所述观察位置在平面直角坐标系中预设轴上的投影位置;
确定每层贴图区域的预设区域对应的预设区间,其中,所述预设区间为对应的预设区域在所述预设轴上的投影区间;
确定所述投影位置超出任意一层贴图区域对应的预设区间内。
3.根据权利要求2所述的方法,其特征在于,移动对应层贴图区域以使所述观察位置处于对应层贴图区域对应的预设区域内包括:
将对应层贴图区域沿对应层贴图区域的中心点指向所述投影位置的方向移动至少一个叶子节点的距离以使所述观察位置处于对应层贴图区域对应的预设区域内。
4.根据权利要求1所述的方法,其特征在于,所述预设距离为所述层数较高的贴图区域的低一层贴图区域的贴图节点的边长。
5.根据权利要求1所述的方法,其特征在于,在层数相邻的两个贴图区域中,层数较高的贴图区域中每个贴图节点的覆盖面积等于层数较低的贴图区域的覆盖面积。
6.一种贴图处理装置,其特征在于,包括:
获取单元,用于获取观察位置;
选取单元,用于在地形中选取与所述观察位置的距离最近的多个叶子节点作为第一层贴图区域;
第一生成单元,用于以所述第一层贴图区域的中心点为基准分别逐层生成预设层数的多层贴图区域,其中,每层贴图区域包括多个贴图节点,层数较高的贴图区域中每个贴图节点的覆盖面积大于层数较低的贴图区域中每个贴图节点的覆盖面积,在所述第一层贴图区域中每个叶子节点作为一个贴图节点;
第二生成单元,用于分别生成每层贴图区域的每个贴图节点所对应的贴图;
所述装置还包括:第一确定单元,用于在分别生成每层贴图区域的每个贴图节点所对应的贴图之后,在所述观察位置发生移动的情况下,确定所述观察位置超出任意一层贴图区域对应的预设区域内,其中,所述预设区域为预先设置的、在对应层贴图区域之内的、并且以对应层贴图区域的中心点为基准的区域;第一移动单元,用于移动对应层贴图区域以使所述观察位置处于对应层贴图区域对应的预设区域内;
所述装置还包括:第二确定单元,用于在移动对应层贴图区域以使所述观察位置处于对应层贴图区域对应的预设区域内之后,确定两个存在共用边界的贴图区域相差的层数超过预设层数;第二移动单元,用于将层数较高的贴图区域沿所述层数较高的贴图区域的中心点朝向所述共用边界的方向移动预设距离。
7.根据权利要求6所述的装置,其特征在于,所述第一确定单元包括:
获取模块,用于获取所述观察位置在平面直角坐标系中预设轴上的投影位置;
第一确定模块,用于确定每层贴图区域的预设区域对应的预设区间,其中,所述预设区间为对应的预设区域在所述预设轴上的投影区间;
第二确定模块,用于确定所述投影位置超出任意一层贴图区域对应的预设区间内。
8.根据权利要求7所述的装置,其特征在于,所述第一移动单元包括:
第一移动模块,用于将对应层贴图区域沿对应层贴图区域的中心点指向所述投影位置的方向移动至少一个叶子节点的距离以使所述观察位置处于对应层贴图区域对应的预设区域内。
9.根据权利要求6所述的装置,其特征在于,所述预设距离为所述层数较高的贴图区域的低一层贴图区域的贴图节点的边长。
10.根据权利要求6所述的装置,其特征在于,在层数相邻的两个贴图区域中,层数较高的贴图区域中每个贴图节点的覆盖面积等于层数较低的贴图区域的覆盖面积。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5任意一项所述的贴图处理方法。
12.一种终端,其特征在于,包括:
一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至5中任意一项所述的贴图处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711371857.4A CN108122268B (zh) | 2017-12-19 | 2017-12-19 | 贴图处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711371857.4A CN108122268B (zh) | 2017-12-19 | 2017-12-19 | 贴图处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108122268A CN108122268A (zh) | 2018-06-05 |
CN108122268B true CN108122268B (zh) | 2021-07-23 |
Family
ID=62230189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711371857.4A Active CN108122268B (zh) | 2017-12-19 | 2017-12-19 | 贴图处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108122268B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105321177A (zh) * | 2015-10-09 | 2016-02-10 | 浙江工业大学 | 一种基于图像重要度的层次图集自动拼贴方法 |
CN105844703A (zh) * | 2016-03-21 | 2016-08-10 | 国网安徽省电力公司宿州供电公司 | 一种基于高精度dem数据的三维地形简化算法 |
CN106485776A (zh) * | 2016-11-23 | 2017-03-08 | 北京三体高创科技有限公司 | 一种3d游戏实时渲染大规模场景的方法及系统 |
CN106652011A (zh) * | 2016-12-27 | 2017-05-10 | 广东科学技术职业学院 | 一种基于lod技术的场地渲染方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8665266B2 (en) * | 2010-06-23 | 2014-03-04 | The United States Of America, As Represented By The Secretary Of The Navy | Global visualization process terrain database builder |
US8982960B2 (en) * | 2011-02-23 | 2015-03-17 | Qualcomm Incorporated | Multi-metric filtering |
-
2017
- 2017-12-19 CN CN201711371857.4A patent/CN108122268B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105321177A (zh) * | 2015-10-09 | 2016-02-10 | 浙江工业大学 | 一种基于图像重要度的层次图集自动拼贴方法 |
CN105844703A (zh) * | 2016-03-21 | 2016-08-10 | 国网安徽省电力公司宿州供电公司 | 一种基于高精度dem数据的三维地形简化算法 |
CN106485776A (zh) * | 2016-11-23 | 2017-03-08 | 北京三体高创科技有限公司 | 一种3d游戏实时渲染大规模场景的方法及系统 |
CN106652011A (zh) * | 2016-12-27 | 2017-05-10 | 广东科学技术职业学院 | 一种基于lod技术的场地渲染方法 |
Non-Patent Citations (3)
Title |
---|
"基于四叉树的视点相关LOD地形仿真算法研究";雷军环等;《制造业自动化》;20100825;第32卷(第8期);第211-215页 * |
"Geometry clipmaps: terrain rendering using nested regular grids";Frank Losasso.etc;《ACM Transactions on Graphics》;20040831;论文全文 * |
"地形可视化中的改进 Geoclipmap算法";张建廷;《计算机应用》;20101231;第30卷(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108122268A (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7385640B2 (ja) | マルチ解像度画像システム | |
CN107610084A (zh) | 一种对深度图像和激光点云图进行信息融合的方法与设备 | |
Cano et al. | Mosaic drawings and cartograms | |
CN110717005A (zh) | 一种热力图纹理的生成方法、装置及设备 | |
US9311748B2 (en) | Method and system for generating and storing data objects for multi-resolution geometry in a three dimensional model | |
CN109035423B (zh) | 一种房屋的虚拟三维模型的楼层分割方法及装置 | |
EP3108453A1 (en) | Method for selecting data files for downloading | |
CN114170360A (zh) | 适用于多种地形数据的合并渲染方法、系统及电子设备 | |
CN109745705B (zh) | 2d游戏地图编辑方法及装置 | |
CN115578536A (zh) | 一种分层分块三维模型节点合并方法、装置和电子装置 | |
CN108122268B (zh) | 贴图处理方法和装置 | |
CN113191221B (zh) | 基于全景相机的车辆检测方法、装置以及计算机存储介质 | |
CN107945273B (zh) | 地形网格的处理方法和装置、存储介质及终端 | |
CN109785421B (zh) | 一种基于空地影像组合的纹理映射方法及系统 | |
CN115830207B (zh) | 三维场景漫游方法、装置、设备和介质 | |
Roig et al. | Study on mobility and migration in a fog computing environment | |
CN108765535A (zh) | 一种三维点云缺失数据区域的标记方法及装置 | |
CN106303208A (zh) | 图像采集控制方法和装置 | |
CN114429511A (zh) | 融合渲染方法、装置、计算机设备和存储介质 | |
CN112150621A (zh) | 基于正射投影的鸟瞰图生成方法、系统及存储介质 | |
CN117292349B (zh) | 确定路面高度的方法、装置、计算机设备及存储介质 | |
KR20050107615A (ko) | 동적 이동체의 시각적 시뮬레이션 | |
CN114840629B (zh) | 居留位置修正方法、装置、电子设备及可读存储介质 | |
CN109542573B (zh) | 一种场景显示方法和装置 | |
CN117274535B (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 |