CN117788726A - 一种地图数据的渲染方法、装置、电子设备及存储介质 - Google Patents
一种地图数据的渲染方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117788726A CN117788726A CN202211170014.9A CN202211170014A CN117788726A CN 117788726 A CN117788726 A CN 117788726A CN 202211170014 A CN202211170014 A CN 202211170014A CN 117788726 A CN117788726 A CN 117788726A
- Authority
- CN
- China
- Prior art keywords
- rendering
- map
- primitive
- data
- priority
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 798
- 238000000034 method Methods 0.000 title claims abstract description 83
- 239000012634 fragment Substances 0.000 claims abstract description 199
- 230000008569 process Effects 0.000 claims description 37
- 238000012216 screening Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 61
- 238000010586 diagram Methods 0.000 description 19
- 238000001514 detection method Methods 0.000 description 13
- 239000000463 material Substances 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004040 coloring Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002344 surface layer Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
本申请涉及数据处理技术领域,可应用于地图领域,尤其涉及一种地图数据的渲染方法、装置、电子设备及存储介质,该方法包括:获取矢量地图瓦片数据;再分别基于每个地图元素对应的位置点信息集合,生成相应的渲染片元集合和深度缓冲数据;归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级;确定地图元素中的各二维地图元素和其他地图元素后,基于深度缓冲数据,渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元;渲染各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染对应的各待呈现渲染片元,获得相应的渲染结果。这样,能够有效解决二维地图元素的平面竞争问题,提高地图数据的渲染效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种地图数据的渲染方法、装置、电子设备及存储介质。
背景技术
目前,为保障每秒呈现的渲染结果符合刷新呈现需求,通常基于获取的矢量地图瓦片数据,基于矢量地图瓦片数据中各个二维地图元素在对应的各个位置点处的深度值,与深度缓冲区中存储的深度值之间的大小关系,在短时间内多次生成渲染结果;然而,由于深度缓冲区中存储的深度值精度通常不足,使得对于存在位置重叠的各个二维地图元素的深度值判断不准确,因而造成不同渲染结果中相同位置渲染呈现不同的二维地图元素的问题。
相关技术下,为了解决不同渲染结果呈现时由于相同位置呈现不同的二维地图元素,使得出现平面竞争(Z-Fighting)的问题,通常可以采用不进行深度信息检测,通过指定二维地图元素的渲染顺序,处理得到渲染结果,或者,可以针对存在位置重叠的二维地图元素,对重叠位置的各个位置点对应的深度值进行偏移,进而规避由于深度值精度不足造成的影响。
然而,由于不进行深度检测会改变已有的渲染流程,且需要手动维护各个二维地图元素的渲染顺序,因而会极大的影响地图数据的渲染效率,带来逻辑管理压力;而配置深度值偏移则需要保证基于配置的偏移量,能够在与深度缓冲区存储的深度值进行比对时产生实质性的差异,且需要兼顾不同二维地图元素的深度值偏移差异,因此极难实现有效偏移,使得地图渲染过程变得极为复杂,降低了渲染效率。
发明内容
本申请实施例提供一种地图数据的渲染方法、装置、电子设备及存储介质,以解决现有技术下解决平面竞争的实现难度大,地图数据的渲染效率低的问题。
第一方面,提出一种地图数据的渲染方法,包括:
获取矢量地图瓦片数据,其中,所述矢量地图瓦片数据包括:各地图元素各自的位置点信息集合,每个位置点信息关联有对应的渲染深度值;
分别基于每个所述地图元素对应的位置点信息集合,生成相应的渲染片元集合,以及基于各个地图元素关联各自的渲染深度值,生成深度缓冲数据,其中,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级;
在所述各个地图元素中确定各二维地图元素和各其他地图元素,并基于所述深度缓冲数据,分别从每个所述渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元;
渲染所述各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染对应的各待呈现渲染片元,获得相应的渲染结果;所述各待呈现渲染片元是根据所述呈现优先级在对应的各候选渲染片元中筛选得到。
第二方面,提出一种地图数据的渲染装置,包括:
获取单元,用于获取矢量地图瓦片数据,其中,所述矢量地图瓦片数据包括:各地图元素各自的位置点信息集合,每个位置点信息关联有对应的渲染深度值;
生成单元,用于分别基于每个所述地图元素对应的位置点信息集合,生成相应的渲染片元集合,以及基于各个地图元素关联各自的渲染深度值,生成深度缓冲数据,其中,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级;
筛选单元,用于在所述各个地图元素中确定各二维地图元素和各其他地图元素,并基于所述深度缓冲数据,分别从每个所述渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元;
渲染单元,用于渲染所述各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染对应的各待呈现渲染片元,获得相应的渲染结果;所述各待呈现渲染片元是根据所述呈现优先级在对应的各候选渲染片元中筛选得到。
可选的,所述针对每个所述二维地图元素,渲染对应的各待呈现渲染片元时,所述渲染单元用于:
针对各个渲染片元集合中包括的渲染片元覆盖的各个片元位置,分别配置初始的优先级取值,得到初始优先级数据;
分别获取每个二维地图元素对应的各候选渲染片元,并执行以下操作,直至各个二维地图元素对应的各候选渲染片元获取完毕:
针对获取的每个候选渲染片元,在确定呈现优先级高于所述初始优先级数据中对应位置的优先级取值时,将所述呈现优先级更新为相应的片元位置处的优先级取值,并将所述候选渲染片元确定为待呈现片元,以及渲染所述待呈现片元。
可选的,所述针对每个所述二维地图元素,渲染对应的各待呈现渲染片元时,所述渲染单元用于:
获取基于各个渲染片元集合中包括的各个渲染片元各自对应的呈现优先级,生成的优先级缓冲数据,其中,所述优先级缓冲数据中包括渲染后在各个片元位置可视的渲染片元,各自对应的优先级信息;
在所述各候选渲染片元中,分别确定对应的呈现优先级与相应片元位置的优先级取值匹配的各候选渲染片元,作为相应的各待呈现片元,并对所述各待呈现片元进行渲染。
可选的,生成优先级缓冲数据时,所述渲染单元用于:
针对各个渲染片元集合中包括的渲染片元覆盖的各个片元位置,分别配置初始的优先级取值,得到初始优先级数据;
基于针对所述各个渲染片元集合中的各个渲染片元分别配置的呈现优先级,对各个优先级取值进行迭代更新,以及基于最后一次更新后所述初始优先级数据中各个片元位置各自对应的优先级取值,构成优先级缓冲数据。
可选的,包括:在一次迭代更新过程中,所述渲染单元用于执行以下操作:
针对所述一个渲染片元集合中的每个所述渲染片元,在确定呈现优先级高于对应位置的优先级取值时,将所述呈现优先级更新为相应的片元位置处的优先级取值。
可选的,预先针对二维地图元素和其他地图元素配置有元素识别标签时,所述在所述各个地图元素中确定各二维地图元素和各其他地图元素时,所述筛选单元用于:
识别所述各个地图元素各自关联的元素识别标签,并根据对应的各个元素识别标签,确定所述各个地图元素中的各二维地图元素和各其他地图元素。
可选的,所述基于各个地图元素关联的各渲染深度值,生成深度缓冲数据时,所述生成单元用于:
针对所述各个渲染片元集合中各个渲染片元覆盖的每个片元位置,配置对应的初始深度值,并基于针对各个片元位置配置的初始深度值,得到对应的初始缓冲数据;
基于所述各个位置点信息集合中各个位置点信息关联的渲染深度值,对各个初始深度值进行迭代更新,以及基于最后一次更新后所述初始缓冲数据中各个片元位置各自对应的目标深度值,获得深度缓冲数据,其中,所述深度缓冲数据中包括渲染后可视的各个渲染片元各自对应的渲染深度值。
可选的,在一次迭代更新过程中,所述生成单元用于执行以下操作:
根据所述一个位置点信息集合中每个所述位置点信息关联的渲染深度值,确定对应的渲染片元集合中各个渲染片元各自对应的渲染深度值;
针对每个渲染片元,将对应的片元位置处的初始深度值和渲染深度值中较小的取值结果,更新为所述初始缓冲数据中相应的片元位置处的目标深度值,其中,所述目标深度值为下一次迭代更新时,所述初始缓冲数据中相应的片元位置处的初始深度值。
可选的,所述基于所述深度缓冲数据,分别从每个所述渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元时,所述筛选单元用于:
基于所述深度缓冲数据,确定在渲染后可视的各个渲染片元各自关联的目标深度值;
在每个所述渲染片元集合中,分别确定对应的渲染深度值与相应片元位置的目标深度值匹配的各渲染片元,作为符合预设条件的各候选渲染片元。
可选的,所述获取矢量地图瓦片数据时,所述获取单元用于:
接收目标设备基于地图数据获取请求发送的地图加密数据,其中,所述地图数据获取请求中携带有目标对象当前的地图观测视角;
按照预设的数据解密协议,对所述地图加密数据进行解析,获取矢量地图瓦片数据。
可选的,所述基于每个地图元素对应的位置点信息集合,生成相应的渲染片元集合时,所述生成单元用于:
基于每个地图元素对应的位置点信息集合,对所述地图元素进行三角化处理,得到各个渲染图元,以及针对每个渲染图元进行拆分处理,得到对应的各个渲染片元;
基于由所述各个渲染图元各自拆分得到的渲染片元,组合生成与所述地图元素对应的渲染片元集合。
第三方面,提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面中任一项所述的地图数据的渲染方法。
第四方面,提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的地图数据的渲染方法。
第五方面,提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的地图数据的渲染方法。
本申请有益效果如下:
本申请实施例中,提出了一种地图数据的渲染方法、装置、电子设备及存储介质,获取矢量地图瓦片数据,其中,矢量地图瓦片数据包括:各地图元素各自的位置点信息集合,每个位置点信息关联有对应的渲染深度值;再分别基于每个地图元素对应的位置点信息集合,生成相应的渲染片元集合,以及基于各个地图元素各自关联的渲染深度值,生成深度缓冲数据,其中,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级;之后,在各个地图元素中确定各二维地图元素和各其他地图元素,并基于深度缓冲数据,分别从每个渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元;进而,渲染各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染对应的各待呈现渲染片元,获得相应的渲染结果;各待呈现渲染片元是根据呈现优先级在对应的各候选渲染片元中筛选得到。
这样,在渲染地图数据之前,借助于根据各地图元素各自关联的渲染深度值生成的深度缓冲数据,对每个地图元素对应的各渲染片元进行了初步筛选,得到每个地图元素对应的各候选渲染片元;进而借助于针对各地图元素配置的呈现优先级,对每个二维地图元素对应的各候选渲染片元进行了进一步判断,因而对于可能因为内容重叠造成平面竞争的各个二维地图元素而言,实现了对初步筛选后得到的候选渲染片元的再筛选,能够规避受深度值精度的限制而造成的呈现内容误判;而且,能够在不对已有的地图渲染逻辑进行大幅改变的情况下,实现对于可视的渲染片元的高精度筛选,并能够有效界定和管理各个地图元素之间的渲染次序,实现方式简单,不会对设备造成过大的处理压力,有利于方案的推广使用;与此同时,在地图数据的渲染过程中能够满足各类地图元素的显示需要,能够支持对诸如动态和非动态元素内容的呈现,且由于渲染依据的是矢量地图瓦片数据故不会出现内容放大模糊的情况,能够有效解决平面竞争问题,提高地图数据的渲染效率。
附图说明
图1为本申请实施例中存在平面竞争时呈现的内容示意图;
图2为本申请实施例中可能的应用场景示意图;
图3A为本申请实施例中地图数据的渲染流程示意图;
图3B为本申请实施例中生成深度缓冲数据的流程示意图;
图3C为本申请实施例中迭代更新过程中对初始缓冲数据的内容调整示意图;
图3D为本申请实施例中迭代更新过程中对初始优先级数据的内容调整示意图;
图4A为本申请实施例中终端设备实现地图渲染的流程示意图;
图4B为本申请实施例中执行地图元素渲染的流程示意图;
图4C为本申请实施例中地图数据的渲染结果示意图;
图5为本申请实施例中地图纹理的生成装置的逻辑结构示意图;
图6为本申请实施例的一种电子设备的一个硬件组成结构示意图;
图7为本申请实施例中的一个计算装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够在除了这里图示或描述的那些以外的顺序实施。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
矢量地图瓦片数据:也称矢量地图数据,是指地图渲染所依据的地图数据,矢量地图瓦片数据中通常包括以二维坐标(即直角坐标系中的x,y坐标)表示的各个地图元素的位置和形状,且每个二维坐标对应一个位置点信息,每个位置点信息至少关联有渲染深度值;本申请实施例中,根据实际的处理需要,矢量地图瓦片数据中还可能携带针对每个地图元素设置的渲染信息和元素识别标签,其中,地图元素对应地图图形或地理实体等内容。
地图元素:是指根据矢量地图瓦片数据确定的矢量元素,具体可能包括有对应线元素和面元素的二维地图元素、对应诸如立体建筑等内容的三维地图元素,以及诸如天空、自制模型等在内的背景地图元素,其中,本申请实施例中,将地图元素中除二维地图元素外的地图元素,统称为其他地图元素。
平面竞争(Z-Fighting):是指当两个或多个渲染片元的位置重叠时,因受限于深度缓冲数据和渲染深度值的精度,使得在深度缓冲测试时产生精度误差,导致在短时间内渲染得到的各个渲染结果中,交替显示这几个渲染片元的渲染结果,从而产生闪烁的现象,如,假设配置1秒进行20次渲染,因而需要在1秒之内基于获得的矢量地图瓦片数据进行20次渲染;那么,在不同渲染结果中的相同片元位置,呈现有渲染后的不同渲染片元时,快速呈现的渲染结果将会造成视觉上的闪烁现象。
渲染图元:渲染图元是图形渲染的基本元素,一个渲染图元对应一个三角形。
渲染片元:也称片元,是指由渲染图元拆分得到的内容,一个渲染图元能够拆分得到多个渲染片元,渲染片元可以理解为将渲染图元计算转变为二维图像形式后得到的,且一个渲染片元对应一个像素点。
深度缓冲数据:是指在深度缓冲区中存储的内容,用于存储渲染后可视的各个渲染片元各自对应的渲染深度值,其中,渲染深度值用于衡量渲染片元距离观察者的距离。在具体生成深度缓冲数据时,若两个物体在同一个片元位置处生成有渲染片元,那么,需要比较两个渲染片元的渲染深度值,并且将距离观察者较近的渲染片元的渲染深度值,保存到深度缓冲区中对应的位置。本申请实施例中,一个位置点信息集合中的各个位置点信息关联有相同的渲染深度值,基于该位置点信息集合生成渲染片元集合后,该渲染片元集合中的各个渲染片元,同样关联该渲染深度值。
下面对本申请实施例的设计思想进行简要介绍:
相关技术下,在对地图数据进行渲染时,通常根据实际的呈现需要,按照预设的每秒呈现次数渲染地图数据,使得在每秒钟生成相应数目的渲染结果。在具体的渲染过程中,通常先在深度缓冲区中配置相应大小的缓冲区域,以存储深度值;进而在获取矢量地图瓦片数据后,在渲染地图元素的过程中,采用深度检测的方式,针对地图元素生成各个渲染片元后,将渲染片元的渲染深度值,与深度缓冲区中相应位置处存储的深度值进行大小比较,并在确定渲染片元对应的渲染深度值较小时,将该渲染深度值写入深度缓冲区的相应位置,以及将该渲染片元确定为需要呈现的片元并进行渲染。
然而,由于受处理性能的影响,深度值的取值精度通常有限,这使得无法通过深度检测,在存在位置重叠的,来自不同二维地图元素的渲染片元中,准确地确定出需要呈现的渲染片元,使得不同渲染结果中的相同位置呈现不同的二维地图元素内容,因而造成平面竞争的问题;进而在呈现渲染得到的各个渲染结果时,由于平面竞争的问题,造成视觉上内容闪烁的现象。
例如,参阅图1所示,其为本申请实施例中存在平面竞争时呈现的内容示意图,根据图1所示意的,在框选的区域内,由于各条存在部分堆叠的道路之间存在平面竞争,使得在渲染结果中呈现的道路线条不流畅,在连续呈现时会出现闪烁的情况;在图1所示意的内容中出现由于道路线的乱序绘制,造成闪烁和次序错误的问题,无法达到预期的地图数据渲染效果。
相关技术下,在解决平面竞争问题时,通常可以采用以下几种处理方式:
处理方式一、关闭深度检测。
具体的,可以在渲染二维地图元素时关闭深度检测,通过调整二维地图元素的渲染顺序,使得每个二维地图元素中各个渲染片元的渲染深度值,都能够写入深度缓冲中,并按照该渲染顺序对各个二维地图元素进行渲染,最终得到渲染结果。
处理方式二、深度偏移。
具体的,在渲染二维地图元素时不关闭深度检测,但在对应的渲染片元产生后,按照二维地图元素的渲染顺序,将相关的渲染片元向远离观测位置的方向增加一定的深度偏移,从而使得需要被展示的渲染片元能够通过深度检测进行展示。
处理方式三、栅格化矢量地图瓦片数据。
具体的,为了规避渲染二维地图元素时产生的闪烁现象,将二维地图元素依照顺序渲染生成一张图片,进而在瓦片渲染时直接展示该图片,而不再持续渲染,能够从数据呈现方式上解决闪烁问题。
然而,对于处理方式一而言,在关闭深度检测的方案中,需要对已有的渲染流程进行调整;而且,当关闭深度检测后,需要手动维护所有地图元素的渲染顺序,带来更大的逻辑管理压力;而且对于地图数据渲染而言,渲染的内容包括有二维地图元素和三维地图元素,对于容易堆叠造成平面竞争问题的二维地图元素,诸如道路、区域面信息等的渲染,需要关闭深度检测,但对于诸如建筑等三维地图元素的渲染,需要开启深度检测,并且强制将建筑设置在道路、区域面之后进行渲染,否则会产生效果异常。另外,对于同种类型的地图元素,也需要拆分按顺序进行提交渲染,会产生更多的性能压力,这使得地图数据的渲染需要维护不同的渲染流程,极大地增加了地图数据的渲染难度。
对于处理方式二而言,在对渲染片元进行深度偏移的处理方案中,不需要强制按照一定次序渲染各个地图元素,但深度值偏移的度量单位不易掌控;深度值的取值受渲染片元与观测位置的距离影响;在存在多个渲染片元重合且重合的多个渲染片元关联的渲染深度信息差异不大的情况下,需要极大的偏移量才能使对应相同位置的多个渲染片元的深度值产生实质差异,从而能够在深度检测中实现有效判断,避免呈现渲染结果时出现闪烁现象。这使得全局管理像素深度偏移(或称渲染片元的深度偏移)十分繁琐,需要根据观测位置与渲染片元的距离拟合确定偏移量,对于存在位置重叠的多个二维地图元素而言,可能需要手动调参以实现深度值的有效偏移。另外,对于深度值的偏移不能过量,否则可能会影响到与其他元素的显示关系,产生错误的渲染效果,因而此处理方式的可实践性很低。
对于处理方式三而言,栅格化矢量地图瓦片数据生成图片的方案不需要更改渲染顺序。但当矢量地图瓦片数据转换为栅格数据后,不可避免的会出现丢失精度问题:受限于栅格图片的像素数量,当对部分地图内容进行逐渐放大时,最终无法避免的会出现内容模糊的问题。另外,此方式由于不是持续渲染,故无法展示水系等具有动态效果的地图元素,应用场景极其受限。
有鉴于此,本申请实施例中,提出了一种地图数据的渲染方法、装置、电子设备及存储介质,获取矢量地图瓦片数据,矢量地图瓦片数据包括:各地图元素各自的位置点信息集合,每个位置点信息关联有对应的渲染深度值;再分别基于每个地图元素对应的位置点信息集合,生成相应的渲染片元集合,以及基于各个地图元素各自关联的渲染深度值,生成深度缓冲数据,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级;在各个地图元素中确定各二维地图元素和各其他地图元素,并基于深度缓冲数据,分别从每个渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元;渲染各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染基于呈现优先级筛选得到的各待呈现渲染片元,获得相应的渲染结果。
这样,在渲染地图数据之前,借助于根据各地图元素各自关联的渲染深度值生成的深度缓冲数据,对每个地图元素对应的各渲染片元进行了初步筛选,得到每个地图元素对应的各候选渲染片元;进而借助于针对各地图元素配置的呈现优先级,对每个二维地图元素对应的各候选渲染片元进行了进一步判断,因而对于可能因为内容重叠造成平面竞争的各个二维地图元素而言,实现了对初步筛选后得到的候选渲染片元的再筛选,能够规避受深度值精度的限制而造成的呈现内容误判;而且,能够在不对已有的地图渲染逻辑进行大幅改变的情况下,实现对于可视的渲染片元的高精度筛选,并能够有效界定和管理各个地图元素之间的渲染次序,实现方式简单,不会对设备造成过大的处理压力,有利于方案的推广使用;与此同时,在地图数据的渲染过程中能够满足各类地图元素的显示需要,能够支持对诸如动态和非动态元素内容的呈现,且由于渲染依据的是矢量地图瓦片数据故不会出现内容放大模糊的情况,能够有效解决平面竞争问题,提高地图数据的渲染效率。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例及实施例中的特征可以相互组合。
参阅图2所示,为本申请实施例中可能的应用场景示意图。该应用场景示意图中,包括终端设备210(具体可能是终端设备2101、终端设备2102…),以及服务端设备220。
需要说明的是,当终端设备210与服务端设备220之间,可以通过有线网络或无线网络进行通信。
在本申请实施例中,当终端设备210可以是个人计算机、手机、平板电脑、笔记本、电子书阅读器、智能家居,以及车载终端等具有一定计算能力的计算机设备。
服务端设备220可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请提出的技术方案,在一些可能的实现方式中,终端设备210可以从服务端设备220处请求获得矢量地图瓦片数据,进而基于矢量地图瓦片数据实现地图数据的渲染,得到渲染结果;在一些可能的实现方式中,服务端设备220可以在基于矢量地图瓦片数据,实现地图数据的渲染,得到渲染结果后,将渲染结果发送至终端设备210呈现,其中,渲染地图数据的处理逻辑一致。以下的说明中将仅以终端设备210实现地图数据的渲染为例,对具体的渲染过程进行说明。
本申请提出的技术方案,可以在各样的地图生成场景中,生成基础地图数据,如,在用户端的地图导航软件中,渲染得到用户可视的地图内容。
需要说明的是,本申请实施例中,基于矢量地图瓦片数据生成的渲染结果,可以理解能够渲染得到基础地图内容;基础地图内容表征配置的客观存在的地图内容,而对于在基础地图内容的基础上呈现的导航路线等内容,不在本申请的考量范围内。
下面首先结合附图,对本申请实施例中地图数据的渲染流程进行详细说明,参阅图3A所示,其为本申请实施例中地图数据的渲染流程示意图,下面结合附图3A,对地图数据的渲染流程进行说明:
需要说明的是,本申请提出的平面竞争问题,发生于基于一个矢量地图瓦片数据的渲染过程中,本申请默认不同矢量地图瓦片数据之间不存在平面竞争问题。因此,本申请图3A所示意的渲染流程中,将仅以基于一个矢量地图瓦片数据实现渲染的过程为例,对地图数据的渲染过程进行示意性说明;应该理解的是,当终端设备上呈现的最终渲染结果,是依据多个矢量地图瓦片数据渲染生成时,根据实际的处理能力,终端设备可以基于相同的渲染逻辑,并行实现对于不同矢量地图瓦片数据的渲染。
另外,本申请实施例中,图3A所示意的各个相关步骤的执行顺序,可以根据实际的处理需要灵活地调整执行,如,可以先判断其他地图元素对应的候选渲染片元并渲染后,再针对二维地图元素进行针对性筛选和渲染。
步骤301:终端设备获取矢量地图瓦片数据,其中,矢量地图瓦片数据包括:各地图元素各自的位置点信息集合,每个位置点信息关联有对应的渲染深度值。
本申请实施例中,终端设备可以在目标对象触发显示地图数据后,根据目标对象当前对应的地图观测视角,向目标设备发送地图数据获取请求,其中,目标设备可以是保存有矢量地图瓦片数据的服务端设备。
例如,终端设备上安装有地图导航或者地图查询应用,服务端设备为对应的应用的服务端。
需要说明的是,本申请实施例中,对于刚进入地图展示页面的目标对象而言,可以根据实际的处理需要,默认当前处于指定的地图观测视角,如,垂直向下的视角,而在后续的处理过程中,可以根据实际目标对象的配置,确定地图观测视角;另外在目标对象授权定位的情况下,可以默认初始状态下,基于目标对象的当前定位位置和垂直向下的视角,请求获取矢量地图瓦片数据,进而后续完成渲染后向目标对象呈现地图数据的渲染结果。
另外,对于服务端保存的各个矢量地图瓦片数据而言,均具有对应的编号信息;基于此,服务端设备能够根据接收的地图数据获取请求,确定需要呈现的地图内容,并将能够渲染得到该地图内容的至少一个矢量地图瓦片数据,加密发送至终端设备,以使终端设备基于每个矢量地图瓦片数据执行图3A所示意的渲染流程。进而,终端设备接收目标设备基于地图数据获取请求发送的地图加密数据,其中,地图数据获取请求中携带有目标对象当前的地图观测视角;然后,按照预设的数据解密协议,对该地图加密数据进行解析,获取矢量地图瓦片数据。
具体的,为了保障数据安全,终端设备和目标设备之间在传输矢量地图网片数据时,通常会进行加密处理,其中,采用的加密方式可以根据实际的处理需要设置,如,在服务端设备将矢量地图瓦片数据加密为二进制形式后,终端设备接收服务端设备下发的地图加密数据。
进而,终端设备可以根据预设的数据解密协议对获得的地图加密数据进行解析,得到可被识别的各种形式的地图元素内容,得到的内容中包括有各地图元素各自的位置点信息集合,以及每个位置点信息至少关联有对应的渲染深度值,其中,地图元素包括二维地图元素和其他地图元素,二维地图元素包括线元素和面元素。
例如,二维地图元素中的线元素可以对应道路线等内容,二维地图元素中的面元素可以对应诸如绿地、水系、普通地面等内容。
这样,能够在保障数据安全传输的同时,获得用于进行地图数据渲染的矢量地图网片数据,为后续的渲染过程提供了处理依据。
步骤302:终端设备分别基于每个地图元素对应的位置点信息集合,生成相应的渲染片元集合,以及基于各个地图元素关联各自的渲染深度值,生成深度缓冲数据,其中,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级。
本申请实施例中,终端设备获取每个地图元素对应的位置点信息集合后,在基于每个位置点信息集合生成对应的渲染片元集合时,终端设备基于每个地图元素对应的位置点信息集合,对该地图元素进行三角化处理,得到各个渲染图元,以及针对每个渲染图元进行拆分处理,得到对应的各个渲染片元;再基于由各个渲染图元各自拆分得到的渲染片元,组合生成与该地图元素对应的渲染片元集合。
具体的,终端设备针对每个地图元素对应的位置点信息集合,基于该位置点信息集合中包括的各个位置点信息,实现对该地图元素的三角化处理,使得能够对应该地图元素生成各个渲染图元。
本申请实施例中,最终得到的渲染结果是二维矢量图像,故本申请为了实现渲染二维矢量图像,需要将三维场景中的每个渲染图元通过光栅化处理转换至二维场景下,因而能够基于每个渲染图元拆分得到多个渲染片元,其中,一个渲染片元对应由一个渲染图元转换得到的二维图像中的一个像素点,且对于渲染前处理得到的每个渲染片元而言,渲染片元关联有深度值、初始化的颜色信息,以及初始化的纹理数据。另外,由于基于元素的位置点信息实现三角化处理,以及基于渲染图元拆分得到渲染片元,均为本领域的成熟技术,本申请在此将不做具体说明。
这样,能够将获取的矢量地图瓦片数据,处理为渲染所针对的渲染片元的形式,使得后续能够针对各个地图元素的渲染片元进行筛选和渲染操作。
另外,本申请实施例中,可以根据实际的处理需要,针对各种地图元素分别配置呈现优先级,其中,不同地图元素对应的呈现优先级不同,呈现优先级用于表征渲染地图元素时的先后顺序,呈现优先级越高表征渲染后的地图元素距离观察者的距离越近,换言之,呈现优先级高的地图元素位于呈现优先级低的地图元素之上,使得呈现优先级高的地图元素可能会遮挡呈现优先级低的地图元素的呈现,也可以理解为,越晚渲染的地图元素在视觉上越处于图像表层。
需要说明的是,本申请实施例中,针对一个地图元素配置一个呈现优先级,进而对于对应一个地图元素生成的渲染片元集合而言,该渲染片元集合中的各个渲染片元关联有该呈现优先级,即,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级。
例如,根据实际的处理需要,预先确定各个地图元素的渲染顺序。具体的,可以选择性配置所有的矢量面数据(面元素)需要在道路数据(线元素)之下进行绘制,即配置线元素的呈现优先级高于面元素;而对于同为面元素的绿地、水系,可以配置对应的呈现优先级高于普通地面;进而按照配置的既定规则对地图元素进行排序,表征出呈现优先级后,将排序信息归一化到(0,1]区间内,其中,根据实际的配置需要,可以定义0表征呈现优先级最低,定义1表征呈现优先级最高;使得每个地图元素均携带有呈现优先级。
假设,针对二维地图元素:绿地配置的呈现优先级为0.5,那么对应绿地得到的各个渲染片元中,每个渲染片元对应的呈现优先级均为0.5。
这样,通过针对地图元素配置呈现优先级,能够标识出渲染后各个地图元素在渲染结果中的相对位置关系,从可视的角度来讲,呈现优先级高的地图元素位于呈现优先级低的地图元素上,使得能够清楚表征出地图元素之间的遮挡情况,为后续平面竞争问题的解决提供了处理依据。
与此同时,终端设备可以基于各个地图元素各自关联的渲染深度值,生成深度缓冲数据,其中,深度缓冲数据表征渲染后可视的各个渲染片元各自对应的渲染深度值。
本申请实施例中,为了基于深度值实现对不同渲染片元间遮挡情况的初步判定,使得能够在对应相同片元位置的多个渲染片元中,确定出在渲染结果中可视的渲染片元;终端设备在进行渲染之前,根据各个地图元素各自关联的渲染深度值,在深度缓冲区中依次进行写入操作,使得一个片元位置处存在多个位置重叠的渲染片元时,将各个渲染片元中对应的渲染深度值最小的取值,写入深度缓冲区中对应的该片元位置,最终得到存储在深度缓冲区中的深度缓冲数据。
具体的,参阅图3B所示,其为本申请实施例中生成深度缓冲数据的流程示意图,下面结合附图3B,对生成深度缓冲数据的过程进行详细说明:
步骤303-1:终端设备针对各个渲染片元集合中各个渲染片元覆盖的每个片元位置,配置对应的初始深度值,并基于针对各个片元位置配置的初始深度值,得到对应的初始缓冲数据。
具体的,由于最终向用户呈现的渲染结果的大小是终端设备所能够确定的,那么,能够确定基于每个矢量地图瓦片数据得到的渲染结果大小,换言之,对于基于一个矢量地图瓦片数据得到的各个渲染片元集合而言,根据各个渲染片元覆盖的片元位置所确定的区域大小是固定的。基于此,终端设备可以针对每个片元位置,配置对应的初始深度值,使得针对渲染结果中的每个像素点位置(或称片元位置)都对应配置了初始深度值,进而将写入到深度缓冲区中的,各个片元位置对应的初始深度值,确定为初始缓冲数据。
步骤303-2:终端设备基于各个位置点信息集合中各个位置点信息关联的渲染深度值,对各个初始深度值进行迭代更新,以及基于最后一次更新后初始缓冲数据中各个片元位置各自对应的目标深度值,获得深度缓冲数据。
本申请实施例中,终端设备每获取一个位置点信息集合关联的渲染深度值,则对初始缓冲数据进行一次迭代更新,直至全部地图元素关联的渲染深度值获取完成后,基于最后一次迭代更新初始缓冲数据后,各个片元位置各自对应的目标深度值,获得深度缓冲数据,其中,深度缓冲数据中包括渲染后可视的各个渲染片元各自对应的渲染深度值,一个地图元素中的各个位置点信息关联有相同的渲染深度值,即,一个位置点信息集合中的各个位置点信息关联有相同的渲染深度值。
具体的,在一次迭代更新过程中,执行的操作包括:根据一个位置点信息集合中每个位置点信息关联的渲染深度值,确定对应的渲染片元集合中各个渲染片元各自对应的渲染深度值;针对每个渲染片元,将对应的片元位置处的初始深度值和渲染深度值中较小的取值结果,更新为初始缓冲数据中相应的片元位置处的目标深度值,其中,目标深度值为下一次迭代更新时,初始缓冲数据中相应的片元位置处的初始深度值。
例如,参阅图3C所示,其为本申请实施例中迭代更新过程中对初始缓冲数据的内容调整示意图,根据图3C所示,假设各个地图元素覆盖的各个片元位置共计为5*9=45个,则可以根据实际的处理需要,针对各个片元位置配置初始深度值,假设为a1,其中,a1的取值可以为一个远大于正常深度值的数据,或者,可以直接设置为无穷大,作为初始化的取值。进而在迭代更新的过程中,假设当前获取的地图元素1所对应的各个渲染片元位置为{(2,1)、(2,2)、(2,3)、(2,4)、(2,5)、(2,6)、(3,6)、(4,6)、(4,7)、(4,8)},且地图元素1对应的渲染深度值为b1,那么,在当前一次更新过程中,分别比较位置(2,1)、(2,2)、(2,3)、(2,4)、(2,5)、(2,6)、(3,6)、(4,6)、(4,7)、(4,8)处,对应的初始深度值a1与渲染深度值b1之间的大小关系,并在确定b1的取值小于a1后,将相应位置的初始深度值,更新为当前一次调整过程中的目标深度值b1,进而得到第一次迭代更新后的初始缓冲数据;
同理,假设进一步获取的地图元素2所对应的各个渲染片元位置为{(1,4)、(2,4)、(3,4)、(4,4)、(4,5)、(4,6)、(4,7)、(4,8)},且地图元素2对应的渲染深度值为c1,则在确定c1<a1,且c1>b1时,对地图元素2与地图元素1重叠的片元位置处的深度值不做调整,并将地图元素2对应的其他片元位置处的初始深度值,调整为当前一次调整过程中的目标深度值c1,得到第二次迭代更新后的初始缓冲数据。
进一步的,与上述处理过程同理,终端设备在基于各个地图元素的渲染深度值,完成对初始缓冲数据的调整后,基于最后一次迭代调整后,各个片元位置处的目标深度值,获得深度缓冲数据。
这样,通过对各个片元位置的深度值进行迭代调整,使得最终得到的深度缓冲数据中,能够表征出渲染后可视的各个渲染片元的渲染深度值,为后续初步判断是否对渲染片元进行渲染提供了处理依据。
而且,通过在数据渲染之前,对地图元素对应的各个渲染深度值进行正常的深度缓冲区收集,使得无论是二维地图元素还是其他地图元素都会按照正常的深度缓冲逻辑进行深度值收集;进入借助于在深度缓冲区在构建的深度缓冲数据,后续能够判断地图元素之间的遮挡关系,相当于为后续的渲染过程提供了可参考的依据。
步骤303:终端设备在各个地图元素中确定各二维地图元素和各其他地图元素,并基于深度缓冲数据,分别从每个渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元。
本申请实施例中,由于针对性处理的平面竞争问题是由二维地图元素的位置堆叠造成的,因此,本申请需要对二维地图元素和其他地图元素进行差异性渲染处理,以规避后续渲染二维地图元素时的平面竞争问题。基于此,终端设备需要从各个地图元素中区别出二维地图元素和其他地图元素。
具体的,当预先针对二维地图元素和其他地图元素配置有元素识别标签时,终端设备可以识别各个地图元素各自关联的元素识别标签,并根据对应的各个元素识别标签,确定各个地图元素中的各二维地图元素和各其他地图元素,其中,根据实际的配置需要,元素识别标签可能携带在矢量地图瓦片数据中。
需要说明的是,根据实际的处理需要,可以以材质信息作为元素识别标签,针对二维地图元素和其他地图元素,配置不同的材质信息,使得针对获得的各个地图元素,根据地图元素绑定的材质信息进行区分归类,进而将二维地图元素单独抽离为一类,以及将其他地图元素归为另一类。
以元素识别标签为材质信息为例,由于可以基于地图元素生成渲染图元,以及基于渲染图元转换生成渲染片元,那么,对于归属于同一地图元素的渲染图元和渲染片元均与相应的材质信息进行绑定;使得需要解决平面竞争问题的二维地图元素与其他地图元素对应不同的材质信息,因而在后续可以基于绑定的材质信息实现对于各个地图元素的差异化分类,从而差异化地实现对于各二维地图元素和各其他地图元素的渲染内容判定。
进一步的,终端设备可以基于深度缓冲数据,从各二维地图元素和各其他地图元素各自对应的渲染片元集合中,分别筛选得到渲染深度值符合预设条件的各候选渲染片元,其中,预设的筛选条件为:渲染片元对应的渲染深度值,与深度缓冲数据中对应相同片元位置的目标深度值一致。
具体的,终端设备基于深度缓冲数据,确定在渲染后可视的各个渲染片元各自关联的目标深度值;进而在每个渲染片元集合中,分别确定对应的渲染深度值与相应片元位置的目标深度值匹配的各渲染片元,作为符合预设条件的各候选渲染片元。
本申请实施例中,对于其他地图元素而言,由于其他地图元素的渲染过程中不存在平面竞争问题,故可以直接基于深度缓冲数据,在每个其他地图元素对应的渲染片元集合中,筛选出深度值匹配的候选渲染片元,以及过滤掉深度值不匹配的其他渲染片元,换言之,在渲染结果中不可视的渲染片元将被剔除。
对于二维地图元素而言,可以先基于深度缓冲数据对渲染片元集合进行初步筛选,使得能够针对每个二维地图元素对应的渲染片元集合,筛选出深度值匹配的各候选渲染片元,以及剔除深度值不匹配的其他渲染片元。在此初步处理的过程中,应该理解的是,受深度值精度影响,针对不同二维地图元素筛选出的各候选渲染片元中,可能存在位置重叠的候选渲染片元,进而需要继续对候选渲染片元进行再次筛选,相关的筛选过程将在后续的步骤304中进行详细说明,在此将不做具体限制。
这样,借助于深度缓冲数据,能够对各个渲染片元集合中的渲染片元进行筛选,并能够针对各其他地图元素,分别确定在渲染结果中视觉上可视的各候选渲染片元,以及能够针对各二维地图元素,确定可能存在平面竞争问题的各候选渲染片元,因而支持针对不同地图元素执行差异化的判断步骤。
步骤304:终端设备渲染各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染对应的各待呈现渲染片元,获得相应的渲染结果。
本申请实施例中,终端设备在针对各其他地图元素分别确定对应的各候选渲染片元后,可以渲染各其他地图元素各自对应的各候选渲染片元。进而针对每个二维地图元素对应的各候选渲染片元,基于候选渲染片元对应的呈现优先级,从各候选渲染片元中筛选出各待呈现渲染片元,并渲染对应的各待呈现渲染片元,最终对应获取的矢量地图瓦片数据,得到渲染结果。
具体的,在针对每个二维地图元素,渲染对应的各待呈现渲染片元时,可以采用包括但不限于以下任意一项处理方式,实现针对二维地图元素的渲染:
方式一、针对每个地图元素的各候选渲染片元,串行执行是否为待呈现片元的判定,进而渲染该地图元素对应的待呈现片元。
在执行方式一的处理时,终端设备针对每个二维地图元素包括的各候选渲染片元,串行执行以下操作:基于每个候选渲染片元对应的呈现优先级,与初优先级数据中相应的片元位置处优先级取值的比较结果,判定该候选渲染片元是否为待呈现片元,并在将该候选渲染片元判定为待呈现片元时,将该候选渲染片元的呈现优先级写入初始优先级数据中相应的片元位置,实现对初始优先级数据中的内容更新,进而可以对该候选片元进行渲染。
具体的,终端设备针对各个渲染片元集合中包括的渲染片元覆盖的各个片元位置,分别配置初始的优先级取值,得到初始优先级数据;分别获取每个二维地图元素对应的各候选渲染片元,并执行以下操作,直至各个二维地图元素对应的各候选渲染片元获取完毕:针对获取的每个候选渲染片元,在确定呈现优先级高于初始优先级数据中对应位置的优先级取值时,将呈现优先级更新为相应的片元位置处的优先级取值,并将候选渲染片元确定为待呈现片元,以及渲染待呈现片元。
本申请实施例中,可以针对各个渲染片元集合中包括的渲染片元所覆盖的各个片元位置,分别配置初始的优先级取值,使得在缓冲区域中生成初始优先级数据,其中,根据实际的处理需要,可以设置呈现优先级的数值越大,表征优先呈现级别越高时,可以将初始的优先级取值设置为小于呈现优先级取值的最小值。
需要说明的是,本申请实施例中,在方式一的处理过程中,二维地图元素的渲染伴随着在初始优先级数据中的写入操作,而由于写入操作通常是串行的,而读取操作通常是并行的;故终端设备串行获取每个地图元素的各候选渲染片元,并在确定候选渲染片元对应的呈现优先级,高于与初始优先级数据中对应的优先级取值表征的优先级时,将表征较高优先级的取值结果写入初始优先级数据中的相应位置,实现对于初始优先级数据的内容更新;进而将该候选渲染片元确定为待呈现片元,并进行渲染。
在方式一提出的方案中,针对每个地图元素分别执行渲染操作,使得在先被渲染的地图元素内容,可能会被后续渲染的地图元素内容覆盖,但借助于基于初始优先级数据的写入判断,使得不会出现平面竞争的情况。
这样,通过将候选渲染片元的呈现优先级与初始优先级数据中存储内容进行写入判断,使得写入失败的候选渲染片元会被剔除,写入成功则作为待呈现片元进行暂存,以等待进行后续的渲染操作。因而基于初始优先级数据,能够高精度地从重叠的候选渲染片元中逐渐确定出最终能够可视化呈现的渲染片元,极大程度上避免了发生于二维地图元素渲染过程中的平面竞争问题,保障了渲染效率,能够理解的是,渲染操作并随着在初始优先级数据中的写入操作进行。
方式二、针对每个地图元素的各候选渲染片元,并行执行是否为待呈现片元的判定,进而渲染该地图元素对应的待呈现片元。
在执行方式二时,终端设备根据各个地图元素的呈现优先级,构建表征渲染后可视的各个片元位置的优先级取值的优先级缓冲数据后,基于从优先级缓冲数据中读取各个片元位置处的优先级取值,在各个二维地图元素各自对应的各候选渲染片元中,筛选出待呈现片元并渲染。
本申请实施例中,终端设备针对每个二维地图元素,渲染对应的各待呈现渲染片元时,终端设备获取基于各个渲染片元集合中包括的各个渲染片元各自对应的呈现优先级,生成的优先级缓冲数据,其中,优先级缓冲数据中包括渲染后在各个片元位置可视的渲染片元,各自对应的呈现优先级;进而在各候选渲染片元中,分别确定对应的呈现优先级与相应片元位置的优先级取值匹配的各候选渲染片元,作为相应的各待呈现片元,并对各待呈现片元进行渲染。
具体的,终端设备在生成优先级缓冲数据时,针对各个渲染片元集合中包括的渲染片元覆盖的各个片元位置,分别配置初始的优先级取值,得到初始优先级数据;再基于针对各个渲染片元集合中的各个渲染片元分别配置的呈现优先级,对各个优先级取值进行迭代更新,以及基于最后一次更新后初始优先级数据中各个片元位置各自对应的优先级取值,构成优先级缓冲数据。
需要说明的是,本申请实施例中,终端设备采用与生成深度缓冲数据类似的生成原理,生成优先级缓冲数据;先确定基于矢量地图瓦片数据得到的各个渲染片元所覆盖的各个片元位置,进而在缓冲区域内,针对各个片元位置配置初始的优先级取值后,得到初始优先级数据;之后,将每个渲染片元集合中各个渲染片元对应的呈现优先级,与初始优先级数据中相应位置的优先级取值进行比较,并将表征较高优先级的取值结果写入相应位置,实现对初始优先级数据的更新;最后基于全部的渲染片元集合完成写入判定以及更新后,获得优先级缓冲数据;在此基础上,在渲染过程中不涉及到对于优先级缓冲数据的写入操作,只涉及到从优先级缓冲数据中进行呈现优先级的读取。
在具体执行迭代更新时,在一次迭代更新过程中,终端设备针对一个渲染片元集合中的每个渲染片元,在确定呈现优先级高于对应位置的优先级取值时,将呈现优先级更新为相应的片元位置处的优先级取值。
例如,参阅图3D所示,其为本申请实施例中迭代更新过程中对初始优先级数据的内容调整示意图,根据图3C所示,假设各个地图元素覆盖的各个片元位置共计为5*9=45个,则可以根据实际的处理需要,针对各个片元位置配置初始的优先级取值,假设为0,其中,呈现优先级的取值范围为(0,1],0为小于呈现优先级最低值的一个数值,1为呈现优先级的取值最大值,表征优先级最高。进而在迭代更新的过程中,假设当前获取的地图元素1所对应的各个渲染片元位置为{(2,1)、(2,2)、(2,3)、(2,4)、(2,5)、(2,6)、(3,6)、(4,6)、(4,7)、(4,8)},且地图元素1对应的呈现优先级为0.5,那么,在当前一次更新过程中,分别比较位置(2,1)、(2,2)、(2,3)、(2,4)、(2,5)、(2,6)、(3,6)、(4,6)、(4,7)、(4,8)处,对应的呈现优先级0.5,与对应位置的优先级取值0之间的大小关系,并在0.5的取值大于a1后,将相应位置的优先级取值更新为0.5。
同理,假设进一步获取的地图元素2所对应的各个渲染片元位置为{(1,4)、(2,4)、(3,4)、(4,4)、(4,5)、(4,6)、(4,7)、(4,8)},且地图元素2对应的呈现优先级为0.3,则在确定0.3<0.5,0.3>0的情况下,对地图元素2与地图元素1重叠的片元位置处的优先级取值不做调整,并将地图元素2对应的其他片元位置处的优先级取值,调整为0.3。
进一步的,与上述处理过程同理,终端设备在基于各个地图元素的呈现优先级,完成对初始缓冲数据的内容调整后,基于最后一次迭代调整后,各个片元位置处的深度值取值,获得优先级缓冲数据。
这样,基于各个渲染片元集合各自覆盖的片元位置和呈现优先级,对初始缓冲数据进行迭代调整,使得最终能够得到的优先级缓冲数据中,能够表征出渲染后在各个片元位置可视的渲染片元,各自对应的呈现优先级,为针对二维地图元素进行的渲染片元的再筛选提供了处理依据。
需要说明的是,本申请实施例中,方式二中生成的优先级缓冲数据是在渲染操作进行之前生成的,且渲染过程中不涉及到对于优先级缓冲数据的写入操作,只涉及到从优先级缓冲数据中进行呈现优先级的读取;进而终端设备基于优先级缓冲数据,在每个二维地图元素对应的各候选渲染片元中,分别确定对应的呈现优先级,与优先级缓冲数据中相应片元位置的优先级取值匹配的各候选渲染片元,作为相应的各待呈现片元,并进行渲染。
需要说明的是,对于方式一和方式二中的渲染过程而言,终端设备可以采用相关技术下的渲染方式,实现对渲染片元进行着色。
如,在可能的实现方式中,矢量地图瓦片数据中,每个位置点关联有渲染深度值的同时,还关联有颜色信息和渲染方式信息,因此终端设备可以基于三角化的渲染图元中,各个顶点关联的颜色信息和渲染方式信息,按照现有技术下的处理策略,确定每个渲染片元对应的颜色信息和纹理信息等内容,进而实现着色等处理,最终完成渲染。
这样,结合优先级缓存数据,能够在渲染之前针对各个二维地图元素确定出待呈现片元,使得对存在重叠遮挡关系的候选渲染片元进行了处理,剔除被遮挡所无法可视化呈现的候选渲染图元,避免渲染被遮挡的候选渲染片元,提高了渲染效率。
下面结合附图,以一个具体的举例为例,对本申请实施例中地图数据的渲染过程进行说明:
本申请公开的技术方案中,为了解决矢量地图数据渲染时矢量元素在平面上堆叠渲染呈现时产生的闪烁现象(平面竞争),在考量闪烁现象产生的本质是片元和深度缓冲数据的深度值精度不足,导致片元频繁的被渲染和剔除,且受处理性能的影响无法从深度值精度的层面上彻底解决平面竞争问题的情况下,本申请通过预先针对地图元素进行渲染优先级排序,赋予每个渲染元素高精度的呈现优先级,使得当多个地图元素在相同的片元位置处存在内容重叠时,能够精确确定应该在该片元位置处呈现的正确片元,从而解决Z-Fighting问题。
在可能的应用场景中,本申请提出的地图数据的渲染方式,可以应用于腾讯地图可视化平台(WeMap Vis)的第四版虚幻引擎(Unreal Engine 4,UE4),可视化地图开发工具包(Software Development Kit,SDK)中。UE4可视化地图SDK采用矢量数据构建地球底座,其上可以融合叠加展示其他数据,并提供了API接口供用户二次开发使用。矢量地图数据(地图元素)中大多为二维数据(二维地图元素),若不解决二维地图元素的堆叠压盖闪烁问题,渲染结果中将会呈现出平面竞争现象,使得二维地图元素被乱序渲染,在连续呈现渲染结果的过程中出现内容闪烁,无法保障地图数据的渲染效果,无法实现正常的功能发布。
针对性地,通过采用本申请提出的地图数据渲染方案,能够完全解决二维地图元素(矢量数据)在渲染呈现时出现内容闪烁的问题,并能够基于特定堆叠顺序进行平面元素的叠加展示,达到预期的地图效果,使得最终基于矢量地图瓦片数据渲染得到的地图内容可以作为地图中的数据底座进行呈现。
参阅图4A所示,其为本申请实施例中终端设备实现地图渲染的流程示意图,下面集合附图4A对相关的处理步骤进行概述性说明:
步骤401:终端设备向服务端设备发送地图数据获取请求。
步骤402:服务端设备向终端设备反馈加密后的地图瓦片数据。
步骤403:终端设备对加密后的矢量地图瓦片数据进行解析,获得各个地图元素相关的数据。
步骤404:终端设备确定各个地图元素对应的渲染顺序,配置每个地图元素对应的呈现优先级。
需要说明的是,本申请提出的技术方案中,默认各个地图元素的渲染顺序是已知的,即,预先根据预期的渲染效果,配置了各个地图元素的渲染方式和渲染顺序。
步骤405:终端设备将各个地图元素进行三角化处理,得到每个地图元素对应的渲染片元集合,并针对相同渲染片元集合中的各个渲染片元,配置与归属的地图元素对应的呈现优先级。
具体的,对地图元素进行三角化处理的具体实现方式,是本领域的常规技术,在此不做具体限制;一个渲染片元集合关联有一个呈现优先级,即,一个渲染片元集合中的各个渲染片元,关联有相同的呈现优先级。
步骤406:终端设备针对二维地图元素和其他地图元素,配置有不同的材质信息,以从地图元素中区分出二维地图元素和其他地图元素。
具体的,在预先针对地图元素配置有元素识别标签的情况下,可以直接基于地图元素关联的元素识别标签,区分出地图元素中的二维地图元素和其他地图元素;或者,终端设备可以直接针对获取的地图元素进行材质信息的配置,例如,可以将二维地图元素配置为一类材质信息,以及将其他地图元素配置为另一类材质信息。
步骤407:终端设备触发执行对地图数据的具体渲染。
步骤408:终端设备根据地图元素的材质信息,从各个地图元素中区分出二维地图元素和其他地图元素。
步骤409:终端设备针对各个地图元素的渲染深度值,在深度缓冲区中完成深度值收集,得到深度缓冲数据。
相关的处理过程与上述步骤302中生成深度缓冲数据的过程相同,在此不再赘述。
步骤410:终端设备进行其他地图元素的渲染。
步骤411:终端设备进行二维地图元素的渲染。
需要说明的是,步骤403-407可以理解为终端设备中业务逻辑侧的处理,步骤407-411的处理,可以理解为终端设备中渲染侧的处理。
具体的,在执行步骤410和411时,参阅图4B所示,其为本申请实施例中执行地图元素渲染的流程示意图,下面结合附图4B,对采用步骤304方式一的处理方式,对地图元素进行渲染的过程,进行示意性说明:
S1:终端设备获取渲染片元。
具体的,终端设备可已根据实际处理需要,选择性的从各个地图元素对应的渲染片元集合中,按照任意顺序依次选定一个渲染片元集合,并分别获取选渲染片元集合中的各个渲染片元。
S2:终端设备判断该获取的渲染片元是否归属于二维地图元素,若是,执行步骤S6,否则,执行步骤S3。
S3:终端设备判断渲染片元关联的渲染深度值,与深度缓冲区中相应位置的深度值是否匹配,若是,执行步骤S4,否则,执行步骤S5。
S4:终端设备将获取的渲染片元确定为候选渲染片元,并对该候选渲染片元进行着色。
S5:终端设备删除获取的渲染片元。
S6:终端设备判断渲染片元关联的渲染深度值,与深度缓冲区中相应位置的深度值是否匹配,若是,执行步骤S7,否则,执行步骤S9。
S7:终端设备判断渲染片元关联的呈现优先级,与当前优先级数据中相应位置的优先级取值是否匹配,若是,执行步骤S8,否则,执行步骤S9。
具体的,终端设备可以引入一个新的数据缓冲区,对应各个片元位置写入初始的优先级取值,得到初始优先级数据,使得在执行步骤S7时,在采用步骤S6,根据深度缓冲数据,确定渲染片元是否被遮挡,若被遮挡则直接删除,若没有被遮挡,则将该渲染片元确定为候选渲染片元;进而将候选渲染片元的呈现优先级,与该数据缓冲区中的当前优先级数据进行写入判断,写入失败则直接剔除,写入成功则将候选渲染片元确定为待呈现片元,并进行暂存等待后续的渲染。
S8:终端设备将获取的渲染片元确定为待呈现片元,并对该待呈现片元进行着色。
S9:终端设备删除获取的渲染片元。
需要说明的是,上述图4B所提出的实现方式,仅为本申请一种可行的渲染方式,根据实际的处理需要,终端设备还可以合并步骤S3和S6的操作,在完成基于深度缓冲数据的判定后,再针对二维地图元素和其他地图元素差异性的执行处理,本申请在此将不再具体说明。
另外,结合图4A和4B所示意的处理过程,在可能的实现方式中,终端设备可以先对其他地图元素对应的渲染片元进行渲染,再对二维地图元素对应的渲染片元进行渲染,对于其他地图元素对应的渲染片元的渲染而言,可以在确定渲染片元的渲染深度值与深度缓冲数据中的深度值一致时,则针对该渲染片元进行下一步的着色阶段,以及在确定当前的渲染片元的渲染深度值,大于深度缓冲数据中对应的深度值时,则直接剔除该渲染片元。
另外,由于针对片元进行渲染处理,是本领域的常规技术,故本申请将不对基于渲染片元进行具体渲染处理的过程进行具体说明。
基于上述的处理方式,参阅图4C所示,其为本申请实施例中地图数据的渲染结果示意图,根据图4C所示意的内容可知,基于本申请提出的渲染方式渲染的渲染结果中,各个二维地图元素能够被正常显示,存在交叠的道路能够顺畅的呈现,能够满足预期的渲染需求。
这样,基于本申请提出的技术方案,能够在不关闭深度检测,以及不大幅度调整已有的渲染流程的情况下,解决矢量数据渲染的Z-Fighting问题。通过引入优先级数据,使得地图元素的渲染次序易于管理且精度极高,从而避免采用繁琐的拟合操作确定深度偏移,以及避免产生不符合预期的渲染结果。同时,由于本申请是基于矢量数据进行的渲染,因此产生的渲染结果不会出现放大模糊的问题,而且能够支持具有动态效果的地图元素的正常展示。
另外,本申请提出的技术方案可以应用于所有类型的渲染引擎中,渲染逻辑主要聚焦于对渲染流程的微调,在可能的实现方式中,对于业务逻辑层的实现可以无任何影响。
基于同一发明构思,参阅图5所示,其为本申请实施例中地图数据的渲染装置的逻辑结构示意图,地图数据的渲染装置500中包括获取单元501、生成单元502、筛选单元503,以及渲染单元504,其中,
获取单元501,用于获取矢量地图瓦片数据,其中,矢量地图瓦片数据包括:各地图元素各自的位置点信息集合,每个位置点信息关联有对应的渲染深度值;
生成单元502,用于分别基于每个地图元素对应的位置点信息集合,生成相应的渲染片元集合,以及基于各个地图元素关联各自的渲染深度值,生成深度缓冲数据,其中,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级;
筛选单元503,用于在各个地图元素中确定各二维地图元素和各其他地图元素,并基于深度缓冲数据,分别从每个渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元;
渲染单元504,用于渲染各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染对应的各待呈现渲染片元,获得相应的渲染结果;各待呈现渲染片元是根据呈现优先级在对应的各候选渲染片元中筛选得到。
可选的,针对每个二维地图元素,渲染对应的各待呈现渲染片元时,渲染单元504用于:
针对各个渲染片元集合中包括的渲染片元覆盖的各个片元位置,分别配置初始的优先级取值,得到初始优先级数据;
分别获取每个二维地图元素对应的各候选渲染片元,并执行以下操作,直至各个二维地图元素对应的各候选渲染片元获取完毕:
针对获取的每个候选渲染片元,在确定呈现优先级高于初始优先级数据中对应位置的优先级取值时,将呈现优先级更新为相应的片元位置处的优先级取值,并将候选渲染片元确定为待呈现片元,以及渲染待呈现片元。
可选的,针对每个二维地图元素,渲染对应的各待呈现渲染片元时,渲染单元504用于:
获取基于各个渲染片元集合中包括的各个渲染片元各自对应的呈现优先级,生成的优先级缓冲数据,其中,优先级缓冲数据中包括渲染后在各个片元位置可视的渲染片元,各自对应的优先级信息;
在各候选渲染片元中,分别确定对应的呈现优先级与相应片元位置的优先级取值匹配的各候选渲染片元,作为相应的各待呈现片元,并对各待呈现片元进行渲染。
可选的,生成优先级缓冲数据时,渲染单元504用于:
针对各个渲染片元集合中包括的渲染片元覆盖的各个片元位置,分别配置初始的优先级取值,得到初始优先级数据;
基于针对各个渲染片元集合中的各个渲染片元分别配置的呈现优先级,对各个优先级取值进行迭代更新,以及基于最后一次更新后初始优先级数据中各个片元位置各自对应的优先级取值,构成优先级缓冲数据。
可选的,包括:在一次迭代更新过程中,渲染单元504用于执行以下操作:
针对一个渲染片元集合中的每个渲染片元,在确定呈现优先级高于对应位置的优先级取值时,将呈现优先级更新为相应的片元位置处的优先级取值。
可选的,预先针对二维地图元素和其他地图元素配置有元素识别标签时,在各个地图元素中确定各二维地图元素和各其他地图元素时,筛选单元503用于:
识别各个地图元素各自关联的元素识别标签,并根据对应的各个元素识别标签,确定各个地图元素中的各二维地图元素和各其他地图元素。
可选的,基于各个地图元素关联的各渲染深度值,生成深度缓冲数据时,生成单元502用于:
针对各个渲染片元集合中各个渲染片元覆盖的每个片元位置,配置对应的初始深度值,并基于针对各个片元位置配置的初始深度值,得到对应的初始缓冲数据;
基于各个位置点信息集合中各个位置点信息关联的渲染深度值,对各个初始深度值进行迭代更新,以及基于最后一次更新后初始缓冲数据中各个片元位置各自对应的目标深度值,获得深度缓冲数据,其中,深度缓冲数据中包括渲染后可视的各个渲染片元各自对应的渲染深度值。
可选的,在一次迭代更新过程中,生成单元502用于执行以下操作:
根据一个位置点信息集合中每个位置点信息关联的渲染深度值,确定对应的渲染片元集合中各个渲染片元各自对应的渲染深度值;
针对每个渲染片元,将对应的片元位置处的初始深度值和渲染深度值中较小的取值结果,更新为初始缓冲数据中相应的片元位置处的目标深度值,其中,目标深度值为下一次迭代更新时,初始缓冲数据中相应的片元位置处的初始深度值。
可选的,基于深度缓冲数据,分别从每个渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元时,筛选单元503用于:
基于深度缓冲数据,确定在渲染后可视的各个渲染片元各自关联的目标深度值;
在每个渲染片元集合中,分别确定对应的渲染深度值与相应片元位置的目标深度值匹配的各渲染片元,作为符合预设条件的各候选渲染片元。
可选的,获取矢量地图瓦片数据时,获取单元501用于:
接收目标设备基于地图数据获取请求发送的地图加密数据,其中,地图数据获取请求中携带有目标对象当前的地图观测视角;
按照预设的数据解密协议,对地图加密数据进行解析,获取矢量地图瓦片数据。
可选的,基于每个地图元素对应的位置点信息集合,生成相应的渲染片元集合时,生成单元502用于:
基于每个地图元素对应的位置点信息集合,对地图元素进行三角化处理,得到各个渲染图元,以及针对每个渲染图元进行拆分处理,得到对应的各个渲染片元;
基于由各个渲染图元各自拆分得到的渲染片元,组合生成与地图元素对应的渲染片元集合。
在介绍了本申请示例性实施方式的地图数据的渲染方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备,参阅图6所示,其为应用本申请实施例的一种电子设备的一个硬件组成结构示意图,电子设备600可以至少包括处理器601、以及存储器602。其中,存储器602存储有程序代码,当程序代码被处理器601执行时,使得处理器601执行上述任意一种地图数据的渲染的步骤。
在一些可能的实施方式中,根据本申请的计算装置可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的地图数据的渲染的步骤。例如,处理器可以执行如图3A、图3B中所示的步骤。
下面参照图7来描述根据本申请的这种实施方式的计算装置700。如图7所示,计算装置700以通用计算装置的形式表现。计算装置700的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件(包括存储单元702和处理单元701)的总线703。
总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)7021和/或高速缓存存储器7022,还可以进一步包括只读存储器(ROM)7023。
存储单元702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置700也可以与一个或多个外部设备704(例如键盘、指向设备等)通信,还可与一个或者多个使得对象能与计算装置700交互的设备通信,和/或与使得该计算装置700能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口705进行。并且,计算装置700还可以通过网络适配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与用于计算装置700的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
与上述方法实施例基于同一发明构思,本申请提供的地图数据的渲染的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的地图数据的渲染方法中的步骤,例如,电子设备可以执行如图3A、图3B中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种地图数据的渲染方法,其特征在于,包括:
获取矢量地图瓦片数据,其中,所述矢量地图瓦片数据包括:各地图元素各自的位置点信息集合,每个位置点信息关联有对应的渲染深度值;
分别基于每个所述地图元素对应的位置点信息集合,生成相应的渲染片元集合,以及基于各个地图元素关联各自的渲染深度值,生成深度缓冲数据,其中,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级;
在所述各个地图元素中确定各二维地图元素和各其他地图元素,并基于所述深度缓冲数据,分别从每个所述渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元;
渲染所述各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染对应的各待呈现渲染片元,获得相应的渲染结果;所述各待呈现渲染片元是根据所述呈现优先级在对应的各候选渲染片元中筛选得到。
2.如权利要求1所述的方法,其特征在于,所述针对每个所述二维地图元素,渲染对应的各待呈现渲染片元,包括:
针对各个渲染片元集合中包括的渲染片元覆盖的各个片元位置,分别配置初始的优先级取值,得到初始优先级数据;
分别获取每个二维地图元素对应的各候选渲染片元,并执行以下操作,直至各个二维地图元素对应的各候选渲染片元获取完毕:
针对获取的每个候选渲染片元,在确定呈现优先级高于所述初始优先级数据中对应位置的优先级取值时,将所述呈现优先级更新为相应的片元位置处的优先级取值,并将所述候选渲染片元确定为待呈现片元,以及渲染所述待呈现片元。
3.如权利要求1所述的方法,其特征在于,所述针对每个所述二维地图元素,渲染对应的各待呈现渲染片元,包括:
获取基于各个渲染片元集合中包括的各个渲染片元各自对应的呈现优先级,生成的优先级缓冲数据,其中,所述优先级缓冲数据中包括渲染后在各个片元位置可视的渲染片元,各自对应的优先级信息;
在所述各候选渲染片元中,分别确定对应的呈现优先级与相应片元位置的优先级取值匹配的各候选渲染片元,作为相应的各待呈现片元,并对所述各待呈现片元进行渲染。
4.如权利要求3所述的方法,其特征在于,生成优先级缓冲数据时,包括:
针对各个渲染片元集合中包括的渲染片元覆盖的各个片元位置,分别配置初始的优先级取值,得到初始优先级数据;
基于针对所述各个渲染片元集合中的各个渲染片元分别配置的呈现优先级,对各个优先级取值进行迭代更新,以及基于最后一次更新后所述初始优先级数据中各个片元位置各自对应的优先级取值,构成优先级缓冲数据。
5.如权利要求4所述的方法,其特征在于,包括:在一次迭代更新过程中,执行以下操作:
针对所述一个渲染片元集合中的每个所述渲染片元,在确定呈现优先级高于对应位置的优先级取值时,将所述呈现优先级更新为相应的片元位置处的优先级取值。
6.如权利要求1-5任一项所述的方法,其特征在于,预先针对二维地图元素和其他地图元素配置有元素识别标签时,所述在所述各个地图元素中确定各二维地图元素和各其他地图元素,包括:
识别所述各个地图元素各自关联的元素识别标签,并根据对应的各个元素识别标签,确定所述各个地图元素中的各二维地图元素和各其他地图元素。
7.如权利要求1-5任一项所述的方法,其特征在于,所述基于各个地图元素关联的各渲染深度值,生成深度缓冲数据,包括:
针对所述各个渲染片元集合中各个渲染片元覆盖的每个片元位置,配置对应的初始深度值,并基于针对各个片元位置配置的初始深度值,得到对应的初始缓冲数据;
基于所述各个位置点信息集合中各个位置点信息关联的渲染深度值,对各个初始深度值进行迭代更新,以及基于最后一次更新后所述初始缓冲数据中各个片元位置各自对应的目标深度值,获得深度缓冲数据,其中,所述深度缓冲数据中包括渲染后可视的各个渲染片元各自对应的渲染深度值。
8.如权利要求7所述的方法,其特征在于,在一次迭代更新过程中,执行以下操作:
根据所述一个位置点信息集合中每个所述位置点信息关联的渲染深度值,确定对应的渲染片元集合中各个渲染片元各自对应的渲染深度值;
针对每个渲染片元,将对应的片元位置处的初始深度值和渲染深度值中较小的取值结果,更新为所述初始缓冲数据中相应的片元位置处的目标深度值,其中,所述目标深度值为下一次迭代更新时,所述初始缓冲数据中相应的片元位置处的初始深度值。
9.如权利要求7所述的方法,其特征在于,所述基于所述深度缓冲数据,分别从每个所述渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元,包括:
基于所述深度缓冲数据,确定在渲染后可视的各个渲染片元各自关联的目标深度值;
在每个所述渲染片元集合中,分别确定对应的渲染深度值与相应片元位置的目标深度值匹配的各渲染片元,作为符合预设条件的各候选渲染片元。
10.如权利要求1-5任一项所述的方法,其特征在于,所述获取矢量地图瓦片数据,包括:
接收目标设备基于地图数据获取请求发送的地图加密数据,其中,所述地图数据获取请求中携带有目标对象当前的地图观测视角;
按照预设的数据解密协议,对所述地图加密数据进行解析,获取矢量地图瓦片数据。
11.如权利要求1-5任一项所述的方法,其特征在于,所述基于每个地图元素对应的位置点信息集合,生成相应的渲染片元集合,包括:
基于每个地图元素对应的位置点信息集合,对所述地图元素进行三角化处理,得到各个渲染图元,以及针对每个渲染图元进行拆分处理,得到对应的各个渲染片元;
基于由所述各个渲染图元各自拆分得到的渲染片元,组合生成与所述地图元素对应的渲染片元集合。
12.一种地图数据的渲染装置,其特征在于,包括:
获取单元,用于获取矢量地图瓦片数据,其中,所述矢量地图瓦片数据包括:各地图元素各自的位置点信息集合,每个位置点信息关联有对应的渲染深度值;
生成单元,用于分别基于每个所述地图元素对应的位置点信息集合,生成相应的渲染片元集合,以及基于各个地图元素关联各自的渲染深度值,生成深度缓冲数据,其中,归属于同一渲染片元集合的各个渲染片元被配置有相同的呈现优先级;
筛选单元,用于在所述各个地图元素中确定各二维地图元素和各其他地图元素,并基于所述深度缓冲数据,分别从每个所述渲染片元集合中筛选出渲染深度值符合预设条件的各候选渲染片元;
渲染单元,用于渲染所述各其他地图元素各自对应的各候选渲染片元,并针对每个二维地图元素,渲染对应的各待呈现渲染片元,获得相应的渲染结果;所述各待呈现渲染片元是根据所述呈现优先级在对应的各候选渲染片元中筛选得到。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-11任一项所述的地图数据的渲染方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-11任一项所述的地图数据的渲染方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-11任一项所述的地图数据的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211170014.9A CN117788726A (zh) | 2022-09-22 | 2022-09-22 | 一种地图数据的渲染方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211170014.9A CN117788726A (zh) | 2022-09-22 | 2022-09-22 | 一种地图数据的渲染方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117788726A true CN117788726A (zh) | 2024-03-29 |
Family
ID=90398713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211170014.9A Pending CN117788726A (zh) | 2022-09-22 | 2022-09-22 | 一种地图数据的渲染方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117788726A (zh) |
-
2022
- 2022-09-22 CN CN202211170014.9A patent/CN117788726A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748372B2 (en) | Server implemented geographic information system with graphical interface | |
US10032302B2 (en) | Rebuilding images based on historical image data | |
CN110648363B (zh) | 相机姿态确定方法、装置、存储介质及电子设备 | |
US11830103B2 (en) | Method, apparatus, and computer program product for training a signature encoding module and a query processing module using augmented data | |
KR20180004109A (ko) | 모바일 디바이스 현지화를 위한 영역 서술 파일의 크라우드-소싱 생성 및 업데이트 | |
CN110084797B (zh) | 平面检测方法、装置、电子设备和存储介质 | |
US20180089791A1 (en) | Rendering map data using descriptions of raster differences | |
US9070345B2 (en) | Integrating street view with live video data | |
US8639023B2 (en) | Method and system for hierarchically matching images of buildings, and computer-readable recording medium | |
JP2015079354A (ja) | 仮想現実を用いた3次元地図表示システム | |
JP6686547B2 (ja) | 画像処理システム、プログラム、画像処理方法 | |
CN111382223B (zh) | 电子地图的展示方法、终端和电子设备 | |
CN113516697B (zh) | 图像配准的方法、装置、电子设备及计算机可读存储介质 | |
CN105631849B (zh) | 多边形目标的变化检测方法及装置 | |
CN110390724A (zh) | 一种带有实例分割的slam方法 | |
KR101487454B1 (ko) | Lod 영상 병렬처리방법 | |
US10460427B2 (en) | Converting imagery and charts to polar projection | |
JP7086180B2 (ja) | デジタルマップの動的リスタイリング | |
US10460420B2 (en) | Converting spatial features to map projection | |
CN117788726A (zh) | 一种地图数据的渲染方法、装置、电子设备及存储介质 | |
CN109376653A (zh) | 用于定位车辆的方法、装置、设备和介质 | |
CN113269730B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN110196638B (zh) | 基于目标检测和空间投影的移动端增强现实方法和系统 | |
CN108550137B (zh) | 不停电缺陷勘察记录方法及终端设备 | |
CN116383326B (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 |