CN117830587A - 地图标注的绘制方法、装置、计算机设备和存储介质 - Google Patents

地图标注的绘制方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN117830587A
CN117830587A CN202410247786.0A CN202410247786A CN117830587A CN 117830587 A CN117830587 A CN 117830587A CN 202410247786 A CN202410247786 A CN 202410247786A CN 117830587 A CN117830587 A CN 117830587A
Authority
CN
China
Prior art keywords
map
annotation
label
determining
dimensional
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
Application number
CN202410247786.0A
Other languages
English (en)
Other versions
CN117830587B (zh
Inventor
贺经纬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202410247786.0A priority Critical patent/CN117830587B/zh
Publication of CN117830587A publication Critical patent/CN117830587A/zh
Application granted granted Critical
Publication of CN117830587B publication Critical patent/CN117830587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本申请实施例可应用于地图领域,具体涉及一种地图标注的绘制方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:确定虚拟相机观测到的观测范围;根据观测范围确定参与遮挡计算的三维地物,并将每个三维地物的深度信息分别写入预先设置的帧缓冲区中;根据观测范围确定参与遮挡计算的地图标注,并针对参与遮挡计算的每个地图标注,确定所针对的地图标注所对应的缩放比例;根据缩放比例得到标注几何体;在根据标注几何体的深度信息和帧缓冲区中记载的深度信息,确定所针对的地图标注未被三维地物遮挡的情况下,将所针对的地图标注绘制至与电子地图帧中。采用本方法能够使得电子地图帧所展示的内容具有正确的遮挡关系。

Description

地图标注的绘制方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种地图标注的绘制方法、装置、计算机设备和存储介质。
背景技术
随着科学技术的发展,出现了电子地图应用,通过电子地图应用可展示电子地图,从而过户可以借助展示的电子地图完成路劲规划,进行出行导航。目前,为了更好地对建筑、道路等信息的展示,可通过电子地图应用展示三维地物,比如,可通过电子地图应用展示三维建筑物、三维道路等。
在三维展示过程中,由于地图标注是在二维屏幕空间中显示的,三维地物是在三维空间中展示,两者显示是独立的,因此,即使在三维空间中会被三维地物遮挡的地图标注,也会被电子地图应用展示,从而使得展示的三维地物和地图标注不具备正确的遮挡关系。
发明内容
基于此,有必要针对上述技术问题,提供一种能够使得展示的三维地物和地图标注之间具备正确遮挡关系的地图标注的绘制方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种地图标注的绘制方法,所述方法包括:
在接收到地图标注绘制任务的情况下,确定虚拟相机观测到的观测范围;
根据所述观测范围确定参与遮挡计算的三维地物,并将参与遮挡计算的每个三维地物的深度信息分别写入预先设置的帧缓冲区中;
根据所述观测范围确定参与遮挡计算的地图标注,并针对参与遮挡计算的每个所述地图标注,确定所针对的地图标注所对应的缩放比例;
生成与所针对的地图标注对应的初始几何体,并根据所针对的地图标注所对应的缩放比例对所述初始几何体进行缩放,得到标注几何体;
在根据所述标注几何体的深度信息和所述帧缓冲区中记载的深度信息,确定所针对的地图标注未被参与遮挡计算的三维地物遮挡时,将所针对的地图标注绘制至电子地图帧中。
第二方面,本申请还提供了一种地图标注的绘制装置,所述装置包括:
三维地物写入模块,用于在接收到地图标注绘制任务的情况下,确定虚拟相机观测到的观测范围;根据所述观测范围确定参与遮挡计算的三维地物,并将参与遮挡计算的每个三维地物的深度信息分别写入预先设置的帧缓冲区中;
标注几何体生成模块,用于据所述观测范围确定参与遮挡计算的地图标注,并针对参与遮挡计算的每个所述地图标注,确定所针对的地图标注所对应的缩放比例;生成与所针对的地图标注对应的初始几何体,并根据所针对的地图标注所对应的缩放比例对所述初始几何体进行缩放,得到标注几何体;
深度比对模块,用于在根据所述标注几何体的深度信息和所述帧缓冲区中记载的深度信息,确定所针对的地图标注未被参与遮挡计算的三维地物遮挡时,将所针对的地图标注绘制至电子地图帧中。
在其中一个实施例中,所述三维地物写入模块还用于在开启深度信息写入功能、关闭颜色信息写入功能的情况下,根据每个所述三维地物各自的顶点数据,将每个所述三维地物的深度信息分别写入预先设置的帧缓冲区中。
在其中一个实施例中,所述三维地物写入模块还用于针对参与避让计算的每一个三维地物,将所针对的三维地物的顶点数据从世界坐标系转换至剪裁空间;将位于剪裁空间中的顶点装配成图元,并对所述图元进行光栅化计算,得到所述图元的像素坐标;根据所述图元的像素坐标,将所述图元的深度值写入预先设置的帧缓冲区。
在其中一个实施例中,所述标注几何体生成模块还用于确定对所述三维地物进行透视投影时的投影面,并确定从所述虚拟相机的中心点发射的射线与所述投影面之间的交点;根据所述交点和所述虚拟相机在世界坐标系中的三维坐标,确定所述交点与所述虚拟相机之间的第一距离;根据所述地图标注和所述虚拟相机在世界坐标系中的三维坐标,确定所述地图标注与所述虚拟相机之间的第二距离;根据所述第一距离和所述第二距离,确定与所针对的地图标注相对应的缩放比例。
在其中一个实施例中,所述标注几何体生成模块还用于将所述第二距离除以所述第一距离,得到相除结果;将所述相除结果作为与所针对的地图标注相对应的缩放比例。
在其中一个实施例中,所述初始几何体为初始立方体;所述标注几何体为标注立方体;所述标注几何体生成模块还用于获取预设体积大小,并以所述地图标注在世界坐标系中的位置为中心,生成所述预设体积大小的初始立方体;根据所针对的地图标注所对应的缩放比例,对所述初始立方体进行缩放,得到与所针对的地图标注相对应的标注立方体。
在其中一个实施例中,所述标注几何体生成模块还用于确定所述虚拟相机观测到的观测范围所对应的地理范围;确定屏幕中像素的大小,并将所述地理范围除以所述像素的大小,得到单位像素所代表的地理范围;获取预设的点选精度,根据所述点选精度和所述单位像素所代表的地理范围,确定预设体积大小。
在其中一个实施例中,所述深度比对模块还用于将所述标注几何体的每个顶点的深度值,分别与所述帧缓冲区中每个像素的深度值进行比较;对于所述标注几何体中的任意一个顶点,在所述帧缓冲区中存在与所述任意一个顶点相对应的目标像素的情况下,确定所述标注几何体所对应的地图标注被三维地物遮挡;其中,与所述任意一个顶点相对应的目标像素,是指深度值小于所述任意一个顶点的深度值的像素。
在其中一个实施例中,所述标注几何体具有预设颜色;所述深度比对模块还用于对于所述标注几何体中的每个顶点,在所述帧缓冲区中均不存在对应目标像素的情况下,确定所述标注几何体所对应的地图标注未被三维地物遮挡,并将所述标注几何体的颜色信息写入所述帧缓冲区。
在其中一个实施例中,所述地图标注的绘制装置还包括颜色读取模块,用于根据所针对的地图标注在世界坐标系中的位置坐标,确定所针对的地图标注在屏幕坐标系中的二维屏幕坐标;根据所述二维屏幕坐标从所述帧缓冲区中读取颜色信息,在读取的颜色信息与所针对的地图标注所对应的标注几何体的颜色信息一致时,将所针对的地图标注绘制至电子地图帧中。
在其中一个实施例中,所述地图标注的绘制装置还包括颜色读取模块,用于根据所述虚拟相机的在世界坐标系中位置和所述虚拟相机的朝向,构建虚拟相机坐标系,并对所针对的地图标注进行视图变换,以将所针对的地图标注从世界坐标系转换至所述虚拟相机坐标系;对位于所述虚拟相机坐标系中的所针对的地图标注进行投影变换,得到所针对的地图标注在屏幕坐标系中的二维屏幕坐标。
在其中一个实施例中,所述地图标注的绘制装置还包括避让功能触发模块,用于展示电子地图展示页面;所述电子地图展示页面包括电子地图帧、位于所述电子地图帧中的初始地图标注以及标注避让功能开启控件;响应于针对所述标注避让功能开启控件的触发操作,从在所述电子地图帧中展示初始地图图标转为展示目标地图标注;所述目标地图标注是未被三维地物遮挡的地图标注。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请实施例提供的任一种地图标注的绘制方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的任一种地图标注的绘制方法中的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的任一种地图标注的绘制方法中的步骤。
上述地图标注的绘制方法、装置、计算机设备、存储介质和计算机程序产品,通过确定虚拟相机观测到的地理范围,可确定位于该地理范围内的三维地物,并分别将每个三维地物的深度信息绘制至帧缓冲区中。以及可确定位于该地理范围内的地图标注,确定每个地图标注各自对应的缩放比例,如此,便可基于确定的缩放比例,生成每个地图标注各自对应的标注几何体。由于生成的标注几何体可认为是三维空间中的地图标注,因此,可将标注几何体的深度信息与帧缓冲区中的深度信息进行比对,以基于比对结果确定在三维空间中地图标注是否会被三维地物遮挡。当确定地图标注不会被三维地物遮挡时,则将该地图标注绘制于电子地图帧中,这样电子地图帧中展示的虚拟建筑和地图标注之间就具有正确的遮挡关系,使得电子地图更为真实。
附图说明
图1为一个实施例中地图标注的绘制方法的应用环境图;
图2为一个实施例中物体遮挡的示意图;
图3为一个实施例中地图标注的绘制方法流程示意图;
图4为一个实施例中电子地图帧的示意图;
图5为一个实施例中三维地物的示意图;
图6为一个实施例中写入有深度信息的帧缓冲区的示意图;
图7为一个实施例中标注几何体的生成示意图;
图8为一个实施例中地图标注的绘制示意图;
图9为一个实施例中渲染管线的设置页面的示意图;
图10为一个实施例中深度缓冲区的示意图;
图11为一个实施例中地图标注的显示示意图;
图12为一个具体实施例中地图标注的绘制方法的流程示意图;
图13为一个实施例中地图标注的绘制整体流程意图;
图14为一个实施例中地图标注的绘制装置的结构框图;
图15为一个实施例中计算机设备的内部结构图;
图16为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的地图标注的绘制方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。终端102和服务器104均可单独用于执行本申请实施例中提供的地图标注的绘制方法。终端102和服务器104也可协同用于执行本申请实施例中提供的地图标注的绘制方法。以终端102和服务器104可协同用于执行本申请实施例中提供的地图标注的绘制方法为例进行说明,终端102可展示标注避让功能开启控件,当终端102确定标注避让功能开启控件被触发后,终端102可生成地图标注绘制任务,并将地图标注绘制任务发送至服务器104,以使服务器104确定地图图像帧,并确定待绘制至地图图像帧中的地图标注,当确定该地图标注未被遮挡的情况下,将该地图标注绘制至地图图像帧中,将绘制有地图标注的地图图像帧发送至终端102,以使终端102对接收到的地图标注进行展示。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备、车载终端、飞行器和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
需要说明的是,本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。除非上下文另外清楚地指出,否则单数形式“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。本申请各实施例中提及的“多个”或“多份”等的数量均指代“至少两个”的数量,比如,“多个”指“至少两个”,“多份”指“至少两份”。
本申请涉及智慧交通领域,具体涉及自动驾驶,比如,可通过本申请实施例中的方法生成具有地图标注的地图图像帧,并通过该地图图像帧实现自动驾驶。自动驾驶技术通常包括高精地图、环境感知、行为决策、路径规划、运动控制等技术,自定驾驶技术有着广泛的应用前景。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、车联网、自动驾驶、智慧交通等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请还涉及游戏领域和虚拟现实领域,比如,可通过本申请实施例中的方法在游戏场景的地图中进行标注的绘制,以及可通过本申请实施例中的方法在基于可穿戴设备显示的地图中进行标注的绘制。
为了更好地理解本申请,现对本申请进行简要介绍。在对电子地图帧进行渲染的时候,三维空间中的物体通常会存在一些遮挡关系,例如,参考图2,图2中长方体挡住了一部分圆柱体,圆柱体又挡住了一部分正方体,从而从虚拟相机出发看向长方体、圆柱体和正方体时,并不能看到完整的圆柱体和正方体。相应的,在球体为三维建筑物,正方体为地图标注时,从虚拟相机出发,地图标注也会被三维建筑物遮挡。如不考虑这种遮挡关系,则理应被遮挡的物体也被完整的绘制出来,比如,理应被三维建筑物遮挡的地图标注也会被绘制在电子地图帧中,从而出现遮挡关系错误的现象。而本申请针对这一现象进了改进,使得被遮挡的地图标注不会出现在电子地图帧中,使得电子地图帧中显示的物体具有正确的遮挡关系。图2示出了一个实施例中物体遮挡的示意图。
在一个实施例中,如图3所示,提供了一种地图标注的绘制方法,以该方法应用于计算机设备为例进行说明。计算机设备为图1中的终端或服务器,包括以下步骤:
步骤302,在接收到地图标注绘制任务的情况下,确定虚拟相机观测到的观测范围。
具体的,当需要对一帧电子地图帧进行渲染时,计算机设备可生成三维物体渲染任务和地图标注绘制任务。其中,三维物体渲染任务用于生成电子地图帧中的虚拟道路、虚拟建筑、虚拟交通设备等虚拟物体;地图标注绘制任务用于生成电子地图帧中的地图标注。其中,地图标注是指电子地图帧上的用以对地点信息进行标注的一个标志,地图标注具体可为文字标注,或者,图像标注,或者,图像和文字结合的标注。比如,参考图4,在电子地图中不仅可以显示虚拟建筑401、虚拟道路402,还可以针对虚拟建筑和/或虚拟道路显示地图标注403,图4示出了一个实施例中电子地图帧的示意图。
进一步地,当计算机设备接收到地图标注绘制任务的情况下,计算机设备可确定虚拟相机在当前时刻所观测到的观测范围。其中,电子地图帧可认为是虚拟相机针对一个地理范围内的地理场景进行拍摄而得到的图像帧,因此,当需要对一帧电子地图帧进行渲染时,需要确定虚拟相机观测到的观测范围。比如,虚拟相机可发射一个视椎体,该视椎体即为屏幕上可见的3D区域空间,位于视椎体范围的区域,即为虚拟相机观测到的观测范围。
步骤304,根据观测范围确定参与遮挡计算的三维地物,并将参与遮挡计算的每个三维地物的深度信息分别写入预先设置的帧缓冲区中。
具体的,当确定了与虚拟相机观测到的观测范围后,计算机设备即可生成一个帧缓冲区,并将生成的帧缓冲区与地图标注绘制任务进行绑定。其中,帧缓冲区是指用于存储计算机图形的像素数据的内存区域。帧缓冲区可被视为一个图像缓冲区,位于图像渲染管线的最后阶段。帧缓冲区包括颜色缓冲区和深度缓冲区。其中,颜色缓冲区是用于存储像素颜色值的内存区域,根据显示设备的颜色深度,每个像素的颜色值可能占用一个字节、两个字节或者更多。颜色缓冲区是用于存储像素深度值的内存区域,深度值是指从观察点到像素的距离,它决定了哪些像素应该被覆盖。
进一步地,对于虚拟相机观测到的观测范围,计算机设备可根据虚拟相机观测到的观测范围,确定需要参与遮挡计算的三维地物。其中,三维地物是指根据地面上的物体而构建的三维模型,比如,三维地物具体可为针对实际地面上的建筑而构建的三维建筑模型、针对实际地面上的树木而构建的三维树木模型、针对实际地面上的交通设备而构建的三维交通设备模型等等。比如,参考图5,三维地物可以为一个预先建模而成的三维建筑模型,该三维建筑模型具有多个顶点数据,将三维建筑模型的顶点数据输入至渲染管线后,即可基于渲染管线将该三维建筑模型绘制至一帧电子地图帧中,得到电子地图帧中显示的虚拟建筑。图5示出了一个实施例中三维地物的示意图。其中,模型中的顶点是指具有空间坐标和其他信息的点,比如,顶点是指具有空间坐标、颜色和纹理坐标的点,其中,空间坐标、颜色和纹理坐标即为顶点数据。
进一步地,当确定了需要参与遮挡计算的三维地物后,计算机设备可将需要参与遮挡计算的每一个三维地物的深度信息,均写入与地图标注绘制任务相绑定的帧缓冲区中。比如,针对位于需要参与遮挡计算的每一个三维地物,计算机设备可将所针对的三维地物的顶点数据输入至渲染管线,通过渲染管线将所针对的三维地物的深度信息写入帧缓冲区中。比如,参考图6,帧缓冲区可看成是一副图像,将需要参与遮挡计算的三维地物的深度信息写入帧缓冲区后,对该帧缓冲区进行可视化后即可得到如图6所示的深度图。图6示出了一个实施例中写入有深度信息的帧缓冲区的示意图。
在其中一个实施例中,帧缓冲区的大小与屏幕尺寸、屏幕分辨率、图片显示方式有关。比如,帧缓冲区大小=屏幕的显示宽度*屏幕的显示高度*(每像素位数/8)B。当确定了帧缓冲区的大小后,便可基于帧缓冲区的大小,来生成一个帧缓冲区,并将生成的帧缓冲区与地图标注绘制任务进行绑定,比如,可将帧缓冲区的标识与地图标注绘制任务的标识进行关联存储。
在其中一个实施例中,也可确定在历史时间段生成的帧缓冲区,并将在历史时间段生成的帧缓冲区进行重置,将重置后的帧缓冲区与地图标注绘制任务进行绑定。
在其中一个实施例中,当确定了虚拟相机观测到的观测范围时,计算机设备可根据虚拟相机观测到的观测范围,确定观测范围在世界坐标系中的坐标范围。比如,计算机设备可确定虚拟相机在世界坐标系中的位置坐标,并确定虚拟相机发射的视椎体,根据虚拟相机在世界坐标系中的位置坐标,确定视椎体在世界坐标系中的位置坐标,基于视椎体在世界坐标系中的位置坐标,确定观测范围在世界坐标系中的坐标范围。进一步地,计算机设备可根据预先设置的各三维地物的顶点数据,确定各三维地物在世界坐标系下的位置坐标,根据各三维地物在世界坐标系下的位置坐标,确定位于所确定的坐标范围内的三维地物,将位于该坐标范围内的三维地物,作为需要参与遮挡计算的三维地物。
在其中一个实施例中,可预先设置每个三维地物各自所属的观测范围,得到三维地物与所属观测范围之间的对应关系。当确定了虚拟相机观测到的观测范围时,即可基于该对应关系,确定位于虚拟相机观测到的观测范围内的三维地物。
在其中一个实施例中,当确定了虚拟相机观测到的观测范围后,计算机设备位于该观测范围内的全部三维地物,均作为需要参与避让计算的三维物体。比如,可将该地理范围内的虚拟建筑、虚拟树木、虚拟交通设备均作为需要参与避让计算的三维地物。当确定了需要参与避让计算的三维地物后,计算机设备即可获取该三维地物的顶点数据,并将顶点数据输入至渲染管线中,以使得渲染管线基于顶点数据确定得到待写入深度信息的位置(Xw,Yw),并在位置(Xw,Yw)处写入三维地物深度信息。
步骤306,根据观测范围确定参与遮挡计算的地图标注,并针对参与遮挡计算的每个地图标注,确定所针对的地图标注所对应的缩放比例。
具体的,计算机设备可确定位于虚拟相机观测到的观测范围后,可基于该观测范围来确定需要参与避让计算的地图标注。比如,计算机设备可将位于观测范围内的地图标注,作为需要参与遮挡计算的地图标注。进一步地,当确定了需要参与遮挡计算的地图标注后,计算机设备可确定需要参与遮挡计算的每一个地图标注各自对应的缩放比例。比如,针对每个地图标注,可确定所针对的地图标注显示于屏幕后,该地图标注在屏幕中占用的像素个数,根据占用的像素个数来确定所针对的地图标注对应的缩放比例。示例性地,屏幕中的第2至第4个像素用于显示地图标注A,则可确定地图标注A占用的像素数量为3个,计算机设可获取预设的占用像素个数与缩放比例之间的对应关系,根据该对应关系来确定地图标注A所对应的缩放比例。容易理解地,当占用的像素数量越多,则缩放比例越小,当占用的像素数量越少,则缩放比例越大。
又比如,计算机设备可确定所针对的地图标注与虚拟相机之间的距离,并根据所针对的地图标注与虚拟相机之间的距离,生成与所针对的地图标注相对应的缩放比例。其中,当所针对的地图标注与虚拟相机之间的距离越大时,则所针对的地图标注所对应的缩放比例就越大。示例性地,当所针对的地图标注与虚拟相机之间的距离为0.5时,则所针对的地图标注所对应的缩放比例为0.8,当所针对的地图标注与虚拟相机之间的距离为1时,则所针对地图标注所对应的缩放比例为1.5。
在其中一个实施例中,可通过一下方法确定需要参与遮挡计算的地图标注:针对预先设置的三维地物,可预先设置有地图标注。当确定了需要参与遮挡计算的三维地物后,即可获取针对需要参与遮挡计算的三维地物所设置的地图标注,将获取到的地图标注作为需要参与遮挡计算的地图标注。或者,可预先设置地图图标与所属观测范围之间的对应关系,当确定了虚拟相机观测到的观测范围时,即可基于该对应关系,确定位于虚拟相机观测到的观测范围内的地图标注。又或者,各地图标注具有预先设置的在世界坐标系中的位置坐标,当确定了虚拟相机观测到的观测范围时,计算机设备可将虚拟相机观测到的观测范围转换为世界坐标系中的一个坐标范围,从而根据各地图标注各自在世界坐标系下的位置坐标,确定位于该坐标范围内的地图标注,将位于该坐标范围内的地图坐标,作为需要参与遮挡计算的地图标注。
步骤308,生成与所针对的地图标注对应的初始几何体,并根据缩放比例对初始几何体进行缩放,得到标注几何体。
具体的,当确定了所针对的地图标注所对应的缩放比例后,即可根据所针对的地图标注所对应的缩放比例,生成一个包裹住所针对的地图标注的标注几何体。比如,参考图7,可以所针对的地图标注为中心,生成一个预设大小的立方体,再通过缩放比例对预设大小的立方体进行缩放,得到包裹住所针对的地图标注的标注几何体。图7示出了一个实施例中标注几何体的生成示意图。容易理解地,本申请对标注几何体的形状不做限制,可以是以所针对的地图标注为中心的为立方体、长方体、圆柱等等。
由于对于同一个物体,当该物体距离虚拟相机越远时,通过虚拟相机看到的该物体的尺寸就越小,当该物体距离虚拟相机越近时,则通过虚拟相机看到的该物体的尺寸就越大。而物体在不同位置处的点选概率又与通过虚拟相机看到的物体的尺寸有关,当通过虚拟物体看到该物体的尺寸越小时,则该物体的点选概率就越小。而在电子地图中,由于电子地图所展示的各地图标注的点选概率需要相同,因此,为了使得不同位置处的标注几何体的点选概率均相同,需要通过各地图标注各自对应的缩放比例,对基于各地图标注生成的各初始几何体进行缩放,这样使得缩放后得到的各标注几何体的点选概率均相等。其中,物体的点选概率是指用户通过屏幕选择该物体的概率,由于标注几何体是以地图标注为中心而生成的几何体,因此,标注几何体的点选概率,即为地图标注的点选概率。
在其中一个实施例中,可先生成初始几何体,再确定缩放比例,基于确定的缩放比例对初始几何体进行缩放,得到标注几何体。比如,可先以位于虚拟相机观测到的地理范围内的每个地图标注为中心,生成各地图标注各自的初始几何体,再根据各地图标注分别与虚拟相机之间的距离,确定各地图标注各自对应的缩放比例,之后,基于各地图标注各自对应的缩放比例,对相应的初始几何体进行缩放,得到标注几何体。也可先确定缩放比例,再生成初始几何体,通过缩放比例对生成的初始几何体进行缩放。本申请实施例在此不做限定。
步骤310,在根据标注几何体的深度信息和帧缓冲区中记载的深度信息,确定所针对的地图标注未被三维地物遮挡的情况下,将所针对的地图标注绘制至电子地图帧中。
具体的,当生成了所针对的地图标注所对应的标注几何体后,在计算机设备的GPU内部会将标注几何体从世界坐标系转为虚拟相机坐标系,再从虚拟相机坐标系转为NDC坐标系,得到标注几何体在设备坐标坐标系下的设备坐标(Normalized Device CoordinatesNDC)。标注几何体在NDC坐标系下的NDC坐标包括屏幕像素坐标和深度值,而NDC坐标中的深度值,即为上述的标注几何体的深度信息,其表征的是屏幕像素坐标所指向的屏幕像素与虚拟相机之间的距离。NDC坐标是指线性渐变坐标,是由线性渐变算法确定的一种三维坐标。
进一步地,计算机设备将标注几何体的深度信息与帧缓冲区中记载的深度信息进行比较,比如,计算机设备将标注几何体在NDC坐标系下的深度值与帧缓冲区中记载的深度值进行比较。当根据比较结果确定标注几何体的深度值小于帧缓冲区中记载的深度值时,确定所针对地图标注未被三维地物遮挡,此时,计算机设备可对所针对的地图标注进行绘制。当根据比较结果确定标注几何体的深度值大于帧缓冲区中记载的深度值时,则确定所针对的地图标注会被三维地物遮挡,此时,计算机设备则不对所针对的地图标注进行绘制。
在其中一个实施例中,可将标注几何体在设备坐标坐标系下的设备坐标进行归一化,得到归一化的NDC坐标,将归一化的NDC坐标的Z值作为深度值。
在其中一个实施例中,当确定了所针对的地图标注未被三维地物遮挡的情况下,计算机设备可对所针对的地图标注进行绘制。比如,参考图8,计算机设备可确定与虚拟相机观测到的观测范围相对应的电子地图帧,并根据所针对的地图标注在世界坐标系下的三维坐标,确定所针对的地图标注在该电子地图帧中的位置,从而在该位置处绘制所针对的地图标注801。其中,还可将需要参与遮挡计算的三维地物,均绘制至与虚拟相机观测到的观测范围相对应的电子地图帧中,如此,便可使得最终得到的电子地图帧不仅可以显示有虚拟建筑、虚拟树木等等,还可显示有未被遮挡的地图标注。图8示出了一个实施例中地图标注的绘制示意图。
在其中一个实施例中,当对三维地物进行绘制时,可采用透视投影的方式将三维地物绘制至电子地图帧中,以使得电子地图帧中显示的虚拟建筑具有立体形状。当对地图标注进行绘制时,可采用正交投影的方式将地图标注绘制至电子地图中,使得地图标注具有二维显示效果。
上述地图标注的绘制方法中,通过确定虚拟相机观测到的地理范围,可确定位于该地理范围内的三维地物,并分别将每个三维地物的深度信息绘制至帧缓冲区中。以及可确定位于该地理范围内的地图标注,并确定每个地图标注各自对应的缩放比例,如此,便可基于确定的缩放比例,生成每个地图标注各自对应的标注几何体。由于生成的标注几何体可认为是三维空间中的地图标注,因此,可将标注几何体的深度信息与帧缓冲区中的深度信息进行比对,以基于比对结果确定在三维空间中地图标注是否会被三维地物遮挡。当确定地图标注不会被三维地物遮挡时,则将该地图标注绘制于电子地图帧中,这样电子地图帧中展示的虚拟建筑和地图标注之间就具有正确的遮挡关系,从而使得电子地图更为真实。
在其中一个实施例中,将每个三维地物的深度信息分别写入预先设置的帧缓冲区中,包括:在开启深度信息写入功能、关闭颜色信息写入功能的情况下,根据每个三维地物各自的顶点数据,将每个三维地物的深度信息分别写入预先设置的帧缓冲区中,而暂停将每个三维地物的颜色信息分别写入帧缓冲区中。
具体的,当确定了需要参与避让计算的三维地物后,针对渲染管线,可开启深度信息写入功能、关闭颜色信息写入功能、且关闭颜色混合功能。其中,通过深度信息写入功能,可将物体的深度信息写入帧缓冲区中,通过颜色信息写入功能,可将物体的颜色信息写入帧缓冲区中,通过颜色混合功能,可用于将像素中记载的颜色进行混合。进一步地,当设置好渲染管线后,针对每一个需要参与避让计算的三维地物,计算机设备可获取所针对的三维地物的顶点数据,并将顶点数据输入至设置好的渲染管线中,通过设置好的渲染管线来将所针对的三维地物的深度信息写入与地图标注绘制任务相绑定的帧缓冲区中。其中,渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元。渲染管线的工作任务通常是由一个三维场景出发,最终渲染生成一张图像,而这个工作一般是由CPU和GPU共同完成的,CPU不断地将要处理的数据丢给GPU,GPU调动计算单元对这些数据进行处理,最后生成一张图像。
在其中一个实施例中,计算机设备可展示渲染管线的设置页面,用户可通过设置页面对渲染管线进行设置。比如,参考图9,计算机设备可展示如图9所示的设置页面,该设置页面中显示有深度信息写入功能开启控件901,颜色信息写入功能开启控件902和颜色混合功能开启控件903,通过深度信息写入功能开启控件、颜色信息写入功能开启控件和颜色混合功能开启控件,可对深度信息写入功能、颜色信息写入功能和颜色混合功能进行自由设置。图9示出了一个实施例中渲染管线的设置页面的示意图。
上述实施例中,通过开启深度信息写入功能,可基于深度信息写入功能将三维地物的深度信息写入帧缓冲区中,通过关闭颜色信息写入功能、以及关闭颜色混合功能,可避免将三维地物的颜色信息写入帧缓冲区中。如此,便可使得帧缓冲区仅包括三维地物的深度信息而不包括三维地物的颜色信息,进而后续可基于仅包括三维地物的深度信息而不包括三维地物的颜色信息的帧缓冲区进行遮挡计算。如此,便实现了地图标注的遮挡计算。
在其中一个实施例中,根据每个三维地物各自的顶点数据,将每个三维地物的深度信息分别写入预先设置的帧缓冲区中,包括:针对参与避让计算的每一个三维地物,将所针对的三维地物的顶点数据从世界坐标系转换至剪裁空间;将位于剪裁空间中的顶点装配成图元,并对图元进行光栅化计算,得到图元的像素坐标;根据图元的像素坐标,将图元的深度值写入帧缓冲区中。
具体的,在图像处理领域,任何物体的几何形状都是由三角形组成的,而三角形又是由顶点组成,因此,可将三维物体的顶点数据输入至GPU(图形处理 GraphicsProcessing Unit)中。针对需要进行避让计算的每一个三维物体,所针对的三维物体的顶点数据中的顶点坐标标注的是该顶点在物体坐标系下的坐标,因此,GPU可对顶点数据进行坐标变换,以将所针对的三维物体的顶点从物体坐标系转换至世界坐标系,得到各顶点在世界坐标系下的坐标。进一步地,GPU继续将位于世界坐标系下的顶点进行转换,以将各顶点从世界坐标系转换为虚拟相机坐标系,得到虚拟相机坐标系下的坐标。虚拟相机坐标系是指以虚拟相机为原点而建立的三维坐标系。虚拟相机位于虚拟相机坐标系的原点,且镜头对准Z轴方向,虚拟相机发射的视椎体可用来决定通过虚拟相机能够看到的内容,将这些内容进行渲染,即可得到一帧电子地图帧。
进一步地,GPU根据各顶点在虚拟相机坐标系下的坐标,确定位于虚拟相机的视椎体之外的顶点,并对位于视椎体之外的顶点进行剪裁,得到位于视椎体范围之内的顶点,也即,得到位于剪裁空间中的顶点。GPU对位于剪裁空间中的顶点进行装配,将位于剪裁空间中的顶点组装成图元,比如,将位于剪裁空间中的顶点组装为三角形。GPU会将剪裁空间中的图元的顶点执行齐次除法,得到归一化的设备坐标(Normalized Device CoordinatesNDC),经过齐次除法后,透视剪裁空间会变成一个X、Y、Z三个坐标都在[-1,1]区间内的立方体,而顶点在该立方体中的z轴坐标值,即为该顶点的深度值,该深度值用于记载于帧缓冲区中用以后续的深度值的比对。GPU对顶点在该立方体中的X、Y坐标进行转换,得到图元的顶点在窗口坐标系中的坐标。
进一步地,GPU对窗口坐标系中的图元进行光栅化计算,在光栅化阶段,会把图元映射为最终屏幕上相应的像素。因为屏幕是由很多个像素点组成,一个图形要展示在屏幕上,就需要知道哪些像素点需要亮起来。光栅化就是将图元转换成硬件层面上真正要展示的像素点。即,光栅化就是计算图元对应屏幕上的哪些像素点,也即,计算图元所对应的像素坐标。与地图标注绘制任务相对应的帧缓冲区可包括深度缓冲区,深度缓冲区的大小可与屏幕的尺寸匹配。比如,屏幕包括1280*720个像素时,则深度缓冲区可为用于存储1280*720个像素的空间。当确定了图元对应屏幕上的哪些像素点时,即可根据图元所对应的像素点,将图元的深度值写入深度缓冲区的对应元素位置处。比如,参考图10,当确定图元对应于屏幕中的第1行第2列处的像素,且图元的深度值为0.8时,则将深度缓冲区中的[1,2]个元素的值设置为图元的深度值。图元的深度值可为上述确定得到的图元的顶点的深度值0.8。图10示出了一个实施例中深度缓冲区的示意图。容易理解的,由于三维地物是由图元组成的,将各图元的深度值写入深度缓冲区中,也即将三维地物的深度值写入深度缓冲区中。
本实施例中,通过将三维地物的深度值写入帧缓冲区中,可基于写入的深度值确定地图标注是否被三维地物遮挡。
在其中一个实施例中,确定与所针对的地图标注相对应的缩放比例,包括:确定对三维地物进行透视投影时的投影面,并确定从虚拟相机的中心点发射的射线与投影面之间的交点;根据交点和虚拟相机在世界坐标系中的三维坐标,确定交点与虚拟相机之间的第二距离;根据地图标注和虚拟相机在世界坐标系中的三维坐标,确定地图标注与虚拟相机之间的第三距离;根据第二距离和第三距离,确定与所针对的地图标注相对应的缩放比例。
具体的,当确定了需要进行遮挡计算的地图标注后,针对需要进行遮挡计算的每一个地图标注,计算机设备均可执行以下步骤。计算机设备可确定屏幕的中心点,并计算屏幕中心点与虚拟相机之间的距离,为了描述方便,下属将屏幕中心点与虚拟相机之间的距离,称作第一距离。进一步地,计算机设备还可基于虚拟相机和所针对的地图标注在世界坐标系中的三维坐标,确定地图标注与虚拟相机之间的距离。为了描述方便,下述将所针对的地图标注与虚拟相机之间的距离,称作第二距离。计算机设备根据第一距离和第二距离,确定与所针对的地图标注相对应的缩放比例。其中,屏幕中心点是指虚拟相机正确的位置和底面的交点。比如,可确定对三维地物进行透视投影时的投影面,从虚拟相机的中心点发射的射线与投影面之间的交点,即为屏幕的中心点。
在其中一个实施例中,可确定屏幕中心点在虚拟相机坐标系中的位置坐标,通过屏幕中心点在虚拟相机坐标系中的坐标确定屏幕中心点与原点之间的距离,该距离即为上述的第一距离。
在其中一个实施例中,也可将所针对的地图标注从世界坐标系转为虚拟相机坐标系,确定位于虚拟相机坐标系中的所针对的地图标注与原点之间的距离,该距离即为上述的第二距离。
在其中一个实施例中,根据第一距离和第二距离,确定与所针对的地图标注相对应的缩放比例,包括:计算机设备将第二距离除以第一距离,得到相除结果;将相除结果作为与所针对的地图标注相对应的缩放比例。
在其中一个实施例中,计算机设备还可对第一距离进行归一化,以及将第二距离进行归一化,将归一化后的第二距离除以归一化后的第一距离,得到与所针对的地图标注相对应的缩放比例。
上述实施例中,通过将第二距离除以第一距离,使得所得到的缩放比例与地图标注与虚拟相机之间的距离成正比,也即,使得在所针对的地图标注与虚拟相机之间的距离越大时,则与所针对的地图标注相对应的缩放比例就越大,在所针对的地图标注与虚拟相机之间的距离越小时,则与所针对的地图标注相对应的缩放比例就越小。如此,便可基于缩放比例调整标注几何体的点选概率,使得各地图标注各自对应的标注几何体的点选概率相同。
在其中一个实施例中,初始几何体为初始立方体;标注几何体为标注立方体;生成与所针对的地图标注对应的初始几何体,并根据缩放比例对初始几何体进行缩放,得到标注几何体,包括:获取预设体积大小,并以地图标注在世界坐标系中的位置为中心,生成预设体积大小的初始立方体;根据所针对的地图标注所对应的缩放比例,对初始立方体进行缩放,得到与所针对的地图标注相对应的标注立方体。
具体的,初始几何体具体可为初始立方体,标注几何体具体可为标注立方体。计算机设备可确定所针对的地图标注在世界坐标系中的坐标,并以该坐标为中心生成一个预设体积大小的初始立方体。该预设体积大小可为屏幕中心点处的立方体的大小。进一步地,计算机设备可获取所针对的地图标注所对应的缩放比例,根据所针对的地图标注所对应的缩放比例,对初始立方体进行缩放,得到与所针对的地图标注相对应的标注立方体。比如,在屏幕中心处的立方体的大小为1*1*1时,则可以所针对的地图标注在世界坐标系中的坐标为中心,构建一个1*1*1大小的初始立方体。在与所针对的地图标注相对应的缩放比例为0.8时,则可通过0.8对1*1*1大小的初始立方体进行缩小,得到0.8*0.8*0.8大小的与所针对的地图标注相对应的标注立方体。
在其中一个实施例中,对于需要参与避让计算的每个地图标注,计算机设备可通过多线程同时生成每个地图标注各自对应的初始立方体,并通过各地图标注各自对应的缩放比例,对相应的初始立方体进行同步缩放。如此,便提升了标注立方体的生成效率。
上述实施例中,通过预先确定地图标注的缩放比例,可基于缩放比例快速地对初始立方体进行缩放处理,从而提升了标注立方体的生成效率。
在其中一个实施例中,上述方法还包括预设体积大小的确定步骤,预设体积大小的确定步骤包括:确定虚拟相机观测到的观测范围所对应的地理范围;确定屏幕中像素的大小,并将地理范围除以像素的大小,得到单位像素所代表的地理范围;获取预设的点选精度,根据点选精度和单位像素所代表的地理范围,确定预设体积大小。
具体的,预设体积大小是根据整个屏幕的地理范围和屏幕的像素大小确定得到的。整个屏幕的地理范围是根据虚拟相机观测到的观测范围确定得到的。由于虚拟相机决定了屏幕显示的内容,因此,在确定了虚拟相机观测到的观测范围后,计算机设备可根据观测到的观测范围,确定整个屏幕的地理范围。整个屏幕的地理范围是指,整个屏幕所展示的电子地图帧的实例地理面积。比如,当确定虚拟相机在当前视角下可以观测到的虚拟场景时,则确定整个屏幕的地理范围为观测到的虚拟场景的实际面积大小。进一步地,计算机设备确定屏幕中的像素的大小,像素的大小是指一个像素的实际尺寸大小。计算机设备将地理范围除以像素的大小,得到单位像素所代表的地理范围。计算机设备获取预设的点选精度,并根据点选和单位像素所代表的地理范围,来确定预设体积大小。比如,计算机设备可将预设的点选精度除以单位点选精度,得到点选精度系数,将点选精度系数乘以相除结果,其中,相处结果为地理范围除以像素的大小所得到的结果。
在其中一个实施例中,假设点选满足的是DP精度,1DP单位是1/160英寸的精度,预设的点选精度为3/160英寸的精度,则预设体积大小为(整个屏幕的地理范围/屏幕的像素大小)*3。
上述实施例中,由于是根据点选精度来确定预设体积大小的,使得基于该预设体积大小和缩放系数确定得到的标注几何体能够具有预设的点选概率。
在其中一个实施例中,上述方法还包括深度比较步骤,深度比较步骤包括:将标注几何体的每个顶点的深度值,分别与帧缓冲区中每个像素的深度值进行比较;对于标注几何体中的任意一个顶点,在帧缓冲区中存在与任意一个顶点相对应的目标像素的情况下,确定标注几何体所对应的地图标注被三维地物遮挡;其中,与任意一个顶点相对应的目标像素,是指深度值小于任意一个顶点的深度值的像素。
具体地,当生成与所针对的地图标注相对应的标注几何体后,计算机设备可进行深度值的比较。更具体地,计算机设备根据所针对的地图标注在世界坐标系中的位置坐标,以及标注几何体的体积大小,确定标注几何体的各顶点在世界坐标系中的位置坐标。针对标注几何体中的每一个顶点,计算机设备均将该顶点从世界坐标系转为虚拟相机坐标系,再从虚拟相机坐标系转为NDC坐标系。顶点在NDC坐标系下的NDC坐标包括屏幕像素坐标和深度值,计算机设备将该顶点的深度值与帧缓冲区中记载的每个像素的深度值分别进行比较。在帧缓冲区中存在深度值小于该顶点的深度值的目标像素的情况下,确定所针对的地图标注被三维地物遮挡。比如,帧缓冲区中记载有多个像素的深度值,当多个像素中存在深度值小于顶点的深度值的目标像素时,则确定所针对的地图标注被遮挡。
相应的,当针对标注几何体中的每一个顶点,均不存在深度值小于顶点深度值的目标像素时,则确定所针对的地图标注未被遮挡。
在其中一个实施例中,在确定了标注几何体的各顶点在世界坐标系中的位置坐标后,可将标注几何体的顶点数据输入至渲染管线,通过渲染管线中的深度测试来判断标注几何体是否被三维地物遮挡。比如,GPU可自动执行标注几何体写入帧缓冲区的过程,并在写入帧缓冲区的过程中,进行深度测试。
上述实施例中,由于预先将三维地物的深度信息写入帧缓冲区中,因此,直接将帧缓冲区中记载的深度信息与标注几何体的深度信息进行比对,即可快速确定该标注几何体是否被三维地物遮挡,也即,快速确定该标注几何体所对应的地图标注是否被三维地物遮挡,从而提升了地图标注的遮挡确定效率。
在其中一个实施例中,标注几何体具有预设颜色;上述方法还包括颜色写入步骤,颜色写入步骤包括:对于标注几何体中的每个顶点,在帧缓冲区中均不存在对应目标像素的情况下,确定标注几何体所对应的地图标注未被三维地物遮挡,并将标注几何体的颜色信息写入帧缓冲区。
具体的,在生成标注几何体的过程中,可预先给标注几何体设置一个颜色,比如,可预先设置有一个颜色池,当生成与所针对的地图标注相对应的标注几何体时,可从颜色池中随机选择一个颜色赋予该标注几何体。进一步地,当确定标注几何体未被三维地物遮挡时,确定该标注几何体通过了深度测试,则计算机设备将该标注几何体的颜色写入帧缓冲区中。比如,帧缓冲区具有颜色缓冲区,GPU可将标注几何体的颜色写入颜色缓冲区。
在其中一个实施例中,在进行深度比较之前,可开启渲染管线的深度测试功能、开启深度信息的写入功能、开启颜色信息的写入功能,以及关闭颜色混合功能。从而GPU在将标注几何体绘制至帧缓冲区的过程中,可先执行深度测试,并基于深度测试结果确定标注几何体未被三维地物遮挡时,则可将标注几何体的颜色信息写入帧缓冲区中。
在其中一个实施例中,颜色缓冲区与深度缓冲区相匹配,比如,屏幕包括1280*720个像素,深度缓冲区为用于存储1280*720个像素的空间时,则颜色缓冲区也为用于存储1280*720个像素的空间。确定了标注几何体对应屏幕上的哪些像素点时,且标注几何体通过了深度测试后,即可根据标注几何体所对应的像素点,将标注几何体的颜色写入颜色缓冲区的对应元素位置处。比如,当确定标注几何体的某个顶点对应于屏幕中的第1行第2列处的像素,且顶点的颜色为(255,255,255)时,则将深度缓冲区中的[1,2]个元素的值设置为(255,255,255)。
上述实施例中,当标注几何体通过了深度测试后,才将该标注几何体的颜色写入帧缓冲区中,使得后续可基于帧缓冲区中的颜色来确定哪些地理标注通过了未被三维地物遮挡。
在其中一个实施例中,将所针对的地图标注绘制至与电子地图帧中,包括根据所针对的地图标注在世界坐标系中的位置坐标,确定所针对的地图标注在屏幕坐标系中的二维屏幕坐标;根据二维屏幕坐标从帧缓冲区中读取颜色信息,在读取的颜色信息与所针对的地图标注所对应的标注几何体的颜色信息一致时,将所针对的地图标注绘制至电子地图帧中。
具体的,计算机设备可根据所针对的地图标注在世界坐标系中的位置坐标,确定所针对的地图标注在屏幕坐标系中的二维屏幕坐标。进一步地,计算机设备根据所针对的地图标注在屏幕坐标系中的二维屏幕坐标,确定所针对的地图标注所对应的像素。比如,计算机设备可对所针对的地图标注的NDC坐标进行归一化,将归一化后的NDC坐标中的X、Y作为二维屏幕坐标。计算机设备根据屏幕的分辨率,确定单个像素的实际尺寸,基于单个像素的实际尺寸和二维屏幕坐标,即可确定所针对的地图标注所对应的像素。当确定了所针对的地图标注所对应的像素后,计算机设备即可从帧缓冲区中的该像素处读取颜色信息。比如,当确定所针对的地图标注对应于第[2,1]个像素时,计算机设备即可从颜色换缓冲中读取出[2,1]元素位置处的值。当从帧缓冲区中的该像素处读取出颜色数值,且读取出的颜色数值,与所针对的地图标注相对应的标注立方体的颜色数值一致时,则可确定标注立方体上屏成功,标注立方体未被三维地物遮挡,从而确定所针对的标注图标未被三维地物遮挡,进而,计算机设备将所针对的地图标注绘制至电子地图帧中。
相应的,若未能够从帧缓冲区的颜色缓冲区中读取出颜色信息,则确定标注立方体未上屏成功,所针对的地图标注被三维地物遮挡,此时,计算机设备不将所针对的地图标注绘制至电子地图帧中。
在其中一个实施例中,根据地图标注在世界坐标系中的位置坐标,确定地图标注在屏幕坐标系中的二维屏幕坐标,包括:根据虚拟相机的在世界坐标系中位置和虚拟相机的朝向,对地图图标进行视图变换,以将地图标注从世界坐标系转换至虚拟相机空间;对位于虚拟相机空间中的地图标注进行投影变换,得到地图标注在屏幕坐标系中的二维屏幕坐标。
具体的,计算机设备确定虚拟相机在世界坐标系内的位置,以及确定虚拟相机的视角方向,通过视角方向确定虚拟相机的垂直向上分量(Up direction)。将虚拟相机的位置摆放在坐标原点,同时视角方向朝向-Z方向,而虚拟相机的向上方向则为Y方向。在建立好虚拟相机坐标系后,可基于世界坐标系和虚拟相机坐标系,确定世界坐标与虚拟相机坐标之间的变换矩阵,之后,将地图图标在世界坐标系下的坐标乘以变换矩阵,得到地图图标在虚拟相机坐标系下的坐标。
在进行视图变换后,就可以对虚拟相机坐标系中的地图图标进行投影变换,比如,进行正交投影变换或透视投影变换,以将地图图标从虚拟相机坐标系转换至屏幕坐标系,这样就得到了地图标注在屏幕坐标系中的二维屏幕坐标。
上述实施例中,通过确定是否能够从帧缓冲区中读取出颜色信息,能够基于读取的颜色信息确定地图标注是否被遮挡,并在确定未被遮挡后,再将地图标注绘制至电子地图帧中,从而使得电子地图帧所显示的内容具有正确的遮挡关系。
在其中一个实施例中,上述方法还包括:展示电子地图展示页面;电子地图展示页面包括电子地图帧、位于电子地图帧中的初始地图标注以及标注避让功能开启控件;响应于针对标注避让功能开启控件的触发操作,从在电子地图帧中展示初始地图图标转为展示目标地图标注;目标地图标注,是通过上述地图标注的绘制方法确定得到的未被三维地物遮挡的地图标注。
具体的,用户可触发终端启动地图应用,并通过地图应用展示电子地图展示页面,并在电子地图展示页面中显示电子地图帧、位于电子地图帧中的初始地图标注以及标注避让功能开启控件。此时的初始地图标注是未经过遮挡计算的地图标注,因此,可能被遮挡的地图标注也会被显示于电子地图帧中。当用户点击了标注避让功能开启控件后,终端响应于针对标注避让功能开启控件的触发操作,对各初始地图标注进行避让计算,得到未被三维地物遮挡的地图标注,并将未被三维地物遮挡的地图标注显示于电子地图帧中。
参考图11,在开启标注避让功能之前,电子地图帧中的被三维建筑物遮挡的地铁出入口1101(地图标注)也会显示。在开启注避让功能后,被三维建筑物遮挡的地铁出入口则不会显示于电子地图帧中。图11示出了一个实施例中地图标注的显示示意图。
本实施例中,通过显示标注避让功能开启控件,可通过标注避让功能开启控件来开启标注避让功能,从而实现了标注避让的一键触发,如此,简化标注避让的流程,提升标注避让的效率。
在其中一个具体实施例中,参考图12,提供了一个具体实施例中地图标注的绘制方法,包括:
步骤1202,计算机设备在接收到地图标注绘制任务的情况下,确定虚拟相机观测到的观测范围。
步骤1204,计算机设备根据观测范围确定参与遮挡计算的三维地物,在开启深度信息写入功能、关闭颜色信息写入功能的情况下,针对参与避让计算的每一个三维地物,将所针对的三维地物的顶点数据从世界坐标系转换至剪裁空间。
步骤1206,计算机设备将位于剪裁空间中的顶点装配成图元,并对图元进行光栅化计算,得到图元的像素坐标;根据图元的像素坐标,将图元的深度值写入预先设置的帧缓冲区。
步骤1208,计算机设备根据观测范围确定参与遮挡计算的地图标注,并针对参与遮挡计算的每个地图标注,确定对三维地物进行透视投影时的投影面,并确定从虚拟相机的中心点发射的射线与投影面之间的交点。
步骤12010,计算机设备根据交点和虚拟相机在世界坐标系中的三维坐标,确定交点与虚拟相机之间的第一距离;根据地图标注和虚拟相机在世界坐标系中的三维坐标,确定地图标注与虚拟相机之间的第二距离。
步骤1212,计算机设备将第二距离除以第一距离,得到相除结果;将相除结果作为与所针对的地图标注相对应的缩放比例。
步骤1214,计算机设备获取预设体积大小,并以地图标注在世界坐标系中的位置为中心,生成预设体积大小的初始几何体;根据所针对的地图标注所对应的缩放比例,对初始几何体进行缩放,得到与所针对的地图标注相对应的标注几何体。
步骤1216,计算机设备将标注几何体的每个顶点的深度值,分别与帧缓冲区中每个像素的深度值进行比较。
步骤1218,对于标注几何体中的任意一个顶点,在帧缓冲区中存在与任意一个顶点相对应的目标像素的情况下,计算机设备确定标注几何体所对应的地图标注被三维地物遮挡;其中,与任意一个顶点相对应的目标像素,是指深度值小于任意一个顶点的深度值的像素。
步骤1220,对于标注几何体中的每个顶点,在帧缓冲区中均不存在对应目标像素的情况下,计算机设备确定标注几何体所对应的地图标注未被三维地物遮挡,并将标注几何体的颜色信息写入帧缓冲区。
步骤1222,计算机设备根据虚拟相机的在世界坐标系中位置和虚拟相机的朝向,构建虚拟相机坐标系,并对所针对的地图标注进行视图变换,以将所针对的地图标注从世界坐标系转换至虚拟相机坐标系。
步骤1224,计算机设备对位于虚拟相机坐标系中的所针对的地图标注进行投影变换,得到所针对的地图标注在屏幕坐标系中的二维屏幕坐标。
步骤1226,计算机设备根据二维屏幕坐标从帧缓冲区中读取颜色信息,在读取的颜色信息与所针对的地图标注所对应的标注几何体的颜色信息一致时,将所针对的地图标注绘制至电子地图帧中。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种应用场景,该应用场景应用上述的地图标注的绘制方法。具体地,该地图标注的绘制方法在该应用场景的应用如下:
参考图13,图13示出了一个实施例中地图标注的绘制整体流程示意图。当电子地图应用需要展示一张电子地图帧时,可通过下述方式来进行电子地图帧的渲染:
1.对于一帧待标注的地图图像帧,首选创建一个帧缓冲区,该帧缓冲区包含颜色缓冲区和深度缓冲区,颜色缓冲区与深度缓冲区的大小一般与屏幕尺寸一致,并将该帧缓冲区与该待标注的地图图像帧进行绑定。
2.在避让开始计算时在渲染管线中打开渲染中的深度测试,打开深度信息的写入,关掉颜色缓冲的写入,关掉颜色混合。
3.收集当前要参与标注避让计算的三维地物,并获取三维地物在世界坐标系中的三维坐标,OpenGl渲染管线根据三维地物在世界坐标系中的三维坐标将三维地物绘制到帧缓冲区中,由于在渲染管线中只开启了深度信息的写入,因此,OpenGl渲染管线只会将三维地物的深度信息写入帧缓冲区中,而不会将三维地物的颜色写入帧缓冲区中。
4.收集当前要参与标注避让计算的地图标注,并获取地图标注在世界坐标系中的三维坐标。计算机设备首先计算屏幕中心点与虚拟相机之间的距离(假设为A),以及计算地图标注与虚拟相机位置之间的距离(假设为B),则该地图标注所对应的缩放比例为(B/A)。其中,屏幕中心点是指:虚拟相机正对的位置和底面的交点。
5.在OpenGl渲染管线中打开渲染中的深度测试,打开深度信息的写入,打开颜色缓冲的写入,关掉颜色混合。
6.以地图标注的三维坐标为中心生成一个初始立方体,该初始立方体的大小与屏幕中心点方块的大小一致,之后,通过确定的缩放系数对初始立方体的大小进行调整,得到以标注文字的三维坐标为中心生成的标注立方体(比如,缩放系数为B/A,屏幕中心点的方块大小为X,则目标立方体的大小为B*X/A)。其中,屏幕中心点的方块的大小,是根据整体屏幕的地理范围除以屏幕的像素大小得到的。其中,屏幕的像素大小,是指一个像素的实际尺寸大小。
7. OpenGl渲染管线在将标注立方体写入帧缓冲区的过程中,会将标注立方体的深度值与深度缓冲区中的每个像素的深度值进行比对,若深度缓冲区存在,深度值小于标注立方体的深度值的目标像素时,则确定标注立方体深度测试失败,此时不会将目标立方体的颜色写入颜色缓冲区中。若深度缓冲区不存在,深度值小于标注立方体的深度值的目标像素时,则确定标注立方体深度测试成功,此时将目标立方体的深度以及颜色写入颜色缓冲区中。
8.当对每个地图标注各自对应的标注立方体均执行了步骤7之后,则将每个地图标注在世界坐标系中的三维坐标进行转换,得到二维屏幕坐标,并根据二维屏幕坐标从颜色缓冲区中读取颜色值,若读取到了颜色值,则表明该地图标注有被遮挡,可以将该地图标注绘制在电子地图帧中。若未读取到颜色值,则表明该地图标注已被遮挡,此时不会将该地图标注绘制在电子地图帧中。
本申请还另外提供一种应用场景,该应用场景应用上述的地图标注的绘制方法。具体地,该地图标注的绘制方法在该应用场景的应用如下:
电子地图帧也可为游戏应用中展示的地图图像帧,比如,在射击类游戏中,为了便于玩家与其他玩家汇合,可展示电子地图帧,并在电子地图帧中显示玩家当前所在位置,从而玩家基于显示的电子地图帧从当前所在位置前往目的地。为了使得游戏应用中显示的电子地图帧中的内容更为真实,可通过上述方法来确定未被遮挡的地图标注,并在电子地图帧中对未被遮挡的地图标注进行绘制。
上述应用场景仅为示意性的说明,可以理解,本申请各实施例所提供的地图标注的绘制方法的应用不局限于上述场景。比如,本申请还可以适用于虚拟现实场景,在虚拟现实场景中显示的虚拟地图中进行标注的绘制。其中,虚拟现实技术,是指通过计算机技术和可穿戴设备将真实与虚拟相融合,打造一个可人机交互的虚拟环境,囊括了VR(VirtualReality,虚拟现实)、AR(Augmented Reality,增强现实)、MR(Mediated Reality,混合现实)的技术特点,为体验者带来虚拟世界与现实世界之间无缝转换的沉浸感。在本申请中,可通过可穿戴设备向用户展示虚拟的地图,并通过本申请的地图标注绘制方法,在虚拟地图上进行地图标注的绘制。
采用本申请提供的地图标注的绘制方法,可得到以下有益效果:本申请的充分利用了GPU自带的绘制、深度剔除能力,判断地图标注是否被遮挡,实现电子地图中标注元素和3D地物之间的空间遮挡关系高效判断,由于是将地图标注与3D地物的精确轮廓进行遮挡计算,使得地图中标注的显示更加自然、逼真。
兼容性方面:本申请的方案的实现原理兼容于所有GPU类型,在当前主流的GPU渲染都不会卡顿,对渲染API的支持可以低至OpenGLES2.0,可以适用于绝大部分的手机、车机等终端。
性能方面:在本申请的方案中,由于深度值和颜色值均是从Framebuffer读取的,因此遮挡计算的消耗较小。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的地图标注的绘制方法的地图标注的绘制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个地图标注的绘制装置实施例中的具体限定可以参见上文中对于地图标注的绘制方法的限定,在此不再赘述。
在一个实施例中,如图14所示,提供了一种地图标注的绘制装置1400,包括:三维地物写入模块1402、标注几何体生成模块1404和深度比对模块1406,其中:
三维地物写入模块1402,用于在接收到地图标注绘制任务的情况下,确定虚拟相机观测到的观测范围;根据所述观测范围确定参与遮挡计算的三维地物,并将参与遮挡计算的每个三维地物的深度信息分别写入预先设置的帧缓冲区中;
标注几何体生成模块1404,用于据所述观测范围确定参与遮挡计算的地图标注,并针对参与遮挡计算的每个所述地图标注,确定所针对的地图标注所对应的缩放比例;生成与所针对的地图标注对应的初始几何体,并根据所针对的地图标注所对应的缩放比例对所述初始几何体进行缩放,得到标注几何体;
深度比对模块1406,用于在根据所述标注几何体的深度信息和所述帧缓冲区中记载的深度信息,确定所针对的地图标注未被参与遮挡计算的三维地物遮挡时,将所针对的地图标注绘制至与电子地图帧中。
在其中一个实施例中,所述三维地物写入模块1402还用于在开启深度信息写入功能、关闭颜色信息写入功能的情况下,根据每个所述三维地物各自的顶点数据,将每个所述三维地物的深度信息分别写入预先设置的帧缓冲区中,而暂停将每个三维地物的颜色信息分别写入所述帧缓冲区中。
在其中一个实施例中,所述三维地物写入模块1402还用于针对参与避让计算的每一个三维地物,将所针对的三维地物的顶点数据从世界坐标系转换至剪裁空间;将位于剪裁空间中的顶点装配成图元,并对所述图元进行光栅化计算,得到所述图元的像素坐标;根据所述图元的像素坐标,将所述图元的深度值写入预先设置的帧缓冲区。
在其中一个实施例中,所述标注几何体生成模块1404还用于确定对所述三维地物进行透视投影时的投影面,并确定从所述虚拟相机的中心点发射的射线与所述投影面之间的交点;根据所述交点和所述虚拟相机在世界坐标系中的三维坐标,确定所述交点与所述虚拟相机之间的第一距离;根据所述地图标注和所述虚拟相机在世界坐标系中的三维坐标,确定所述地图标注与所述虚拟相机之间的第二距离;根据所述第一距离和所述第二距离,确定与所针对的地图标注相对应的缩放比例。
在其中一个实施例中,所述标注几何体生成模块1404还用于将所述第二距离除以所述第一距离,得到相除结果;将所述相除结果作为与所针对的地图标注相对应的缩放比例。
在其中一个实施例中,所述初始几何体为初始立方体;所述标注几何体为标注立方体;所述标注几何体生成模块1404还用于获取预设体积大小,并以所述地图标注在世界坐标系中的位置为中心,生成所述预设体积大小的初始立方体;根据所针对的地图标注所对应的缩放比例,对所述初始立方体进行缩放,得到与所针对的地图标注相对应的标注立方体。
在其中一个实施例中,所述标注几何体生成模块1404还用于确定所述虚拟相机观测到的观测范围所对应的地理范围;确定屏幕中像素的大小,并将所述地理范围除以所述像素的大小,得到单位像素所代表的地理范围;获取预设的点选精度,根据所述点选精度和所述单位像素所代表的地理范围,确定预设体积大小。
在其中一个实施例中,所述深度比对模块1406还用于将所述标注几何体的每个顶点的深度值,分别与所述帧缓冲区中每个像素的深度值进行比较;对于所述标注几何体中的任意一个顶点,在所述帧缓冲区中存在与所述任意一个顶点相对应的目标像素的情况下,确定所述标注几何体所对应的地图标注被三维地物遮挡;其中,与所述任意一个顶点相对应的目标像素,是指深度值小于所述任意一个顶点的深度值的像素。
在其中一个实施例中,所述标注几何体具有预设颜色;所述深度比对模块1406还用于对于所述标注几何体中的每个顶点,在所述帧缓冲区中均不存在对应目标像素的情况下,确定所述标注几何体所对应的地图标注未被三维地物遮挡,并将所述标注几何体的颜色信息写入所述帧缓冲区。
在其中一个实施例中,所述地图标注的绘制装置1400还包括颜色读取模块,用于根据所针对的地图标注在世界坐标系中的位置坐标,确定所针对的地图标注在屏幕坐标系中的二维屏幕坐标;根据所述二维屏幕坐标从所述帧缓冲区中读取颜色信息,在读取的颜色信息与所针对的地图标注所对应的标注几何体的颜色信息一致时,将所针对的地图标注绘制至电子地图帧中。
在其中一个实施例中,所述地图标注的绘制装置1400还包括颜色读取模块,用于根据所述虚拟相机的在世界坐标系中位置和所述虚拟相机的朝向,构建虚拟相机坐标系,并对所针对的地图标注进行视图变换,以将所针对的地图标注从世界坐标系转换至所述虚拟相机坐标系;对位于所述虚拟相机坐标系中的所针对的地图标注进行投影变换,得到所针对的地图标注在屏幕坐标系中的二维屏幕坐标。
在其中一个实施例中,所述地图标注的绘制装置1400还包括避让功能触发模块,用于展示电子地图展示页面;所述电子地图展示页面包括电子地图帧、位于所述电子地图帧中的初始地图标注以及标注避让功能开启控件;响应于针对所述标注避让功能开启控件的触发操作,从在所述电子地图帧中展示初始地图图标转为展示目标地图标注;所述目标地图标注是未被三维地物遮挡的地图标注。
上述地图标注的绘制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储地图标注的绘制数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种地图标注的绘制方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图16所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种地图标注的绘制方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图15至图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (16)

1.一种地图标注的绘制方法,其特征在于,所述方法包括:
在接收到地图标注绘制任务的情况下,确定虚拟相机观测到的观测范围;
根据所述观测范围确定参与遮挡计算的三维地物,并将参与遮挡计算的每个三维地物的深度信息分别写入预先设置的帧缓冲区中;
根据所述观测范围确定参与遮挡计算的地图标注,并针对参与遮挡计算的每个所述地图标注,确定所针对的地图标注所对应的缩放比例;
生成与所针对的地图标注对应的初始几何体,并根据所针对的地图标注所对应的缩放比例对所述初始几何体进行缩放,得到标注几何体;
在根据所述标注几何体的深度信息和所述帧缓冲区中记载的深度信息,确定所针对的地图标注未被参与遮挡计算的三维地物遮挡时,将所针对的地图标注绘制至电子地图帧中。
2.根据权利要求1所述的方法,其特征在于,所述将参与遮挡计算的每个三维地物的深度信息分别写入预先设置的帧缓冲区中,包括:
在开启深度信息写入功能、关闭颜色信息写入功能的情况下,根据参与遮挡计算的每个三维地物各自的顶点数据,将每个所述三维地物的深度信息分别写入预先设置的帧缓冲区中。
3.根据权利要求2所述的方法,其特征在于,所述根据参与遮挡计算的每个三维地物各自的顶点数据将每个所述三维地物的深度信息分别写入预先设置的帧缓冲区中,包括:
针对参与遮挡计算的每个三维地物,将所针对的三维地物的顶点数据从世界坐标系转换至剪裁空间;
将位于剪裁空间中的顶点装配成图元,并对所述图元进行光栅化计算,得到所述图元的像素坐标;
根据所述图元的像素坐标,将所述图元的深度值写入预先设置的帧缓冲区。
4.根据权利要求1所述的方法,其特征在于,所述确定所针对的地图标注所对应的缩放比例,包括:
确定对所述三维地物进行透视投影时的投影面,并确定从所述虚拟相机的中心点发射的射线与所述投影面之间的交点;
根据所述交点和所述虚拟相机在世界坐标系中的三维坐标,确定所述交点与所述虚拟相机之间的第一距离;
根据所述地图标注和所述虚拟相机在世界坐标系中的三维坐标,确定所述地图标注与所述虚拟相机之间的第二距离;
根据所述第一距离和所述第二距离,确定与所针对的地图标注相对应的缩放比例。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一距离和所述第二距离,确定与所针对的地图标注相对应的缩放比例,包括:
将所述第二距离除以所述第一距离,得到相除结果;
将所述相除结果作为与所针对的地图标注相对应的缩放比例。
6.根据权利要求1所述的方法,其特征在于,所述初始几何体为初始立方体;所述标注几何体为标注立方体;
所述生成与所针对的地图标注对应的初始几何体,并根据所述缩放比例对所述初始几何体进行缩放,得到标注几何体,包括:
获取预设体积大小,并以所述地图标注在世界坐标系中的位置为中心,生成所述预设体积大小的初始立方体;
根据所针对的地图标注所对应的缩放比例,对所述初始立方体进行缩放,得到与所针对的地图标注相对应的标注立方体。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
确定所述虚拟相机观测到的观测范围所对应的地理范围;
确定屏幕中像素的大小,并将所述地理范围除以所述像素的大小,得到单位像素所代表的地理范围;
获取预设的点选精度,根据所述点选精度和所述单位像素所代表的地理范围,确定预设体积大小。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述标注几何体的每个顶点的深度值,分别与所述帧缓冲区中每个像素的深度值进行比较;
对于所述标注几何体中的任意一个顶点,在所述帧缓冲区中存在与所述任意一个顶点相对应的目标像素的情况下,确定所述标注几何体所对应的地图标注被三维地物遮挡;其中,与所述任意一个顶点相对应的目标像素,是指深度值小于所述任意一个顶点的深度值的像素。
9.根据权利要求8所述的方法,其特征在于,所述标注几何体具有预设颜色;所述方法还包括:
对于所述标注几何体中的每个顶点,在所述帧缓冲区中均不存在对应目标像素的情况下,确定所述标注几何体所对应的地图标注未被三维地物遮挡,并将所述标注几何体的颜色信息写入所述帧缓冲区。
10.根据权利要求9所述的方法,其特征在于,所述将所针对的地图标注绘制至电子地图帧中,包括:
根据所针对的地图标注在世界坐标系中的位置坐标,确定所针对的地图标注在屏幕坐标系中的二维屏幕坐标;
根据所述二维屏幕坐标从所述帧缓冲区中读取颜色信息,在读取的颜色信息与所针对的地图标注所对应的标注几何体的颜色信息一致时,将所针对的地图标注绘制至电子地图帧中。
11.根据权利要求10所述的方法,其特征在于,所述根据所针对的地图标注在世界坐标系中的位置坐标,确定所针对的地图标注在屏幕坐标系中的二维屏幕坐标,包括:
根据所述虚拟相机的在世界坐标系中位置和所述虚拟相机的朝向,构建虚拟相机坐标系,并对所针对的地图标注进行视图变换,以将所针对的地图标注从世界坐标系转换至所述虚拟相机坐标系;
对位于所述虚拟相机坐标系中的所针对的地图标注进行投影变换,得到所针对的地图标注在屏幕坐标系中的二维屏幕坐标。
12.根据权利要求1至11任意一项所述的方法,其特征在于,所述方法还包括:
展示电子地图展示页面;所述电子地图展示页面包括电子地图帧、位于所述电子地图帧中的初始地图标注以及标注避让功能开启控件;
响应于针对所述标注避让功能开启控件的触发操作,从在所述电子地图帧中展示初始地图图标转为展示目标地图标注;所述目标地图标注,是通过上述权利要求1至11任一项方法确定得到的未被三维地物遮挡的地图标注。
13.一种地图标注的绘制装置,其特征在于,所述装置包括:
三维地物写入模块,用于在接收到地图标注绘制任务的情况下,确定虚拟相机观测到的观测范围;根据所述观测范围确定参与遮挡计算的三维地物,并将参与遮挡计算的每个三维地物的深度信息分别写入预先设置的帧缓冲区中;
标注几何体生成模块,用于据所述观测范围确定参与遮挡计算的地图标注,并针对参与遮挡计算的每个所述地图标注,确定所针对的地图标注所对应的缩放比例;生成与所针对的地图标注对应的初始几何体,并根据所针对的地图标注所对应的缩放比例对所述初始几何体进行缩放,得到标注几何体;
深度比对模块,用于在根据所述标注几何体的深度信息和所述帧缓冲区中记载的深度信息,确定所针对的地图标注未被参与遮挡计算的三维地物遮挡时,将所针对的地图标注绘制至电子地图帧中。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
16.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
CN202410247786.0A 2024-03-05 2024-03-05 地图标注的绘制方法、装置、计算机设备和存储介质 Active CN117830587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410247786.0A CN117830587B (zh) 2024-03-05 2024-03-05 地图标注的绘制方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410247786.0A CN117830587B (zh) 2024-03-05 2024-03-05 地图标注的绘制方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN117830587A true CN117830587A (zh) 2024-04-05
CN117830587B CN117830587B (zh) 2024-05-28

Family

ID=90506256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410247786.0A Active CN117830587B (zh) 2024-03-05 2024-03-05 地图标注的绘制方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN117830587B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102692229A (zh) * 2011-03-22 2012-09-26 哈曼贝克自动系统股份有限公司 数字地图中地图元素的标注
JP2013161465A (ja) * 2012-02-09 2013-08-19 Geo Technical Laboratory Co Ltd 3次元地図表示システム
CN107220372A (zh) * 2017-06-15 2017-09-29 南京大学 一种三维地图线要素注记自动放置方法
CN109726368A (zh) * 2017-10-31 2019-05-07 腾讯科技(深圳)有限公司 地图标注方法及装置
CN111552755A (zh) * 2020-04-26 2020-08-18 中科三清科技有限公司 三维地名标注的绘制方法、装置、设备及存储介质
CN113674287A (zh) * 2021-09-03 2021-11-19 阿波罗智能技术(北京)有限公司 高精地图的绘制方法、装置、设备以及存储介质
CN114708394A (zh) * 2022-03-31 2022-07-05 阿里巴巴(中国)有限公司 地图渲染方法、电子设备及计算机存储介质
CN116977539A (zh) * 2023-01-11 2023-10-31 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备、存储介质和程序产品
CN117036576A (zh) * 2023-10-09 2023-11-10 腾讯科技(深圳)有限公司 地图渲染方法、装置、电子设备及存储介质
CN117218320A (zh) * 2023-11-08 2023-12-12 济南大学 基于混合现实的空间标注方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102692229A (zh) * 2011-03-22 2012-09-26 哈曼贝克自动系统股份有限公司 数字地图中地图元素的标注
JP2013161465A (ja) * 2012-02-09 2013-08-19 Geo Technical Laboratory Co Ltd 3次元地図表示システム
CN107220372A (zh) * 2017-06-15 2017-09-29 南京大学 一种三维地图线要素注记自动放置方法
CN109726368A (zh) * 2017-10-31 2019-05-07 腾讯科技(深圳)有限公司 地图标注方法及装置
CN111552755A (zh) * 2020-04-26 2020-08-18 中科三清科技有限公司 三维地名标注的绘制方法、装置、设备及存储介质
CN113674287A (zh) * 2021-09-03 2021-11-19 阿波罗智能技术(北京)有限公司 高精地图的绘制方法、装置、设备以及存储介质
CN114708394A (zh) * 2022-03-31 2022-07-05 阿里巴巴(中国)有限公司 地图渲染方法、电子设备及计算机存储介质
CN116977539A (zh) * 2023-01-11 2023-10-31 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备、存储介质和程序产品
CN117036576A (zh) * 2023-10-09 2023-11-10 腾讯科技(深圳)有限公司 地图渲染方法、装置、电子设备及存储介质
CN117218320A (zh) * 2023-11-08 2023-12-12 济南大学 基于混合现实的空间标注方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIANGFENG SHE ET AL.: "A line-feature label placement algorithm for interactive 3D map", 《COMPUTERS AND GRAPHICS》, 15 October 2017 (2017-10-15), pages 86 - 94 *
梁祺策: "高精地图构建中交通标志牌检测与识别算法研究", 《中国优秀硕士学位论文全文数据库工程科技II辑》, 15 February 2023 (2023-02-15), pages 1 - 67 *

Also Published As

Publication number Publication date
CN117830587B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
CN106780709B (zh) 一种确定全局光照信息的方法及装置
US20230053462A1 (en) Image rendering method and apparatus, device, medium, and computer program product
US8243065B2 (en) Image presentation method and apparatus for 3D navigation and mobile device including the apparatus
TWI352936B (en) Real-time collision detection using clipping
CN104995666B (zh) 用于在真实环境中表示虚拟信息的方法
US20180122129A1 (en) Generation, transmission and rendering of virtual reality multimedia
US20130021445A1 (en) Camera Projection Meshes
US6828978B2 (en) Bucket-sorting graphical rendering apparatus and method
US20080259076A1 (en) Tile Based Graphics Rendering
US6862025B2 (en) Recursive ray casting method and apparatus
CN104781852A (zh) 用于渲染三维场景的计算机绘图方法
EP3501012B1 (en) System and method for procedurally generated object distribution in regions of a three-dimensional virtual environment
CN116051713B (zh) 渲染方法、电子设备和计算机可读存储介质
Jian et al. Augmented virtual environment: fusion of real-time video and 3D models in the digital earth system
US9401044B1 (en) Method for conformal visualization
US20030160788A1 (en) Pixel pruning and rendering apparatus and method
CN113129420B (zh) 一种基于深度缓冲加速的光线追踪渲染方法
JP2007536668A (ja) グラフィックスをレンダリングするためのグラフィックスパイプライン
CN117830587B (zh) 地图标注的绘制方法、装置、计算机设备和存储介质
CN114781140A (zh) 激光雷达点云仿真方法、装置和计算机设备
CN113786617A (zh) 应用体素数据进行射线检测的方法、系统、服务器及计算机可读存储介质
Scheibel et al. Attributed vertex clouds
CN117557711B (zh) 可视域的确定方法、装置、计算机设备、存储介质
CN117392358B (zh) 碰撞检测方法、装置、计算机设备和存储介质
CN115631320B (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