本发明涉及图像处理技术领域,尤其涉及一种地图渲染方法、装置、设备和存储介质。
背景技术:
由于对地图图像进行渲染的过程中涉及到的计算量较大,因此相关技术中提出了采用多细节层次(levelsofdetail,lod)技术对地图图像进行渲染。
在lod技术中,可以先确定需要渲染的地图图像与预设的摄像机之间的距离,将更多的渲染资源分配给那些与摄像机距离较近的地图图像完成渲染过程,而对于那些与摄像机距离较远的地图图像,会分配较少的渲染资源进行渲染。
由于地图图像中包含的地势在某些情况下比较平缓,而在某些情况下比较复杂,如果平缓的地势与摄像机的距离较近,则会分配到较多的渲染资源进行渲染,但是并未能提高这种图像的细腻程度,因此会导致渲染资源的浪费。
技术实现要素:
本发明实施例提供一种地图渲染方法、装置、设备和存储介质,用以实现在渲染地图图像的过程中节约渲染资源。
第一方面,本发明实施例提供一种地图渲染方法,该方法包括:
获取地图图像中包含的多个地势顶点分别对应的高度值;
基于所述多个地势顶点分别对应的高度值,确定所述地图图像对应的地势变化复杂度;
确定所述地图图像与摄像机之间的距离;
基于所述地势变化复杂度和所述距离,确定所述地图图像对应的渲染资源分配量;
基于所述渲染资源分配量,对所述地图图像进行渲染。
第二方面,本发明实施例提供一种地图渲染装置,包括:
获取模块,用于获取地图图像中包含的多个地势顶点分别对应的高度值;
确定模块,用于基于所述多个地势顶点分别对应的高度值,确定所述地图图像对应的地势变化复杂度;
所述确定模块,用于确定所述地图图像与摄像机之间的距离;
所述确定模块,用于基于所述地势变化复杂度和所述距离,确定所述地图图像对应的渲染资源分配量;
渲染模块,用于基于所述渲染资源分配量,对所述地图图像进行渲染。
第三方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现第一方面中的地图渲染方法。
第四方面,本发明实施例提供了一种计算机可读介质,其上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现第一方面中的地图渲染方法。
通过本发明实施例提供的方法,可以基于地图图像中的地势顶点的高度值的变化情况来确定地势变化复杂度,基于地势变化复杂度来确定渲染地图图像时所使用的渲染资源分配量。这样,可以根据地势变化复杂度的实际情况来考量使用渲染资源分配量的大小,有利于在保证渲染效果的同时尽可能地节约渲染资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种地图渲染方法的流程图示意图;
图2为本发明实施例提供的一种地图图像的示意图;
图3为本发明实施例提供的一种确定地图图像对应的地势变化复杂度方法的流程图示意图;
图4为本发明实施例提供的一种线段组示意图;
图5为本发明实施例提供的另一种线段组示意图;
图6为本发明实施例提供的一种地图渲染装置的结构示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种地图渲染方法的流程图,如图1所示,该方法包括如下步骤:
101、获取地图图像中包含的多个地势顶点分别对应的高度值。
102、基于多个地势顶点分别对应的高度值,确定地图图像对应的地势变化复杂度。
103、确定地图图像与摄像机之间的距离。
104、基于地势变化复杂度和距离,确定地图图像对应的渲染资源分配量。
105、基于渲染资源分配量,对地图图像进行渲染。
上述地图图像可以是游戏中使用的地图图像,该游戏可以是三维游戏,该地图图像可以是三维地图图像。地图图像中可以包含不同地势面貌,地势面貌可以是凹凸不平的。实际应用中,游戏的整个画面可以由三角面片(mesh)组成。游戏的3d世界中任何的面都可以由三角面片绘制而成,这是由于任何无规则的几何图形都可以由三角形来组成。比如四边形,无论是正四边形还是无规则的四边形都可以由两个三角形拼接而成。这些三角片面对应本发明实施例中的地图图像,因此可以直接获取三角片面,确定各三角片面对应的地势顶点的高度值,作为地图图像对应的地势顶点的高度值。
在获取到地图图像中包含的多个地势顶点分别对应的高度值之后,可以基于该多个地势顶点分别对应的高度值,计算每相邻的两个地势顶点之间的高度差。
上述多个地势顶点可以沿第一预设方向和第二预设方向进行排列。为了便于理解多个地势顶点的排列方式,以图2为例说明多个地势顶点的排列方式。图2示出了多个图像块,图中所示的点a1-a25即为多个地势顶点。点a1-a25可以沿第一预设方向和第二预设方向进行排列,第一预设方向与第二预设方向为水平面中处于正交的两个方向。
可选地,在多个地势顶点沿第一预设方向和第二预设方向进行排列的情况下,基于多个地势顶点分别对应的高度值,确定多个地势顶点中每相邻的两个地势顶点之间的高度差的过程可以实现为:基于多个地势顶点分别对应的高度值,确定多个地势顶点中第一预设方向上每相邻的两个地势顶点之间的高度差;基于多个地势顶点分别对应的高度值,确定多个地势顶点中第二预设方向上每相邻的两个地势顶点之间的高度差。
为了便于理解确定高度差的过程,仍以图2为例对确定高度差的过程进行说明。假设第一预设方向为图中的x方向,第二预设方向为图中的z方向,那么对于点a1来说,它的x方向上相邻的点为a2,其他点以及其x方向上相邻的点的确定方式与a1类似,在此不再赘述。在确定点a1-a25中x方向上每相邻的两个地势顶点都包含哪些点之后,可以将x方向上每组相邻的点的高度值做差得到高度差,将x方向上不同组相邻的点分别对应的高度差通过矩阵ax表示,即可得到ax为:
同理,对于点a1来说,它的z方向上相邻的点为a6,其他点以及其z方向上相邻的点的确定方式与a1类似,在此不再赘述。在确定点a1-a25中z方向上每相邻的两个地势顶点都包含哪些点之后,可以将z方向上每组相邻的点的高度值做差得到高度差,将z方向上不同组相邻的点分别对应的高度差通过矩阵az表示,即可得到az为:
上面介绍了确定多个地势顶点中每相邻的两个地势顶点之间的高度差的实现方式,在确定出多个地势顶点中每相邻的两个地势顶点之间的高度差之后,可以基于多个地势顶点中每相邻的两个地势顶点之间的高度差,确定地图图像对应的地势变化复杂度。
在确定地图图像对应的地势变化复杂度之后,还可以确定地图图像与摄像机之间的距离。摄像机的位置可以设置为目标对象的位置,目标对象可以是游戏中操控的对象。与摄像机之间的距离较近的地图图像可以认为是关注度高的图像,可以分配更多的渲染资源分配量用于渲染这种类型的地图图像,与摄像机之间的距离较远的地图图像可以认为是关注度不高的图像,可以分配较少的渲染资源分配量用于渲染这种类型的地图图像,以节约渲染资源。
在计算出地图图像与摄像机之间的距离以及地势变化复杂度之后,可以基于地势变化复杂度和该距离,确定地图图像对应的渲染资源分配量。可以理解的是,当地势变化复杂度较高且距离摄像机较近时,可以相应多分配一些渲染资源分配量给这类地图图像,当地势变化复杂度较低且距离摄像机较远时,可以相对少分配一些渲染资源分配量给这类地图图像。其中,地势变化复杂度较低的地图图像从视觉上看是包含较为平滑的地势面貌的图像,对于这种图像,无需使用过多的渲染资源分配量进行渲染。
下面结合图3所示实施例,示例性说明一种确定地图图像对应的地势变化复杂度的方案。如图3所示,该确定方案可以包括如下步骤:
301、获取地图图像对应的简化顶点数的最大值,从简化顶点数的最大值开始依次递减预设数值,得到简化顶点数序列。
上述简化顶点数也可以称为是lod值,简化顶点数的大小反映了在对地图图像进行简化的过程中对地图图像的简化程度,当简化顶点数较大时,对地图图像的简化程度较大,当简化顶点数较小时,对地图图像的简化程度较小。在本发明实施例中,可以设定简化顶点数的最大值,从简化顶点数的最大值开始逐渐递减预设数值,以得到多个简化顶点数,然后从简化顶点数的最大值开始依次基于当前的简化顶点数对地图图像进行简化处理,直到找到一个符合要求的简化顶点数为止。
举例来说,假设简化顶点数的最大值设定为2且递减的预设数值设定为1,那么由多个简化顶点数组成的简化顶点数序列包括2、1。
对于不同尺寸的地图图像可以设置不同的简化顶点数的最大值,基于此,可选地,获取地图图像对应的简化顶点数的最大值的过程可以实现为:确定地图图像的尺寸;根据地图图像的尺寸,确定地图图像对应的简化顶点数的最大值。
302、逐个从简化顶点数序列中获取简化顶点数,每当获取一个简化顶点数时,基于当前获取的简化顶点数以及多个地势顶点中每相邻的两个地势顶点之间的高度差。
303、确定当前获取的简化顶点数对应的地势变化复杂度。
304、若当前获取的简化顶点数对应的地势变化复杂度满足预设条件,则将当前获取的简化顶点数对应的地势变化复杂度,确定为地图图像对应的地势变化复杂度,且停止继续从简化顶点数序列中获取简化顶点数。
为了方便理解,下面结合具体例子,示例性说明上述步骤的具体实施过程。假设简化顶点数序列中包含两个简化顶点数2、1,可以从最大的简化顶点数开始依次对地图图像进行简化处理。此时,首先可以从简化顶点数序列中获取到简化顶点数为2,基于获取到的简化顶点数值2以及多个地势顶点中每相邻的两个地势顶点之间的高度差,计算简化顶点数值2对应的地势变化复杂度,可以将该地势变化复杂度记为wave[2]。然后可以判断wave[2]的数值是否能够满足预设条件,如果wave[2]的数值能够满足预设条件,则停止继续从简化顶点数序列中获取下一个简化顶点数值1。如果wave[2]的数值不满足预设条件,则继续从简化顶点数序列中获取下一个简化顶点数值1,随后基于获取到的简化顶点数值1以及多个地势顶点中每相邻的两个地势顶点之间的高度差,计算简化顶点数值1对应的地势变化复杂度,可以将此时得到的地势变化复杂度记为wave[1],最后可以判断wave[1]的数值是否能够满足预设条件。
上述预设条件可以是:wave[i]大于第一预设阈值且小于第二预设阈值,其中i取简化顶点数序列中的任一数值。可以将第一预设阈值和第二预设阈值存入数组wavethreshold中,第一预设阈值表示为wavethreshold[n],第二预设阈值表示为wavethreshold[n-1]。
为了进一步优化地图图像渲染效果,还可以确定地图图像到摄像机之间的距离x,计算距离x的平方得到x2,用wave[i]除以x2,当所得结果大于预设阈值时,可以认为由于地图图像到摄像机之间的距离较近,所以需要降低简化顶点数来提升地图图像的细节,进而保证近景的地形细节得以充分表达。
可选地,上述基于当前获取的简化顶点数以及多个地势顶点中每相邻的两个地势顶点之间的高度差,确定当前获取的简化顶点数对应的地势变化复杂度的过程可以实现为:基于当前获取的简化顶点数,确定地图图像中简化后的地势顶点;基于简化后的地势顶点分别对应的高度值,确定简化后的地势顶点中每相邻的两个地势顶点之间的高度差;基于当前获取的简化顶点数、多个地势顶点中每相邻的两个地势顶点之间的高度差以及简化后的地势顶点中每相邻的两个地势顶点之间的高度差,确定当前获取的简化顶点数对应的地势变化复杂度。
在实际应用中,可以确定地图图像中每相邻且相隔当前获取的简化顶点数的两个地势顶点,作为地图图像中简化后的地势顶点。接着,基于简化后的地势顶点分别对应的高度值,确定简化后的地势顶点中每相邻的两个地势顶点之间的高度差。随后,基于当前获取的简化顶点数,确定目标分组数,按照目标分组数,对多个地势顶点中每相邻的两个地势顶点之间的高度差进行分组,得到多组高度差,每组高度差与简化后的地势顶点中相邻的两个地势顶点之间的一个高度差对应。最后,基于多组高度差和对应的简化后的地势顶点中相邻的两个地势顶点之间的高度差,确定当前获取的简化顶点数对应的地势变化复杂度。
举例来说,假设当前获取的简化顶点数值为1,则对于图2所示的地图图像中的点a1来说,在x方向上与点a1相邻且相隔1个点的点为a3,在z方向上与点a1相领且相隔1个点的点为a11。与其他点在x方向上或者z方向上相邻且相隔1个点的点的确定方式与点a1的确定方式相同,可以参考点a1的确定方式来确定与其他点在x方向上或者z方向上相邻且相隔1个点的点,在此不再赘述。假设当前获取的简化顶点数值为2,则对于图2所示的地图图像中的点a1来说,在x方向上与点a1相邻且相隔1个点的点为a5,在z方向上与点a1相领且相隔22-1个点的点为a21。
在完成简化过程之后,可以基于简化后的地势顶点分别对应的高度值,确定简化后的地势顶点中每相邻的两个地势顶点之间的高度差。随后,基于当前获取的简化顶点数,确定目标分组数,按照目标分组数,对多个地势顶点中每相邻的两个地势顶点之间的高度差进行分组,得到多组高度差。从另外一个角度看,假设把多个地势顶点中每相邻的两个地势顶点对应的高度差视为一个信号分量,上述过程可以等价于将多个地势顶点中每相邻的两个地势顶点之间的高度差转换为离散信号;确定离散信号的能量;基于离散信号的能量,确定地图图像对应的地势变化复杂度。
可选地,确定离散信号的能量的过程可以实现为:确定各离散信号包括的信号分量;基于信号分量,计算离散信号的能量。
实际应用中,可以将离散信号包括的各信号分量的平方做差,得到离散信号的能量。
可选地,基于离散信号的能量,确定地图图像对应的地势变化复杂度的过程可以实现为:确定离散信号中包括的低频信号的能量;将离散信号的能量减去低频信号的能量,得到剩余信号的能量;计算剩余信号的能量对应的功率值;基于功率值,确定地图图像对应的地势变化复杂度。
对于每个信号,只保留信号内排列在第一个位置上的信号分量以及最后一个位置上的信号分量,即可完成简化过程。当简化顶点数为1时,信号包括2个信号分量,当简化顶点数为2时,信号包括4个信号分量。简化过程也可相当于将原始信号中的部分信号削弱,保留低频信号的过程。
假设将信号中的每个信号分量作为一个点,将信号中所有信号分量通过直线相连,可以得到多个线段。对于图2所示的地图图像来说,当简化顶点数为1时,能够构造出图4所示的线段组,当简化顶点数为2时,能够构造出图5所示的线段组。
在图4中,信号b1的总能量e1=(a1-a2)2+(a2-a3)2,平均数
在图5中,信号b1的总能量e1=(a1-a2)2+(a2-a3)2+(a3-a4)2+(a4-a5)2,平均数
可选地,基于上述内容,若当前获取的简化顶点数对应的地势变化复杂度满足预设条件,则将当前获取的简化顶点数对应的地势变化复杂度,确定为地图图像对应的地势变化复杂度可以实现为:若当前获取的简化顶点数对应的地势变化复杂度大于第一预设阈值且小于第二预设阈值,则将当前获取的简化顶点数对应的地势变化复杂度,确定为地图图像对应的地势变化复杂度。
本例因为地形较小,所以两级lod即可,大地图可自行扩大lod。用wave[lod]与设定好的阈值数组wavethreshold进行比较,如果wave[lod]大于wavethreshold[n]且小于wavethreshold[n-1],那么在对当前的地图图像进行渲染时,使用的lod为n而不使用通过与摄像机之间的距离计算出的lod,该lod为渲染资源分配量。
如果wave[lod]越大,就代表地形越复杂,我们就需要分配更多的顶点来表现他的细节,反之我们可以用少量顶点来渲染,实现了地形精细程度,节约渲染开销,减少计算量的多方面最优解。通过本发明实施例提供的方法,在渲染效果不变的情况下,使用最少的渲染资源进行渲染。使得应用程序的使用更加流畅,效果更好。
以下将详细描述本发明的一个或多个实施例的地图渲染装置。本领域技术人员可以理解,这些地图渲染装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为本发明实施例提供的一种地图渲染装置的结构示意图,如图6所示,该装置包括:获取模块11、确定模块12、渲染模块13。
获取模块11,用于获取地图图像中包含的多个地势顶点分别对应的高度值;
确定模块12,用于基于所述多个地势顶点分别对应的高度值,确定所述地图图像对应的地势变化复杂度;
所述确定模块12,用于确定所述地图图像与摄像机之间的距离;
所述确定模块12,用于基于所述地势变化复杂度和所述距离,确定所述地图图像对应的渲染资源分配量;
渲染模块13,用于基于所述渲染资源分配量,对所述地图图像进行渲染。
可选地,所述确定模块12,用于:
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中每相邻的两个地势顶点之间的高度差;
基于所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述地图图像对应的地势变化复杂度。
可选地,所述多个地势顶点沿第一预设方向和第二预设方向进行排列;所述确定模块12,用于:
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中第一预设方向上每相邻的两个地势顶点之间的高度差;
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中第二预设方向上每相邻的两个地势顶点之间的高度差。
可选地,所述第一预设方向与所述第二预设方向为水平面中处于正交的两个方向。
可选地,所述确定模块12,用于:
将所述多个地势顶点中每相邻的两个地势顶点之间的高度差转换为离散信号;
确定所述离散信号的能量;
基于所述离散信号的能量,确定所述地图图像对应的地势变化复杂度。
可选地,所述确定模块12,用于:
确定各离散信号包括的信号分量;
基于所述信号分量,计算所述离散信号的能量。
可选地,所述确定模块12,用于:
将所述离散信号包括的各信号分量的平方做差,得到所述离散信号的能量。
可选地,所述确定模块12,用于:
通过e1=(ai-ai:1)2+(ai:1-ai:2)2公式,计算所述离散信号的能量;
其中,ai与ai+1为一组信号分量,ai+1与ai+2为另一组信号分量。
可选地,所述确定模块12,用于:
确定所述离散信号中包括的低频信号的能量;
将所述离散信号的能量减去所述低频信号的能量,得到剩余信号的能量;
计算所述剩余信号的能量对应的功率值;
基于所述功率值,确定所述地图图像对应的地势变化复杂度。
可选地,所述确定模块12,用于:
通过
其中,所述p1为计算所述剩余信号的能量对应的功率值;所述lod为所述离散信号包括的信号分量的数量;
通过
其中,ai与ai+1为所述低频信号。
可选地,所述确定模块12,用于:
获取所述地图图像对应的简化顶点数的最大值,从所述简化顶点数的最大值开始依次递减预设数值,得到简化顶点数序列;
逐个从所述简化顶点数序列中获取简化顶点数,每当获取一个简化顶点数时,基于当前获取的简化顶点数以及所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度,若所述当前获取的简化顶点数对应的地势变化复杂度满足预设条件,则将所述当前获取的简化顶点数对应的地势变化复杂度,确定为所述地图图像对应的地势变化复杂度,且停止继续从所述简化顶点数序列中获取简化顶点数。
可选地,所述确定模块12,用于:
基于当前获取的简化顶点数,确定所述地图图像中简化后的地势顶点;
基于所述简化后的地势顶点分别对应的高度值,确定所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差;
基于所述当前获取的简化顶点数、所述多个地势顶点中每相邻的两个地势顶点之间的高度差以及所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度。
可选地,所述确定模块12,用于:
确定所述地图图像中每相邻且相隔当前获取的简化顶点数的两个地势顶点,作为所述地图图像中简化后的地势顶点;
所述基于所述当前获取的简化顶点数、所述多个地势顶点中每相邻的两个地势顶点之间的高度差以及所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度,包括:
基于所述当前获取的简化顶点数,确定目标分组数;
按照所述目标分组数,对所述多个地势顶点中每相邻的两个地势顶点之间的高度差进行分组,得到多组高度差,每组高度差与所述简化后的地势顶点中相邻的两个地势顶点之间的一个高度差对应;
基于所述多组高度差和对应的所述简化后的地势顶点中相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度。
可选地,所述确定模块12,用于:
若所述当前获取的简化顶点数对应的地势变化复杂度大于第一预设阈值且小于第二预设阈值,则将所述当前获取的简化顶点数对应的地势变化复杂度,确定为所述地图图像对应的地势变化复杂度。
可选地,所述确定模块12,用于:
确定所述地图图像的尺寸;
根据所述尺寸,确定所述地图图像对应的简化顶点数的最大值。
图6所示装置可以执行前述图1至图5所示实施例中提供的地图渲染方法,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图6所示地图渲染装置的结构可实现为一电子设备,如图7所示,该电子设备可以包括:处理器91、存储器92。其中,所述存储器92上存储有可执行代码,当所述可执行代码被所述处理器91执行时,使所述处理器91至少可以实现如前述图1至图5所示实施例中提供的地图渲染方法。
可选地,该电子设备中还可以包括通信接口93,用于与其他设备进行通信。
另外,本发明实施例提供了一种计算机可读介质,所述计算机可读介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述图1至图5所示实施例中提供的地图渲染方法。
根据需要,本发明各实施例的系统、方法和装置可以实现为纯粹的软件(例如用java来编写的软件程序),也可以根据需要实现为纯粹的硬件(例如专用asic芯片或fpga芯片),还可以实现为结合了软件和硬件的系统(例如存储有固定代码的固件系统或者带有通用存储器和处理器的系统)。
本发明的另一个方面是一种计算机可读介质,其上存储有计算机可读指令,所述指令被执行时可实施本发明各实施例的方法。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。要求保护的主题的范围仅由所附的权利要求进行限定。
1、一种地图渲染方法,包括:
获取地图图像中包含的多个地势顶点分别对应的高度值;
基于所述多个地势顶点分别对应的高度值,确定所述地图图像对应的地势变化复杂度;
确定所述地图图像与摄像机之间的距离;
基于所述地势变化复杂度和所述距离,确定所述地图图像对应的渲染资源分配量;
基于所述渲染资源分配量,对所述地图图像进行渲染。
2、根据条款1所述的方法,其特征在于,所述基于所述多个地势顶点分别对应的高度值,确定所述地图图像对应的地势变化复杂度,包括:
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中每相邻的两个地势顶点之间的高度差;
基于所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述地图图像对应的地势变化复杂度。
3、根据条款2所述的方法,其特征在于,所述多个地势顶点沿第一预设方向和第二预设方向进行排列;所述基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中每相邻的两个地势顶点之间的高度差,包括:
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中第一预设方向上每相邻的两个地势顶点之间的高度差;
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中第二预设方向上每相邻的两个地势顶点之间的高度差。
4、根据条款3所述的方法,其特征在于,所述第一预设方向与所述第二预设方向为水平面中处于正交的两个方向。
5、根据条款2所述的方法,其特征在于,所述基于所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述地图图像对应的地势变化复杂度,包括:
将所述多个地势顶点中每相邻的两个地势顶点之间的高度差转换为离散信号;
确定所述离散信号的能量;
基于所述离散信号的能量,确定所述地图图像对应的地势变化复杂度。
6、根据条款5所述的方法,其特征在于,所述确定所述离散信号的能量,包括:
确定各离散信号包括的信号分量;
基于所述信号分量,计算所述离散信号的能量。
7、根据条款6所述的方法,其特征在于,所述基于所述信号分量,计算所述离散信号的能量,包括:
将所述离散信号包括的各信号分量的平方做差,得到所述离散信号的能量。
8、根据条款7所述的方法,其特征在于,所述将所述离散信号包括的各信号分量的平方做差,得到所述离散信号的能量,包括:
通过e1=(ai-ai:1)2+(ai:1-ai:2)2公式,计算所述离散信号的能量;
其中,ai与ai+1为一组信号分量,ai+1与ai+2为另一组信号分量。
9、根据条款5所述的方法,其特征在于,所述基于所述离散信号的能量,确定所述地图图像对应的地势变化复杂度,包括:
确定所述离散信号中包括的低频信号的能量;
将所述离散信号的能量减去所述低频信号的能量,得到剩余信号的能量;
计算所述剩余信号的能量对应的功率值;
基于所述功率值,确定所述地图图像对应的地势变化复杂度。
10、根据条款9所述的方法,其特征在于,所述计算所述剩余信号的能量对应的功率值,包括:
通过
其中,所述p1为计算所述剩余信号的能量对应的功率值;所述lod为所述离散信号包括的信号分量的数量;
所述确定所述离散信号中包括的低频信号的能量,包括:
通过
其中,ai与ai+1为所述低频信号。
11、根据条款2所述的方法,其特征在于,所述基于所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述地图图像对应的地势变化复杂度,包括:
获取所述地图图像对应的简化顶点数的最大值,从所述简化顶点数的最大值开始依次递减预设数值,得到简化顶点数序列;
逐个从所述简化顶点数序列中获取简化顶点数,每当获取一个简化顶点数时,基于当前获取的简化顶点数以及所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度,若所述当前获取的简化顶点数对应的地势变化复杂度满足预设条件,则将所述当前获取的简化顶点数对应的地势变化复杂度,确定为所述地图图像对应的地势变化复杂度,且停止继续从所述简化顶点数序列中获取简化顶点数。
12、根据条款11所述的方法,其特征在于,所述基于当前获取的简化顶点数以及所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度,包括:
基于当前获取的简化顶点数,确定所述地图图像中简化后的地势顶点;
基于所述简化后的地势顶点分别对应的高度值,确定所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差;
基于所述当前获取的简化顶点数、所述多个地势顶点中每相邻的两个地势顶点之间的高度差以及所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度。
13、根据条款12所述的方法,其特征在于,所述基于当前获取的简化顶点数,确定所述地图图像中简化后的地势顶点,包括:
确定所述地图图像中每相邻且相隔当前获取的简化顶点数的两个地势顶点,作为所述地图图像中简化后的地势顶点;
所述基于所述当前获取的简化顶点数、所述多个地势顶点中每相邻的两个地势顶点之间的高度差以及所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度,包括:
基于所述当前获取的简化顶点数,确定目标分组数;
按照所述目标分组数,对所述多个地势顶点中每相邻的两个地势顶点之间的高度差进行分组,得到多组高度差,每组高度差与所述简化后的地势顶点中相邻的两个地势顶点之间的一个高度差对应;
基于所述多组高度差和对应的所述简化后的地势顶点中相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度。
14、根据条款11所述的方法,其特征在于,所述若所述当前获取的简化顶点数对应的地势变化复杂度满足预设条件,则将所述当前获取的简化顶点数对应的地势变化复杂度,确定为所述地图图像对应的地势变化复杂度,包括:
若所述当前获取的简化顶点数对应的地势变化复杂度大于第一预设阈值且小于第二预设阈值,则将所述当前获取的简化顶点数对应的地势变化复杂度,确定为所述地图图像对应的地势变化复杂度。
15、根据条款11所述的方法,其特征在于,所述获取所述地图图像对应的简化顶点数的最大值,包括:
确定所述地图图像的尺寸;
根据所述尺寸,确定所述地图图像对应的简化顶点数的最大值。
16、一种地图渲染装置,其特征在于,包括:
获取模块,用于获取地图图像中包含的多个地势顶点分别对应的高度值;
确定模块,用于基于所述多个地势顶点分别对应的高度值,确定所述地图图像对应的地势变化复杂度;
所述确定模块,用于确定所述地图图像与摄像机之间的距离;
所述确定模块,用于基于所述地势变化复杂度和所述距离,确定所述地图图像对应的渲染资源分配量;
渲染模块,用于基于所述渲染资源分配量,对所述地图图像进行渲染。
17、根据条款16所述的装置,其特征在于,所述确定模块,用于:
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中每相邻的两个地势顶点之间的高度差;
基于所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述地图图像对应的地势变化复杂度。
18、根据条款17所述的装置,其特征在于,所述多个地势顶点沿第一预设方向和第二预设方向进行排列;所述确定模块,用于:
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中第一预设方向上每相邻的两个地势顶点之间的高度差;
基于所述多个地势顶点分别对应的高度值,确定所述多个地势顶点中第二预设方向上每相邻的两个地势顶点之间的高度差。
19、根据条款18所述的装置,其特征在于,所述第一预设方向与所述第二预设方向为水平面中处于正交的两个方向。
20、根据条款17所述的装置,其特征在于,所述确定模块,用于:
将所述多个地势顶点中每相邻的两个地势顶点之间的高度差转换为离散信号;
确定所述离散信号的能量;
基于所述离散信号的能量,确定所述地图图像对应的地势变化复杂度。
21、根据条款20所述的装置,其特征在于,所述确定模块,用于:
确定各离散信号包括的信号分量;
基于所述信号分量,计算所述离散信号的能量。
22、根据条款21所述的装置,其特征在于,所述确定模块,用于:
将所述离散信号包括的各信号分量的平方做差,得到所述离散信号的能量。
23、根据条款22所述的装置,其特征在于,所述确定模块,用于:
通过e1=(ai-ai:1)2+(ai:1-ai:2)2公式,计算所述离散信号的能量;
其中,ai与ai+1为一组信号分量,ai+1与ai+2为另一组信号分量。
24、根据条款20所述的装置,其特征在于,所述确定模块,用于:
确定所述离散信号中包括的低频信号的能量;
将所述离散信号的能量减去所述低频信号的能量,得到剩余信号的能量;
计算所述剩余信号的能量对应的功率值;
基于所述功率值,确定所述地图图像对应的地势变化复杂度。
25、根据条款24所述的装置,其特征在于,所述确定模块,用于:
通过
其中,所述p1为计算所述剩余信号的能量对应的功率值;所述lod为所述离散信号包括的信号分量的数量;
通过
其中,ai与ai+1为所述低频信号。
26、根据条款17所述的装置,其特征在于,所述确定模块,用于:
获取所述地图图像对应的简化顶点数的最大值,从所述简化顶点数的最大值开始依次递减预设数值,得到简化顶点数序列;
逐个从所述简化顶点数序列中获取简化顶点数,每当获取一个简化顶点数时,基于当前获取的简化顶点数以及所述多个地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度,若所述当前获取的简化顶点数对应的地势变化复杂度满足预设条件,则将所述当前获取的简化顶点数对应的地势变化复杂度,确定为所述地图图像对应的地势变化复杂度,且停止继续从所述简化顶点数序列中获取简化顶点数。
27、根据条款26所述的装置,其特征在于,所述确定模块,用于:
基于当前获取的简化顶点数,确定所述地图图像中简化后的地势顶点;
基于所述简化后的地势顶点分别对应的高度值,确定所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差;
基于所述当前获取的简化顶点数、所述多个地势顶点中每相邻的两个地势顶点之间的高度差以及所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度。
28、根据条款27所述的装置,其特征在于,所述确定模块,用于:
确定所述地图图像中每相邻且相隔当前获取的简化顶点数的两个地势顶点,作为所述地图图像中简化后的地势顶点;
所述基于所述当前获取的简化顶点数、所述多个地势顶点中每相邻的两个地势顶点之间的高度差以及所述简化后的地势顶点中每相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度,包括:
基于所述当前获取的简化顶点数,确定目标分组数;
按照所述目标分组数,对所述多个地势顶点中每相邻的两个地势顶点之间的高度差进行分组,得到多组高度差,每组高度差与所述简化后的地势顶点中相邻的两个地势顶点之间的一个高度差对应;
基于所述多组高度差和对应的所述简化后的地势顶点中相邻的两个地势顶点之间的高度差,确定所述当前获取的简化顶点数对应的地势变化复杂度。
29、根据条款26所述的装置,其特征在于,所述确定模块,用于:
若所述当前获取的简化顶点数对应的地势变化复杂度大于第一预设阈值且小于第二预设阈值,则将所述当前获取的简化顶点数对应的地势变化复杂度,确定为所述地图图像对应的地势变化复杂度。
30、根据条款26所述的装置,其特征在于,所述确定模块,用于:
确定所述地图图像的尺寸;
根据所述尺寸,确定所述地图图像对应的简化顶点数的最大值。
31、一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现根据条款1-15中任一项所述的方法。
32、一种计算机可读介质,其上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现根据条款1-15中任一项所述的方法。