CN118012316A - 用于地图交互的方法和装置 - Google Patents
用于地图交互的方法和装置 Download PDFInfo
- Publication number
- CN118012316A CN118012316A CN202211391981.8A CN202211391981A CN118012316A CN 118012316 A CN118012316 A CN 118012316A CN 202211391981 A CN202211391981 A CN 202211391981A CN 118012316 A CN118012316 A CN 118012316A
- Authority
- CN
- China
- Prior art keywords
- map
- color index
- target
- elements
- color
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000003993 interaction Effects 0.000 title claims abstract description 27
- 238000003860 storage Methods 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 24
- 238000009877 rendering Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 241000361919 Metaphire sieboldi Species 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 210000004907 gland Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
根据本公开的实施例,提供了用于地图交互的方法、装置、电子设备、计算机存储介质和计算机程序产品。在此描述的方法包括:呈现地图界面,该地图界面用于绘制三维地图中的一组地图元素;响应于针对地图界面中目标位置的选择操作,基于与所绘制的三维地图对应的离屏缓冲区,确定与该目标位置对应的目标颜色索引,该离屏缓冲区用于存储与一组地图元素对应的一组颜色索引;以及基于该目标颜色索引,确定该三维地图中被选择的目标地图元素。基于以上的方式,本公开的实施例能够避免了复杂逻辑运算,并且能够以更短的时间完成地图交互的需求。
Description
技术领域
本公开的示例实施例总体涉及计算机领域,特别地涉及用于地图交互的方法、装置、设备、计算机可读存储介质和计算机程序产品。
背景技术
三维地图已经在日常生活中被广泛地使用。交互能力是三维地图所具备的基础能力。例如,如果用户点击地图上的兴趣点(Point of Interest,POI),则会跳转到该兴趣点的详情页面。在多线路规划的情况下,用户可以点击地图上呈现的某一条线路以进行选择。响应于该选择,可以切换到该规划路线。在地理大数据可视化中,渲染大量的点、线、面,需要实时与这些海量元素进行交互。解决这类需求关键问题在于标识屏幕上某一位置所对应渲染对象,即拾取问题。
发明内容
在本公开的第一方面,提供了一种用于地图交互的方法。该方法包括:呈现地图界面,该地图界面用于绘制三维地图中的一组地图元素;响应于针对地图界面中目标位置的选择操作,基于与所绘制的三维地图对应的离屏缓冲区,确定与该目标位置对应的目标颜色索引,该离屏缓冲区用于存储与一组地图元素对应的一组颜色索引;以及基于该目标颜色索引,确定该三维地图中被选择的目标地图元素。基于以上的方式,本公开的实施例能够避免了复杂逻辑运算,并且能够以更短的时间完成地图交互的需求。
在本公开的第二方面,提供了一种用于地图交互的装置。该装置包括:呈现模块,被配置为:呈现地图界面,该地图界面用于绘制三维地图中的一组地图元素;确定模块,被配置为:响应于针对地图界面中目标位置的选择操作,基于与所绘制的三维地图对应的离屏缓冲区,确定与该目标位置对应的目标颜色索引,该离屏缓冲区用于存储与一组地图元素对应的一组颜色索引;以及基于该目标颜色索引,确定该三维地图中被选择的目标地图元素。基于以上的方式,本公开的实施例能够避免了复杂逻辑运算,并且能够以更短的时间完成地图交互的需求。
在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。指令在由至少一个处理单元执行时使设备执行第一方面的方法。
在本公开的第四方面,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序可由处理器执行以实现第一方面的方法。
在本公开的第五方面,提供了一种计算机程序产品。该计算机程序产品包括计算机可执行指令,计算机可执行指令在被处理器执行时实现第一方面的方法。
应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1A和图1B示出了根据传统技术的地图显示界面;
图2示出了本公开的实施例能够在其中实现的示例环境的示意图;
图3示出了根据本公开实施例的地图交互过程的示意图;
图4示出了根据本公开的一些实施例的用于地图交互的过程的流程图;
图5示出了根据本公开的一些实施例的用于地图交互的装置的框图;以及
图6示出了能够实施本公开的多个实施例的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
需要注意的是,本文中所提供的任何节/子节的标题并不是限制性的。本文通篇描述了各种实施例,并且任何类型的实施例都可以包括在任何节/子节下。此外,在任一节/子节中描述的实施例可以以任何方式与同一节/子节和/或不同节/子节中描述的任何其他实施例相结合。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其他明确的和隐含的定义。术语“第一”、“第二”等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
本公开的实施例中可能涉及用户的数据、数据的获取和/或使用等。这些方面均遵循相应的法律法规及相关规定。在本公开的实施例中,所有数据的采集、获取、处理、加工、转发、使用等,都是在用户知晓并且确认的前提下进行的。相应地,在实现本公开的各实施例时,均应根据相关法律法规通过适当的方式,将可能所涉及的数据或信息的类型、使用范围、使用场景等告知用户并获得用户的授权。具体的告知和/或授权方式可以根据实际情况和应用场景而变化,本公开的范围在此方面不受限制。
本公开中使用的术语“地图元素”可以指代地图中可以交互的任意对象。例如,地图元素可以包括但不限于建筑物、道路、路牌、交通灯等等。本文中使用的术语“离屏缓冲区”可以指代构建的具有合适大小的像素空间。例如,离屏缓冲区的大小可以基于当前显示界面来确定。本文中使用的术语“阿尔法通道(Alpha Channel)”可以指代一张图片的透明和半透明度,其为记录透明度信息的图层。
与地图的良好交互能够极大提升用户使用地图的效率和体验。如前文所简要提及的,拾取问题是地图交互中的重要问题。拾取问题由于渲染对象存在透明边缘、复杂的压盖关系、动画效果等使得其使用传统手段难以解决。
在某些技术中,解决交互拾取问题上所采取的方案为相交检测算法,即计算屏幕位置是否与渲染元素相交。这种方法可看作从屏幕向其所在世界空间发射一条射线,通过计算射线是否穿过世界中某一个渲染对象以得到其是否被拾取。然而,这种方法存在许多明显的弊端。首先,该方法难以处理大量的渲染元素。例如,采用遍历的方式计算射线与每个点是否相交将十分耗费中央处理器单元(Central Processing Unit,CPU)资源。此外,为了避免遍历,常常需要针对每一类特定的渲染对象设计定制化的索引数据结构(诸如,如四叉树、八叉树、层次包围体(Bounding Volume Hierarchy,BVH)、R树(R-Tree)等),来剔除大部分不可能拾取到的渲染对象,从而降低计算能力有限的CPU开销。然而,这对开发来说代价较高。更近一步,如果要求这些渲染对象具备动态效果,即渲染元素可以动态的添加、删除、每个元素都具有自己的动画,如缩放、旋转、平移甚至更复杂的动画效果(如楼体、蚯蚓线的生长效果),会对设计索引数据结构的设计提出更高的要求,某些情况下甚至无法实现。
此外,相交检测方法难以与屏幕做到完美对应。例如,在使用相交检测方法计算是否拾取到POI 101时,为了简化运算通常将其包络线简化为如图1A所示的矩形框102。然而,实际POI具有非常复杂的透明边缘,在屏幕上实际对应的包络线更为复杂,如图1B所示的包络线103,这也导致在相交检测方法中使用真实包络线的不可行性。
有鉴于此,本公开的实施例提出了一种用于地图交互的方案。根据本公开的各种实施例,地图界面被呈现。该地图界面用于绘制三维地图中的一组地图元素。响应于针对地图界面中目标位置的选择操作,与该目标位置对应的目标颜色索引基于与所绘制的三维地图对应的离屏缓冲区而确定。在此情况下,该离屏缓冲区用于存储与一组地图元素对应的一组颜色索引。该三维地图中被选择的目标地图元素基于该目标颜色索引而确定。
可以看出,本公开的实施例基于颜色索引渲染的方案来解决三维地图中的拾取需求。换言之,本公开的实施例利用图形处理器的高效并行运算能力,将拾取问题转化为颜色渲染问题,从而避免了CPU上进行复杂逻辑运算。例如,最多消耗实际一帧的渲染时间即可完成任意复杂的动态拾取需求。同时由于是直接在屏幕空间将渲染元素映射成不同的颜色索引,因此屏幕上某一位置是什么颜色索引就对应什么样的渲染元素,可做到拾取与屏幕显示的完全一致。
以下将参考附图来详细描述该方案的各种示例实现。
示例环境
首先参见图2,其示意性其中可以实施根据本公开的实施例的示例环境200的示意图。
如图2中所示,环境200可以包括云端设备210和终端设备220。在一些实施例中,云端设备210可以是用于提供三维地图/导航服务的服务器,终端设备220可以是用于运行三维地图/导航应用的适当电子设备。
在图2的示例中,终端设备220例如可以是车载设备,其例如可以通过车载导航应用来向用户提供三维地图/导航界面230。示例性地,车载设备可以通过车载显示设备来呈现三维地图/导航界面230,这样的车载显示设备可以包括中控屏幕、抬头显示设备HUD、电子后视镜等。
备选地,终端设备220也可以是车辆中的司机或乘客所使用的适当电子设备,这样的电子设备例如可以包括:智能手机、平板电脑、笔记本电脑、可穿戴设备等。这样的终端设备220可以基于所运行的地图应用来向用户提供三维地图/导航界面230。
应当理解,仅出于示例性的目的描述环境200的结构和功能,而不暗示对于本公开的范围的任何限制。
地图交互过程的示例
图3示出了根据本公开的实施例地图交互过程300的示意图。图3中所示的地图界面310可以为图2中所示的三维地图/导航界面230的示例。
地图界面310可以被呈现。例如,地图界面310可以通过终端设备220被显示。如图3所示,地图界面310可以用于绘制三维地图中的一组地图元素。仅作为示例,地图元素可以包括建筑物3101、道路3102、以及建筑物3103。可以理解,地图元素可以包括任意合适的可交互对象。图3还示出了与所绘制的三维地图对应的离屏缓冲区330。离屏缓冲区330可以用于存储与该组地图元素对应的一组颜色索引。仅作为示例,离屏缓冲区330可以存储颜色索引3301、颜色索引3302以及颜色索引3303。如图3所示,颜色索引3301与建筑物3101对应,颜色索引3302与道路3102对应,以及颜色索引3303与建筑物3103对应。在某些实施例中,用户可以在绘制三维地图上选择(例如,点击)目标位置320。
在示例实施例中,在三维地图的绘制期间,图形处理器可以被用于确定与该组地图元素对应的一组颜色索引。每个地图元素对应于唯一的颜色索引。在此情况下,所绘制的三维地图对应的离屏缓冲区(例如,离屏缓冲区330)可以基于上述一组颜色索引被生成。
在某些实施例中,可以将所有正常渲染时的图形处理单元(Graphic ProcessingUnit,GPU)着色器注入特定代码,使得GPU能够输出渲染对象(即,地图元素)的颜色索引。通过向着色器注入特定的代码可以捕获着色器的颜色输出。可以基于着色器的输出颜色值来确定颜色索引的输出。在某些实施例中,可以确定着色器的关键位点。例如,在某些实施例中,可以确定以下中的一项或多项:变量声明区、主函数开始时、或主函数结束时。仅作为示例,可以采用正则表达式可确定关键位点的定位。
在某些实施例中,可以基于目标地图元素的绘制顺序来确定与该组地图元素中的各个地图元素相关联的颜色索引参数。颜色索引参数可以指示相对于基础颜色索引的偏移量。在此情况下,可以基于颜色索引参数和基础颜色索引来确定与各个地图元素对应的颜色索引。
可以利用颜色索引着色器将颜色索引绘制到离屏缓冲区上。如图3所示,可以将颜色索引3301、颜色索引3302以及颜色索引3303绘制到离屏缓冲区330上。例如,在某些实施例中,可以利用与各地图元素对应的顶点着色器维护与各地图元素相关联的颜色索引参数和基础颜色索引。仅作为示例,可以向顶点着色器添加如下信息:在变量声明区,声明颜色索引顶点属性偏移量(offset)以及颜色索引基础(base)常量。作为示例,如上所述,偏移量为顶点属性,在创建顶点缓冲区时,可以将偏移量初始化成0~N的值(N表示这个缓冲区中的元素个数,也是最后渲染出颜色索引的个数),后续不再修改。例如,如果渲染10个圆形,则圆形0的所有顶点的偏移量值为0,圆形1的所有顶点的偏移量值为1,以此类推。每个圆最终的渲染出来的颜色最终为基础常量+偏移量,因此只需要控制基础常量,就可以将这10个圆画在不同范围的颜色区间上。基础常量可以通过颜色分配器申请。例如,如果渲染10个圆形,则向分配器发出10个颜色索引的申请,颜色分配器返回10个连续的颜色索引的基础常量。作为示例,如果申请到的颜色索引是100~109,则会返回100作为基础常量,从而渲染出10个全局唯一的颜色。偏移量和颜色索引基础常量可以为红绿蓝阿尔法(Red Green BlueAlpha,RGBA)数据,例如,32位的RGBA数据。偏移量和基础常量可以被转换为矢量4(vect4)的表示式。因此,颜色索引为偏移量和颜色索引基础常量之和,即,Offset+Base。在某些实施例中,偏移量可以被初始化为若干个数据,用于标识该顶点属于顶点缓存对象(VertexBuffer Object,VBO)中的第几个渲染元素。以此方式,可以避免修改VBO的。此外,仅需修改颜色索引基础常量即可控制颜色索引。
在某些实施例中,可以确定一组地图元素中的地图元素中的像素是否为非透明像素。如果该像素为非透明像素,则可以利用与该地图元素相关联的像素着色器来在离屏缓冲区中与该像素对应的像素处存储与该地图元素对应的颜色索引。仅作为示例,在某些实施例中,像素着色器可以接收顶点着色器传入的颜色索引。为了输出颜色索引,可以对输出颜色做进一步处理。即,可以确定一组地图元素中的地图元素中的像素是否为非透明像素。例如,可以确定输出颜色的alpha通道是否为0。如果alpha通道为0,则说明该像素为透明像素。在此情况下,可以丢弃该像素。如果alpha通道不为0,则可以将输出颜色改为颜色索引。以此方式,能够很好的处理前述由于透明边缘产生的复杂包络线的问题,而且能够避免着色器编译优化可能面临的很多问题。
在示例实施例中,可以通过如下方式来确定与各地图元素对应的颜色索引:基于该组地图元素的数目,确定待分配的一组颜色索引的索引区间。在此情况下,可以基于与各地图元素相关联的颜色索引参数和基础颜色索引而从索引区间中确定与各地图元素对应的颜色索引。在某些实施例中,可以利用支持颜色索引申请和分配机制的颜色索引分配器(Dispatcher)。该分配器内部维护了一个有序集合,集合的元素为互相不重叠的可用颜色索引区间。以此方式,可以实现灵活的颜色索引的申请和分配机制。
仅作为示例,当需要渲染N个渲染元素为颜色索引时,需要向分配器申请包含N个颜色索引的区间。分配器可以确定一个可用区间大小不小于N的区间。在此情况下,该区间可以被划出大小为N的区间出来,以供颜色索引渲染使用。如上所述,偏移量和基础常量为在CPU端为32位无符号整型。由于渲染应用程序接口(Application ProgrammingInterface,API)的限制,在着色过程中,偏移量和基础常量需要转成vec4的RGBA浮点向量。每个分量的范围为0~1。因此内部相加的运算可能产生一定的问题。例如当Base=200,Offset=100时,内部运算过程如下表1。
表1
可以看出,上述所得结果在输出颜色时将被处理为(0,0,0,1),因此最终获得的颜色索引将为255,而不是期望的300。产生异常的原因主要在于vec4相加分量超过1,产生了进位。因此,为了适应内部这种运算特性,分配器的分配具备如下限制。例如,如果申请N个颜色索引,则n满足2n-1<size<2n。在此情况下,分配的区间(开始值(begin),结束值(end))可以满足:begin mod 2n=0以及end=begin+2n-1。
在某些实施例中,为了不干扰正常渲染结果,在渲染前绑定一个离屏缓冲区。在此情况下,为了保持正常渲染的渲染顺序,可以将渲染的混合模式都设置为关闭,并且将着色器替换为前述注入代码后的着色器。关闭混合可以指着色器输出的颜色值不和离屏缓冲区中的已有值进行混合,要么覆盖离屏缓冲区中的值,要么不写入离屏缓冲区。在某些实施例中,可以开启窗口裁剪,将绘制限制在点击的位置。窗口裁剪是指仅在缓冲区上用户点击的位置进行颜色索引的渲染。例如,离屏缓冲区包括与该组地图元素的一个或多个地图元素对应的颜色索引。该目标位置包括一个或多个地图元素。仅作为示例,如图3所示,如果目标位置320包括地图元素310,则离屏缓冲区330可以仅包括颜色索引3301。以此方式,可以跳过大部分像素着色器阶段,对性能有很大的提升。
响应于针对地图界面中目标位置的选择操作,基于与所绘制的三维地图对应的离屏缓冲区,与目标位置对应的目标颜色索引被确定。例如,参考图3,如果目标位置320被选择,则基于离屏缓冲区330,目标颜色索引3301可以被确定。在示例实施例中,在颜色索引绘制结束后,可以读取离屏缓冲区中目标位置的像素数据,即,获取到了渲染元素颜色索引。在此情况下,可以在所有已分配的颜色索引区间中去查找该颜色索引所对应的渲染元素。
基于目标颜色索引,三维地图中被选择的目标地图元素被确定。例如,在某些实施例中,被选择的目标地图元素可以基于一组地图元素与一组颜色索引之间的对应性以及基于所述目标颜色索引而被确定。例如,如上所述,颜色索引3301与建筑物3101对应,颜色索引3302与道路3102对应,以及颜色索引3303与建筑物3103对应。如果目标颜色索引为颜色索引3301,则可以确定被选择的目标地图元素为建筑物3101。
在某些实施例中,可以确定目标地图元素的大小是否小于阈值大小。还可以确定在三维地图上标位置与目标地图元素之间的距离是否小于阈值距离。在此情况下,如果上述大小小于阈值大小并且上述距离小于所述阈值具体,则可以基于目标颜色索引来确定被选择的目标地图元素。例如,如果存在“线”这类很细的元素,通过点击可能很难拾取该元素。在某些实施例中,对于这类元素可以通过读取点击位置一定范围内的像素来处理点击,使得线的拾取范围被扩展若干像素,从而使其跟容易被拾取。换言之,可以容许目标位置与目标地图元素之间的位置偏差。如果目标地图元素过小并且该目标元素附近的像素被选择,则可以确定用户想点击/拾取该目标元素。作为示例,当屏幕上有一条很细的线之类的元素时,用户是很难通过手指精准选中的,这类需求可以扩展像素。在扩展像素后,如果颜色索引不是全部相同,会优先选择最近的属于需要扩展颜色的像素。如果没有这种像素,则再选择当前点击位置的像素。
在示例实施例中,可以触发拾取选中的回调逻辑,例如,触发选中后的回调逻辑。在某些实施例中,如果获得有效的渲染元素,则会通过回调接口通知上层业务开发者,方便他们对这些信息作进一步处理。如果没有有效的渲染元素时,也会触发取消选中之类的事件。
在某些实施例中,可以在地图界面中呈现关于目标地图元素被选择的指示。备选地,或附加地,可以在地图界面中呈现与目标地图元素相关联的至少一个交互选项。
根据参考图3描述的本公开实施例,提出了一种使用颜色索引渲染解决拾取问题的方法。本公开的实施例能够利用GPU的高效并行运算能力,解决三维地图开发面临的大量棘手的交互需求。
示例过程
图4示出了根据本公开的一些实施例的用于地图交互的过程400的流程图。过程400可以被实现在终端设备220处。下面参考图2描述过程400。
在框410,终端设备220呈现地图界面。该地图界面用于绘制三维地图中的一组地图元素。在某些实施例中,在三维地图的绘制期间,终端设备220可以利用图形处理器确定与该组地图元素对应的一组颜色索引。每个地图元素对应于唯一的颜色索引。在此情况下,基于该组颜色索引,终端设备220可以生成与所绘制的所述三维地图对应的所述离屏缓冲区。
在某些实施例中,终端设备220可以通过如下方式来利用图形处理器确定与该组地图元素对应的该组颜色索引:基于目标地图元素的绘制顺序,确定与该组地图元素中各地图元素相关联的颜色索引参数。颜色索引参数指示相对于基础颜色索引的偏移量;以及基于颜色索引参数和基础颜色索引,确定与各地图元素对应的颜色索引。
在某些实施例中,终端设备220可以利用与各地图元素对应的顶点着色器维护与各地图元素相关联的颜色索引参数和基础颜色索引。
在某些实施例中,终端设备220可以通过如下方式来基于颜色索引参数和基础颜色索引确定与各地图元素对应的颜色索引包括:基于该组地图元素的数目,确定待分配的一组颜色索引的索引区间;以及基于与各地图元素相关联的颜色索引参数和基础颜色索引,从所述索引区间中确定与所述各地图元素对应的颜色索引。
在某些实施例中,终端设备220可以响应于该组地图元素中第一地图元素中的第一像素为非透明像素,利用与第一地图元素相关联的像素着色器,在离屏缓冲区中与第一像素对应的像素处存储与第一地图元素对应的第一颜色索引。
在框420,终端设备220响应于针对地图界面中目标位置的选择操作并且基于与所绘制的三维地图对应的离屏缓冲区来确定与目标位置对应的目标颜色索引。该离屏缓冲区用于存储与一组地图元素对应的一组颜色索引。
在框430,终端设备220基于该目标颜色索引来确定三维地图中被选择的目标地图元素。在某些实施例中,离屏缓冲区包括与该组地图元素的一个或多个地图元素对应的颜色索引。目标位置包括一个或多个地图元素。
在某些实施例中,终端设备220可以通过如下方式来基于目标颜色索引确定三维地图中被选择的目标地图元素:基于该组地图元素与该组颜色索引之间的对应性,基于目标颜色索引,从该组地图元素中确定被选择的目标地图元素。
在某些实施例中,终端设备220可以通过如下方式来基于目标颜色索引确定三维地图中被选择的目标地图元素:确定被选择的目标地图元素的大小是否小于阈值大小;确定在三维地图上目标位置与目标地图元素之间的距离是否小于阈值距离;以及响应于大小小于阈值大小并且距离小于阈值具体,基于目标颜色索引,确定被选择的目标地图元素。
在某些实施例中,终端设备220可以在地图界面中呈现关于目标地图元素被选择的指示。在某些实施例中,终端设备220可以在地图界面中呈现与目标地图元素相关联的至少一个交互选项。
示例装置和设备
图5示出了根据本公开的某些实施例的用于地图交互的装置500的示意性结构框图。装置500可以被实现为或者被包括在终端设备220中。装置500中的各个模块/组件可以由硬件、软件、固件或者它们的任意组合来实现。
如图所示,装置500包括呈现模块510,被配置为:呈现地图界面,该地图界面用于绘制三维地图中的一组地图元素。装置500还包括确定模块520,被配置为:响应于针对地图界面中目标位置的选择操作,基于与所绘制的三维地图对应的离屏缓冲区,确定与该目标位置对应的目标颜色索引,该离屏缓冲区用于存储与一组地图元素对应的一组颜色索引;以及基于该目标颜色索引,确定该三维地图中被选择的目标地图元素。
在一些实施例中,确定模块520还被配置为:在三维地图的绘制期间,利用图形处理器确定与该组地图元素对应的一组颜色索引。每个地图元素对应于唯一的颜色索引。在此情况下,确定模块520还被配置为:基于该组颜色索引,生成与所绘制的所述三维地图对应的所述离屏缓冲区。
在某些实施例中,确定模块520还被配置为:基于目标地图元素的绘制顺序,确定与该组地图元素中各地图元素相关联的颜色索引参数。颜色索引参数指示相对于基础颜色索引的偏移量;以及基于颜色索引参数和基础颜色索引,确定与各地图元素对应的颜色索引。
在某些实施例中,确定模块520还被配置为:利用与各地图元素对应的顶点着色器维护与各地图元素相关联的颜色索引参数和基础颜色索引。
在某些实施例中,确定模块520还被配置为:基于该组地图元素的数目,确定待分配的一组颜色索引的索引区间;以及基于与各地图元素相关联的颜色索引参数和基础颜色索引,从所述索引区间中确定与所述各地图元素对应的颜色索引。
在某些实施例中,确定模块520还被配置为:响应于该组地图元素中第一地图元素中的第一像素为非透明像素,利用与第一地图元素相关联的像素着色器,在离屏缓冲区中与第一像素对应的像素处存储与第一地图元素对应的第一颜色索引。
在某些实施例中,确定模块520还被配置为:在地图界面中呈现关于目标地图元素被选择的指示。在某些实施例中,确定模块520还被配置为:在地图界面中呈现与目标地图元素相关联的至少一个交互选项。
装置500中所包括的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一些实施例中,一个或多个单元可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置500中的部分或者全部单元可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD),等等。
图6示出了示出了其中可以实施本公开的一个或多个实施例的计算设备600的框图。应当理解,图6所示出的计算设备600仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。图6所示出的计算设备600可以用于实现图2的终端设备220。
如图6所示,计算设备600是通用计算设备的形式。计算设备600的组件可以包括但不限于一个或多个处理器或处理单元610、存储器620、存储设备630、一个或多个通信单元640、一个或多个输入设备650以及一个或多个输出设备660。处理单元610可以是实际或虚拟处理器并且能够根据存储器620中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备600的并行处理能力。
计算设备600通常包括多个计算机存储介质。这样的介质可以是计算设备600可访问的任何可以获取的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器620可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备630可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备600内被访问。
计算设备600可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图6中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器620可以包括计算机程序产品625,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
通信单元640实现通过通信介质与其他计算设备进行通信。附加地,计算设备600的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备600可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
输入设备650可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备660可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备600还可以根据需要通过通信单元640与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备600交互的设备进行通信,或者与使得计算设备600与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
Claims (14)
1.一种用于地图交互的方法,包括:
呈现地图界面,所述地图界面用于绘制三维地图中的一组地图元素;
响应于针对地图界面中目标位置的选择操作,基于与所绘制的所述三维地图对应的离屏缓冲区,确定与所述目标位置对应的目标颜色索引,所述离屏缓冲区用于存储与所述一组地图元素对应的一组颜色索引;以及
基于所述目标颜色索引,确定所述三维地图中被选择的目标地图元素。
2.根据权利要求1所述的方法,还包括:
在所述三维地图的绘制期间,利用图形处理器确定与所述一组地图元素对应的所述一组颜色索引,其中每个地图元素对应于唯一的颜色索引;以及
基于所述一组颜色索引,生成与所绘制的所述三维地图对应的所述离屏缓冲区。
3.根据权利要求2所述的方法,其中利用图形处理器确定与所述一组地图元素对应的所述一组颜色索引包括:
基于所述目标地图元素的绘制顺序,确定与所述一组地图元素中各地图元素相关联的颜色索引参数,所述颜色索引参数指示相对于基础颜色索引的偏移量;以及
基于所述颜色索引参数和所述基础颜色索引,确定与所述各地图元素对应的颜色索引。
4.根据权利要求3所述的方法,还包括:
利用与所述各地图元素对应的顶点着色器维护与所述各地图元素相关联的所述颜色索引参数和所述基础颜色索引。
5.根据权利要求3所述的方法,其中基于所述颜色索引参数和所述基础颜色索引确定与所述各地图元素对应的颜色索引包括:
基于所述一组地图元素的数目,确定待分配的一组颜色索引的索引区间;以及
基于与所述各地图元素相关联的所述颜色索引参数和所述基础颜色索引,从所述索引区间中确定与所述各地图元素对应的颜色索引。
6.根据权利要求2所述的方法,还包括:
响应于所述一组地图元素中第一地图元素中的第一像素为非透明像素,利用与所述第一地图元素相关联的像素着色器,在所述离屏缓冲区中与所述第一像素对应的像素处存储与所述第一地图元素对应的第一颜色索引。
7.根据权利要求1所述的方法,其中所述离屏缓冲区包括与所述一组地图元素的一个或多个地图元素对应的颜色索引,所述目标位置包括所述一个或多个地图元素。
8.根据权利要求1所述的方法,其中基于所述目标颜色索引确定所述三维地图中被选择的目标地图元素包括:
基于所述一组地图元素与所述一组颜色索引之间的对应性,基于所述目标颜色索引,从所述一组地图元素中确定被选择的所述目标地图元素。
9.根据权利要求1所述的方法,其中基于所述目标颜色索引确定所述三维地图中被选择的目标地图元素包括:
确定被选择的所述目标地图元素的大小是否小于阈值大小;
确定在所述三维地图上所述目标位置与所述目标地图元素之间的距离是否小于阈值距离;以及
响应于所述大小小于所述阈值大小并且所述距离小于所述阈值具体,基于所述目标颜色索引,确定被选择的所述目标地图元素。
10.根据权利要求1所述的方法,还包括:
在所述地图界面中呈现关于所述目标地图元素被选择的指示;和/或
在所述地图界面中呈现与所述目标地图元素相关联的至少一个交互选项。
11.一种用于地图交互的装置,包括:
呈现模块,被配置为:
呈现地图界面,所述地图界面用于绘制三维地图中的一组地图元素;
确定模块,被配置为:
响应于针对地图界面中目标位置的选择操作,基于与所绘制的所述三维地图对应的离屏缓冲区,确定与所述目标位置对应的目标颜色索引,所述离屏缓冲区用于存储与所述一组地图元素对应的一组颜色索引;以及
基于所述目标颜色索引,确定所述三维地图中被选择的目标地图元素。
12.一种电子设备,包括:
至少一个处理单元;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令在由所述至少一个处理单元执行时使所述电子设备执行根据权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可由处理器执行以实现根据权利要求1至10中任一项所述的方法。
14.一种计算机程序产品,包括计算机可执行指令,其中所述计算机可执行指令在被处理器执行时实现根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211391981.8A CN118012316A (zh) | 2022-11-08 | 2022-11-08 | 用于地图交互的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211391981.8A CN118012316A (zh) | 2022-11-08 | 2022-11-08 | 用于地图交互的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118012316A true CN118012316A (zh) | 2024-05-10 |
Family
ID=90946830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211391981.8A Pending CN118012316A (zh) | 2022-11-08 | 2022-11-08 | 用于地图交互的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012316A (zh) |
-
2022
- 2022-11-08 CN CN202211391981.8A patent/CN118012316A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8325177B2 (en) | Leveraging graphics processors to optimize rendering 2-D objects | |
US9183664B2 (en) | Tiled forward shading with improved depth filtering | |
TWI281639B (en) | Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium | |
CN105023233B (zh) | 图形处理系统及其操作方法、计算机存储介质 | |
US7889205B1 (en) | Frame buffer based transparency group computation on a GPU without context switching | |
JP5336067B2 (ja) | グラフィックスを処理する方法および装置 | |
US10055883B2 (en) | Frustum tests for sub-pixel shadows | |
US20130127858A1 (en) | Interception of Graphics API Calls for Optimization of Rendering | |
US20140063030A1 (en) | Systems and methods of partial frame buffer updating | |
KR20190005766A (ko) | 그래픽 처리 | |
CN106575442A (zh) | 使用通过自适应着色的纹理查找的带宽缩减 | |
US9235925B2 (en) | Virtual surface rendering | |
US10432914B2 (en) | Graphics processing systems and graphics processors | |
KR20210066727A (ko) | 그래픽 처리 시스템 | |
CN115908102A (zh) | 图形处理方法及系统 | |
US20210343066A1 (en) | Residency map descriptors | |
CN110084738B (zh) | 在扩展的图形处理管线中表示和处理几何形状的技术 | |
CN111091620B (zh) | 基于图形学的地图动态路网处理方法及系统、计算机设备 | |
CN113495933A (zh) | 一种矢量瓦片显示方法及系统 | |
US20030122838A1 (en) | Bandwidth reduction for zone rendering via split vertex buffers | |
CN118012316A (zh) | 用于地图交互的方法和装置 | |
KR20180015564A (ko) | 타일-기반 렌더링을 수행하는 방법 및 장치 | |
CN116824028B (zh) | 图像着色方法、装置、电子设备、存储介质及程序产品 | |
US20240169474A1 (en) | Graphics processing | |
US20230401667A1 (en) | Graphics processing systems |
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 |