CN105320518A - 使用硬件镶嵌对道路和路线进行图形表示 - Google Patents

使用硬件镶嵌对道路和路线进行图形表示 Download PDF

Info

Publication number
CN105320518A
CN105320518A CN201510279596.8A CN201510279596A CN105320518A CN 105320518 A CN105320518 A CN 105320518A CN 201510279596 A CN201510279596 A CN 201510279596A CN 105320518 A CN105320518 A CN 105320518A
Authority
CN
China
Prior art keywords
curve
section
segment
rightarrow
factor
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
CN201510279596.8A
Other languages
English (en)
Other versions
CN105320518B (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.)
Elektrobit Automotive GmbH
Elektrobit Automotive Software GmbH
Original Assignee
Elektrobit Automotive Software GmbH
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 Elektrobit Automotive Software GmbH filed Critical Elektrobit Automotive Software GmbH
Publication of CN105320518A publication Critical patent/CN105320518A/zh
Application granted granted Critical
Publication of CN105320518B publication Critical patent/CN105320518B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3815Road data
    • G01C21/3819Road shape data, e.g. outline of a route
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30181Earth observation
    • G06T2207/30184Infrastructure

Abstract

本申请涉及使用硬件镶嵌对道路和路线进行图形表示。其中,每个路段被分配对路段的至少一个二维或三维道路轮廓进行描述的制图数据。一个方法方面包括以下步骤:将路段的参数化逐段地分割成相互独立的曲线段;为每个曲线段提供至少一个镶嵌因子,所述至少一个镶嵌因子指定每个曲线段要在道路轮廓的方向上被细分成多少个子段;基于所述至少一个镶嵌因子,为每个曲线段生成镶嵌图案;并且基于所生成的镶嵌图案并且基于参数化的道路轮廓,生成能够在屏幕上表示的基元。

Description

使用硬件镶嵌对道路和路线进行图形表示
技术领域
本公开总体上涉及使用硬件镶嵌(tessellation)的制图(cartographic)数据的表示。具体而言,一种解决方案专用于根据描述路段的至少一个二维或三维道路轮廓的制图数据对路段进行图形表示。
背景技术
通常,数字地图数据包括道路边缘数据和道路节点数据,以便再现路网。道路边缘表示路网内在两个连续的十字路口或交叉点之间的路段。道路节点表示在路网内的十字路口或交叉点。
路网的图形表示大体上在于路网的各个道路的道路轮廓的具体视觉再现。相似的陈述适用于在路线计算函数的过程中的计算的路线的表示,其中在路线计算函数中,计算的路线的道路轮廓被(完全或逐段)表示。道路轮廓描述了在制图坐标系内的道路、路段或路线的曲线轮廓。
为了描述道路轮廓,所谓的形状点已被保存在数字地图数据内。在这种情况下,每个路段(或者每个道路边缘)与描述路段的曲线轮廓的一系列形状点相关联。每个形状点表示相对于制图坐标系的位置(例如,地理经度和地理纬度)。
在当前表示方法中,利用分配给路段或路线的形状点,来进行路段或路线的图形表示。根据形状点的位置,表示道路轮廓,道路轮廓线性插在各个相邻的形状点之间。
在图1A和图1B中显示了通过在相邻的形状点之间的线性内插实现的路段的这种图形表示的一个实例。图1A显示了由均在节点62处结束的路段60、63、64构成的路网的细节。由于路段显示出强曲率,所以线性内插在形状点60a、60b、63a、63b、64a与节点62之间的曲线轮廓造成有角度的并且不平滑的过渡。从在图1A中显示的右边的示意图中立即可见,在点60b、62、63a、64a上出现明显的过渡,这些点通过极度失真的方式再现真实的曲线轮廓。
使曲线轮廓显得更平滑的一种可能的方式包括提供其它的形状点,以便进一步减小相邻形状点的间距,如在图1B中显示的左边示图中示意性表示。这里,额外的形状点(由小圆圈表示)插在现有的形状点60a、60b、63a、63b、64a、64b之间。从在图1B中的右边的示意图中立即可见,实际上可以更平滑地并且因此更现实地表示曲线轮廓。
然而,这种类型的解决方案的缺点在于,在地图数据内提供的信息进一步增加,结果,需要甚至更多的内存空间。而且,由于在图形表示的过程中,必须单独处理每个形状点,所以随着形状点的数量的增大,要表示的每个帧的处理时间增加。这以图形表示的速度为代价。然而,由于为了清楚地(liquid)表示,通常必须以每秒数次的频率对地图数据进行图形更新,所以缓慢的图形表示不可取。因此,由于性能的原因,所以选择较小数量的形状点,因此,接受地图数据的低质量的图形表示。
发明内容
因此,作为本公开的基础的目标在于,提供一种改进的图形表示方法,该方法尤其进一步改进了道路和路线的表示。
根据本公开的第一方面,提供了一种用于使用硬件镶嵌对路段进行图形表示的计算机实现的方法,其中,每个路段被分配对该路段的至少一个二维或三维道路轮廓进行描述的制图数据。这里,所述方法包括以下步骤:提供对路段的道路轮廓进行描述的参数化(parametrisation);将路段的参数化逐段地分割成相互独立的曲线段;为每个曲线段提供至少一个镶嵌因子,所述至少一个镶嵌因子指定每个曲线段将在道路轮廓的方向上被细分成多少个子段;基于所述至少一个镶嵌因子,针对每个曲线段生成镶嵌图案;并且基于所生成的镶嵌图案并且基于参数化的道路轮廓,生成能够在屏幕上被表示的基元。
路段可以描述在路网的两个连续的十字路口或交叉点之间的道路部分或路线部分。因此,路网或路线可以通过属于路网或属于路线的路段的图形表示来图形表示。
道路轮廓可以描述路段或道路相对于预定的制图坐标系的曲线轮廓(例如,几何形状)。换言之,道路轮廓可以再现路段的弯曲度。在一个变型中,路段的弯曲度描述由路段的角度变化相对于路段的长度构成的比率。在地图数据中考虑地形时,道路轮廓还可以是三维的。每个路段的曲线轮廓可以由储存在制图数据内的形状点描述。具体而言,每个路段可以描述为由一系列形状点构成。每个形状点由其在制图坐标系内的地理位置(纬度、经度并且在适当的情况下是高度)描述。
可以根据向量图形实现路段或道路的图形表示。这里,每个路段可以借助于基元来图形表示。换言之,每个路段可以由基元组成或构成。通过‘基元’,人们理解基本的图形元素,包括点、线、三角形、矩形和/或多边形。为了图形表示的目的,由于要表示的任何区域(表面)能够表示为由三角形构成,所以尤其地,三角形可以用作基元。而且,图形处理器(图形处理单元或GPU)被频繁地优化以用于三角形基元的表示。要理解的是,除了三角形以外的其他基元(例如,矩形)也可以用于路段的图形表示。
每个路段可以由针对曲线段生成的基元构成并且用图形表示。这里,为了路段的图形表示的目的生成基元取决于所生成的镶嵌图案。镶嵌图案可以指定参数化路段(曲线段)要被分割成多少个基元。所述图案还可以指定哪些基元(例如,三角形)要用于分割。因此,镶嵌图案可以建立分割的程度(具有多个基元的细孔分割或者具有几个基元的粗孔分割)以及分割的类型(矩形、三角形等)。
因此,每个曲线段的曲线轮廓可以由所生成的基元线性内插。这里,内插的质量可以取决于在曲线轮廓的方向上生成的基元的数量。在这种情况下,在曲线段的曲线轮廓的方向上的基元的数量可以由分配给道路轮廓的镶嵌因子确定。
对于每个曲线段,可以动态地计算分配给道路轮廓的镶嵌因子。这里,可以至少根据每个曲线段的曲线轮廓,(单独地)计算所述镶嵌因子。可以通过如下方式计算所述镶嵌因子:与具有低弯曲度的曲线段相比,将更大的镶嵌因子提供给具有高弯曲度的曲线段。结果,可以确保具有高弯曲度的曲线段在道路轮廓的方向由较多的基元表示,而具有低弯曲度的曲线段借助于几个基元来图形表示。通过使用大镶嵌因子(因此,使用细孔镶嵌),对于具有高弯曲度的曲线段,可以确保通过基元的图形表示尽力地内插曲线段的实际曲线轮廓,从而保证曲线的平滑图形表示。另一方面,具有低弯曲度或者几乎线性轮廓的曲线段仅仅需要几个基元即可获得曲线的平滑图形表示。因此,通过以曲线段相关的方式生成分配给曲线轮廓的镶嵌因子,可以确定以何种细节精度来可以用图形表示每个曲线段。
为了计算分配给道路轮廓的镶嵌因子,可以利用曲线段的在屏幕上(或者在某个其他光学输出介质上)投射的曲线轮廓。根据视角,投射的曲线轮廓可以与路段的实际曲线轮廓不同。例如,在侧面图模式中,具有高的实际弯曲度的曲线段可以在屏幕上大致线性表示。对于这种类型的路段,不需要在图形表示中的高精度细节,因此,可以提供沿着道路轮廓的小镶嵌因子。
根据一个实现方式,根据等式utess=2xlog(δ)/log(ε0),可以计算为针对在参数区间[ti,ti+1]内参数化的曲线段的道路轮廓分配的镶嵌因子,其中,utess表示镶嵌因子,δ指定预设的精度值,并且其中,根据参数化的起点终点 S → 1 = F → i ( t i + 1 ) 以及点 S → 1 = F → i ( 1 / 2 ( t i + t i + 1 ) ) , 通过计算连接起点和终点的的直线与点的间隔,来计算ε0。这里,以及可以是投射在屏幕坐标上的参数曲线的值。而且,预设的精度值δ可以按像素指定。所述值可以设为像素的一部分(例如,像素的一半)。应理解的是,预设的精度值还可以采用另一个值(例如,一个像素)。
作为曲线轮廓相关的计算的替代或补充,还可以根据要表示的曲线段的视场,计算分配给道路轮廓的镶嵌因子。例如,从观看者的角度来看,与紧邻观看者的曲线段相比,可以更粗糙地细分位于更远处的曲线段(因此,可以通过更低精度的细节进行图形表示)。
由于道路和路线在屏幕上不仅表示为一维线条,而是表示为具有某个(可变)道路宽度的二维图形对象,所以可以针对与道路轮廓垂直的方向(即,沿着道路宽度)提供另一镶嵌因子。这里,分配给道路宽度的镶嵌因子采用恒定值。例如,该镶嵌因子可以取值1。在这种情况下,在道路宽度的方向不实现任何镶嵌(即,不进一步分割成基元)。当然,根据一个替代的变型,在道路宽度的方向上的镶嵌因子还可以采用另一个值。在这两种情况下,在道路宽度的方向的镶嵌因子不取决于曲线段的曲线轮廓。
生成镶嵌图案的步骤可以包括以下子步骤:根据所提供的至少一个镶嵌因子,生成扫描点,所述扫描点指定曲线段沿着道路轮廓的细分程度。所述生成步骤可以进一步包括根据分配给道路宽度的镶嵌因子,生成扫描点,所述扫描点指定曲线段的宽度的细分程度。所述生成步骤可以进一步包括根据扫描点生成二维图案。镶嵌图案可以由三角形构成,其中扫描点形成三角形图案的顶点。
所述生成能够被表示的基元的步骤可以包括以下子步骤:实现将道路轮廓的参数化映射到扫描空间的坐标上的坐标变换;通过沿着道路轮廓在扫描点处评估变换的参数化,计算顶点;以及根据所生成的顶点,生成能够用图形表示的基元。
所述计算顶点的步骤可以进一步包括:通过沿着道路轮廓评估在扫描点处的变换的参数化,并且通过沿着位于扫描平面内并且与道路轮廓垂直的法向向量评估为道路宽度提供的顶点,来计算顶点。
为路段提供道路轮廓的参数化的步骤可以包括根据先前储存的标记道路轮廓的形状点计算路段的参数化的步骤。在这种情况下,可以通过将参数化的曲线内插到形状点的方式计算参数化。可以即时(即,在图形表示期间)计算参数化。但是还可以想象在地图数据的编译过程中生成参数化并且将其保存在地图数据内。
作为替代,地图的供应商还可以提供路段的参数化。在这种情况下,提供参数化包括读出和上传参数化到工作存储器或者在图形存储器,以用于进一步处理。
根据一个变型,借助于通过非均匀分布节点和检查点(所谓的德布尔(de-Boor)点)(下面称为‘二次NUBS’)描述的二次B样条,可以实现参数化。如上所述,可以根据提供给路段的形状点,实现通过NUBS的路段的道路轮廓的参数化。作为替代,还可以通过贝塞尔曲线或立方NUBS或其他方式,执行曲线参数化。
将路段的参数化逐段分割成相互独立的路段的步骤可以包括将对路段的道路轮廓进行描述的NUBS分割成相互独立的二次多项式。这里,每个多项式可以形成最小单元,描述路段的NUBS由该最小单元构成。例如,在连续的相邻节点的节点区间Ii=[ti,ti+1]上定义每个多项式。所述多项式可以表示在两个连续的节点之间的局部曲线轮廓。这里,可以借助于仅仅包括4个节点的节点向量 以及3个德布尔点完全地并且独特地描述在区间Ii内的每个多项式。将NUBS分割成逐段的二次多项式的优点在于,可以针对每个节点区间Ii进行B样条的局部表示,并且每个分段可以独立于相邻的分段被镶嵌。这里,对于每个段,镶嵌并且尤其是镶嵌的程度可能根据段的弯曲度而有所不同。这里,如上所述,可以进行多项式的弯曲度的适配。尤其地,逐段分割B样条防止长路段或路线段的镶嵌,由于镶嵌的硬件条件的上限而变得不够精细。
另一方面,可以通过为镶嵌分配的二次多项式,连续地构成每个路段。为此能够分配给路段的每个二次多项式的德布尔点和节点向量 可以暂时储存在工作存储器、图形存储器或者其他存储器内,以用于进一步的图形处理(即,镶嵌和生成能够用图形表示的基元)。可以通过顶点属性数组和索引数组实现储存。顶点属性数组可以包括用于要表示的路段的所有二次多项式的节点向量和德布尔点。这里,根据设置 顶点属性数组可以储存节点向量和德布尔点,其中,n是节点的数量。而且,根据设置I=[(0,1,2,3);(1,2,4,5);(2,4,6,7);(4,6,8,9);…,(2n-6,2n-4,2n-2,2n-1)],顶点属性数组可以包括引用顶点属性数组项的索引,其中,n是节点的数量。这种存储的优点在于为了描述相邻的多项式而部分重复的节点向量和德布尔点仅需储存一次,因此节省了内存空间。
根据第二方面,提供了一种计算机程序产品,包括程序代码,用于在计算机装置上执行所述计算机程序产品时,执行该方法。对此,所述计算机程序产品可以储存在计算机可读记录介质上。
根据第三方面,提供了一种用于使用硬件镶嵌对路段进行图形表示的图形模块,其中,每个路段被分配对每个路段的至少一个二维或三维道路轮廓进行描述的制图数据,所述图形模块包括:被配置为提供对路段的道路轮廓进行描述的参数化的单元;被配置为将路段的参数化分割成相互独立的曲线段的单元;被配置为针对每个曲线段提供至少一个镶嵌因子的单元,所述至少一个镶嵌因子指定每个曲线段将在道路轮廓的方向上被细分成多少个子段;镶嵌单元,其被配置为基于所述至少一个镶嵌因子,针对每个曲线段生成一镶嵌图案;以及被配置为基于所生成的镶嵌图案并且基于参数化的道路轮廓,生成能够在屏幕上被表示的基元的单元。
图形模块可以进一步包括存储器单元,其被配置为储存至少一个索引数组和一个顶点属性数组,所述顶点属性数组包括用于路段的参数化的参数数据。
根据第四方面,提供了一种导航装置,包括:上述图形模块;以及屏幕,其被配置为显示所生成的基元。
附图说明
结合附图,通过实施例的以下描述,本公开的其它方面、优点以及细节可见。显示了:
图1A/1B是道路部分和路线部分的图形表示;
图2是根据一个实施例的用于实现制图数据的图形表示的方法的设备的方框图;
图3是显示在图形流水线内的硬件镶嵌功能的实现的另一方框图;
图4是根据另一实施例的借助于硬件镶嵌功能的路段的图形表示的方法的流程图;
图5是根据另一实施例的示出路段的分割的表示;
图6是用于路段的图形表示的参数化方法的一个实施例;以及
图7是根据另一实施例的计算镶嵌因子的模型。
具体实施方式
将借助于示意性方框图和流程图来阐明本公开。作为这些示图的基础的技术教导内容可以用硬件或者软件或者用硬件和软件的组合实现。这种实现方式还包括数字信号处理器(DSP)、专用集成电路(ASIC)以及其他开关或计算元件。
在由Khronos组创建的OpenGL标准的范围内,通过示例性方式,更详细地描述本公开,本公开涉及地图数据的(尤其是路段的)图形表示。OpenGL(开放式图形库)是独立于平台的并且独立于编程语言的图形编程界面(应用编程界面或简称为API),其用于借助于图形模块(例如,图形卡或图形芯片),来对复杂的二维和三维对象进行图形表示。因此,这是软件图形界面的问题,该界面作为介于应用程序与图形模块之间的抽象层并且支持应用程序与图形模块的链接。
为了阐明本公开,因此,在下文中,将部分地依赖于术语OpenGL。要理解的是,本发明不取决于所使用的图形界面的细节。例如,还可想象DirectX(更确切地说:DirectDraw或Direct3D)或Quartz通过软件图形界面开始操作。
图2通过方框图的形式显示了用于实现在本文中描述的对地图数据的(尤其是路段)进行图形表示的方法的设备1000的一个实施例。设备1000可以是导航装置(例如,便携式导航装置(PND)或永久地集成于机动车辆内的导航装置)、路线规划器、智能电话、个人数字助理(PDA)、个人电脑(PC)、笔记本电脑、或另一便携式或能够在机器内(例如,在机动车辆内)实现的电子仪器的一部分。
设备1000包括:核心功能块1010,其具有中央数据处理单元(中央处理单元CPU)的形式和/或具有软件模块(SW模块)的形式;用于生成参数化的单元1011;用于分割所生成的参数化的单元1012;图形处理器单元1020(在后文中称为‘GPU’);图形存储器1020a;屏幕1030;工作存储器1040;以及数据存储器1050。可选地,此外,设备1000还可以包括传感器单元1060、输入单元1070以及通信接口1080。设备1000的可选元件在图2中由虚线表示。
单元1011和1012、GPU1020、图形存储器1020a、工作存储器1040、数据存储器1050、传感器单元1060、输入单元1070、通信接口1080以及核心功能块1010彼此进行通信连接,以便彼此交换要处理的数据以及处理过的数据。
通信接口1080被配置为建立与通信网络的外部装置的硬线的和/或(例如,通过LTE或GPRS)无线连接。设备1000可以通过通信接口1080与任意的外部装置交换数据(在两个方向)。例如,可以从地图数据服务器中获取通过通信接口1080更新的地图数据,以更新储存在设备1000内的地图数据材料。但是还可以想象,可以立即进一步处理通过通信接口1080接收的地图数据,以进行图形表示。
输入单元1070被配置为接受在用户与设备1000之间的相互作用的过程中的用户输入。用户输入可以是数据输入,例如,起点、目标点或中间站点的输入。但是用户输入还可以是选择操作(例如,对所显示的图标、菜单或子菜单的选择)以及控制命令,例如,这些控制命令指定在屏幕1030上表示制图数据的方式(例如,变焦命令或者改变图形表示的透视图的命令)。这里,通过驱动输入键,通过触摸屏幕,和/或通过基于语音的方式,可以实现输入。相应地,输入单元可以包括触敏屏幕、键盘、鼠标、控制杆和/或语音识别单元,该语音识别单元能够理解语音输入并且将其转换成相应的控制命令。
传感器装置1060可以包括基于卫星的位置传感器(例如,用于接收GPS信号、伽利略信号和/或格洛纳斯信号的传感器),以便确定设备1000的各自的当前地理位置。作为补充或替代,传感器单元1060还可以包括相对位置传感器,例如,里程计和陀螺仪,以便确定设备1000的位置。在利用相对位置传感器的情况下,设备的绝对位置由航迹推算原理决定。例如,在导航的过程中,需要当前位置。
数据存储器1050被配置为以数字化形式储存制图数据。这里,以数字化形式提供的制图数据根据预定的格式在数据库内被组织和构造。例如,可以通过地图数据格式使用导航数据标准地图数据格式(简称为NDS地图数据格式)。作为替代,还可以利用另一个地图数据格式。本解决方案不取决于地图数据格式的细节。
所储存的制图数据至少包括道路边缘数据和道路节点数据。道路边缘数据表示路网的在相邻的十字路口或交叉点之间的实际路段。道路节点数据表示在介绍中已经提及的十字路口或交叉点。道路边缘数据和道路节点数据可以具有一系列属性,例如,这些属性再现车道的数量、道路的宽度、十字路口的拓扑(例如,迂回路线、T形交叉点、地下通道、立交桥等)以及在十字路口交汇的道路的数量。可以在路网或单独道路或十字路口的图形表示的过程中,利用这种类型的属性信息,以便生成实际的图形表示。
而且,制图数据包括分配给道路边缘的形状点。如在介绍中所提及的,提供形状点以用于建立路段的道路轮廓(例如,曲线轮廓)。为此,可以将一系形状点分配给表示路段的每个道路边缘,这系列形状点指定路段相对于地理坐标系的曲线轮廓(即,几何形状)。换言之,每个路段的道路轮廓由分配给该路段的这系列形状点参数化。作为所述形状点的替代或补充,制图数据可以包括描述每个路段的曲线轮廓的具体曲线参数化。在这种情况下,代替形状点,参数曲线可以从数据存储器中读出、处理并且传递给GPU1020,以用于在屏幕1030上的图形表示。
屏幕1030被配置为使制图数据对于用户可见。具体而言,屏幕1030显示由GPU1020处理的制图数据。屏幕1030可以采用触敏屏幕的形式。作为屏幕1030的替代或补充,可以提供用于输出被GPU1020变得可用的图像数据的投影仪。
单元1011被配置为根据所储存的道路边缘数据(以及道路节点数据),为路段或所计算的路线生成曲线参数化。这里,单元1011可以生成二维或三维参数曲线。根据一个变型,单元1011被配置为根据所储存的能够分配给路段的形状点,为路段生成曲线参数化。这里,每个曲线参数化再现路段的曲线轮廓(或曲线)。下面借助于图4和图5,进一步更详细地描述根据形状点在单元1011中执行的参数化方法。
根据一个实现方式,如果制图数据已经包括用于路段的图形表示的合适参数化,那么还可以免除路段的参数化。在这种情况下,每个路段的参数化可以直接从数据存储器1050中读出并且传递给分割单元1012,以用于进一步处理。
单元1012被配置为将由单元1011生成的参数化(或保存在制图数据内并且读出的曲线参数化)分割成多个相互独立的曲线段。下面根据图4和图5,进一步更详细地讨论参数化的分割。然后,将分割的曲线传递给GPU1020,以用于图形表示。
单元1011和1012可以采用独立式单元的形式。但是这两个单元还可以是核心功能块1010的一部分,在图2中由虚线表示。而且,对于其它图形对象(例如,POI、三维城市模型等),如果这种类型的对象要与路段或路线一起在屏幕1030上表示(并且如果制图数据包括这种类型的信息),那么核心功能块可以被用于这种类型的图形对象的图像计算。核心功能块1010计算要表示的对象的顶点,并且将其传递给GPU1020,以用于图形表示。在计算机图形学中,要表示的对象的点用顶点指代。这个点可以与一组属性相关联,包括例如(相对于预定的全局坐标系的)位置信息、法向向量信息、纹理信息等。
图形存储器1020a被配置为独立式存储器,独立于工作存储器1040。所述存储器被用于缓冲要显示的图形数据(图形帧)和/或用于缓冲由核心功能块1010和/或由单元1012提供的顶点数据。在可替换的配置中,图形存储器1020a还可以是工作存储器1040的一部分。
GPU1020被配置为控制制图数据在屏幕1030上的图形输出。具体而言,GPU1020被配置为根据由核心功能块1010和/或单元1012提供的图像数据(顶点数据)计算屏幕输出。为此,GPU1020实现多种图形功能以用于对象的图形表示,将结合图3,更详细地描述这些功能。而且,GPU1020包括镶嵌单元,该单元被配置为实现由标准OpenGL4.0(或更高版本)或相似的图形API(例如,Direct3D11)指定的镶嵌功能。
现在,根据图3以及在其内表示的图形流水线,更详细地阐明GPU1020的操作模式。通过在计算机图形学领域的‘图形流水线’(通常也称为‘渲染流水线’),人们理解一系列图形处理步骤,通过这些步骤,执行或处理在图形处理器内实现的图形功能,以便在屏幕1030上或者在另一个可视输出介质上用图形表示图形对象。
从在图3中的简化图形流水线表示中可见,GPU1020实现几个着色器以及一镶嵌单元。着色器是可编程硬件模块或软件模块,其在图形流水线内实现图形表示的某些功能或效果(渲染效果)。例如,着色器可以被配置为生成3D效果。这里,各个着色器的一致性和驱动由图形编程界面(图形API,例如,OpenGL)实现,图形编程界面表示介于GPU1020与应用程序之间的抽象层。
具体而言,图形流水线包括顶点着色器1021、裁剪和光栅化阶段1025、可选地提供的几何着色器1026以及片断着色器1027。而且,GPU1020包括用于实现镶嵌功能的镶嵌单元1023、镶嵌控制着色器1022以及镶嵌评估着色器1024。
顶点着色器1021的功能(例如,各个顶点的坐标变换)、裁剪和光栅化阶段1025的功能、几何着色器1026的功能以及片断着色器1027的功能分别与在较早OpenGL版本中的对应着色器在图形流水线内的功能对应,并且对于本领域的技术人员来说是公知的。因此,不再阐明这些功能。通过OpenGL4.0(以及更高版本),镶嵌控制着色器1022、镶嵌单元1023以及镶嵌评估着色器1024最近被引入OpenGL图形流水线。在下文中更详细地描述其功能。
可编程的镶嵌控制着色器1022设置在图形流水线内的顶点着色器1021与镶嵌单元1023之间。镶嵌控制着色器1022被设计为给补丁提供镶嵌因子。‘补丁’在这里指一种新类型的基元,其结合镶嵌功能的实现被引入图形流水线内。‘补丁’指代表示图形元素的顶点的集合(该集合由顶点着色器提供)。由着色器1022提供的镶嵌因子指定跟随的镶嵌单元1023要将补丁分割成多少个子单元(子段)。
除了镶嵌因子以外,在镶嵌控制着色器1022中,还可使用其它镶嵌参数,这些参数例如建立镶嵌的类型(例如,将补丁分割成三角形基元或矩形基元)和镶嵌的(二维)域,从而使该域可以是矩形或三角形(重心)。通过选择特定的域,建立镶嵌的坐标系,为每个坐标提供外部镶嵌因子。而且,可以为域提供内部镶嵌因子,以指定域如何镶嵌在内部区域内。
对于根据本公开的曲线段的镶嵌,选择矩形域,并且内部镶嵌因子等于外部镶嵌因子(在下文中,仅仅称为‘镶嵌因子’)。下面结合图7,进一步更详细地与曲线段相关的镶嵌因子的提供。
非可编程镶嵌单元1023被配置为根据在镶嵌控制着色器1022内建立的镶嵌因子和镶嵌参数生成镶嵌图案。具体而言,镶嵌单元1023生成扫描点并且确定扫描点彼此连接的方式,以便生成镶嵌图案。
可编程镶嵌评估着色器1024被配置为根据由镶嵌单元1023提供的镶嵌图案(即,扫描点和扫描点的连接类型)并且根据补丁的属性(位置坐标、法向向量等)计算扫描点的顶点位置。尤其地,镶嵌评估着色器1024还被配置为给顶点位置提供内插属性。
现在借助于图4,更详细地阐明上述的使用硬件镶嵌对路段进行图形表示的方法的一个实施例。
根据第一步骤S100,通过单元1011,提供用于对要在屏幕1030上表示的路段的道路轮廓进行描述的参数化。参数化曲线再现路段的实际道路轮廓(即,曲线轮廓)。所述提供包括根据分配给路段的形状点(并且根据能够分配给路段的道路节点数据)生成要用图形表示的路段的合适参数化。在加载形状点(到工作存储器1040内)之后,可以立即(可以说即刻)为每个路段计算参数化的计算。结合图5,通过更详细的方式描述在图形表示方法期间可以执行的合适的以及资源节约的参数化。
可替代地,可以由地图数据的供应商提前提供道路轮廓的参数化。在这种情况下,所述提供仅仅包括读出并且加载参数化(或者描述参数化的参数)到工作存储器1040内。然后,可以将暂时储存在工作存储器1040内的数据提供给分割单元1012,以用于进一步处理。
在另一步骤S110中,通过单元1012,将路段的参数化道路轮廓分割成相互独立的曲线段。这里,可以根据沿着路段的参数化曲线轮廓实现分割。具体而言,可以通过使路段在预定的参数区间内的局部曲线轮廓与每个曲线段对应的方式,实现路段的参数化道路轮廓的分割。可以分别通过两个连续的参数节点建立参数化参数区间。
在跟随的第三步骤S120中,通过镶嵌控制着色器1022,为每个曲线段提供至少一个镶嵌因子。所述至少一个镶嵌因子指定每个曲线段要在道路轮廓的方向上被细分(细化)成多少个子段。镶嵌因子的提供包括根据每个曲线段的弯曲度在镶嵌控制着色器1022中计算镶嵌因子。因此,镶嵌因子的提供取决于每个分割的曲线段的曲率程度并且可以在路段内的相邻曲线段之间变化。例如,如果曲线段显示了高度曲率(高弯曲度),那么所提供的镶嵌因子更大,这与曲线段在道路轮廓方向上的更精细的细分相关联。换言之,凭借更大的镶嵌因子,获得曲线段的更精细的镶嵌,凭借该镶嵌,可以在屏幕上更精细地(即,通过更高精度的细节)用图形表示曲线轮廓。结合图6,详细地描述根据每个曲线段的弯曲度对镶嵌因子的动态计算。
在下一个步骤S130中,根据所提供的镶嵌因子(以及上述的其它镶嵌参数),通过镶嵌单元1023,生成镶嵌图案。为了将镶嵌参数化,选择矩形单元域,该矩形单元域根据镶嵌因子被分割成多个三角形。分割成三角形的原因在于GPU1020在三角形的表示方面已被优化,并且图形对象的要表示的任意区域能够由三角形最佳地表示。应理解的是,还可以进行矩形或其他分割来代替三角形。
在跟随的步骤S140中,然后,基于所生成的镶嵌图案并且基于参数化的道路轮廓,生成能够在屏幕1030上表示的基元。如果镶嵌图案由三角形的网络构成,那么根据参数化并且根据图案计算三角形基元的顶点,借此在屏幕1030上用图形表示要表示的曲线段。因此,在屏幕1030上表示的每个曲线段由多个三角形基元构成,所使用的三角形的数量确定曲线的再现适合性,所使用的三角形的数量由镶嵌因子确定。
在下文中,现在更详细地描述用于提供路段的道路轮廓的参数化的参数化方法。根据在每个路段的制图数据中提供的形状点实现参数化。可以结合在图4中表示的方法执行该参数化方法。
对于根据可用的形状点对道路轮廓的参数化(生成参数曲线),可以使用非均匀分布的节点ti的二次B样条(在下文中,称为‘二次非均匀的B样条’或‘二次NUBS’)的示例性方式。这里,借助于满足条件t0≤t1…≤tn+2的n个检查点(i=0,…n-1)、所谓的德布尔点以及n+3个节点,可以描述二次NUBS的曲线轮廓。然后,二次NUBS是在一维参数空间[t2,tn]内限定的参数曲线该参数曲线根据以下分配规则将参数值u从由节点预先确定的一维参数空间[t2,tn]中映射到二维或三维空间Rk(k建立空间维度)内:
其中,表示参数化的基函数,根据以下等式,定义在节点区间上的基函数:
对于所有其他节点值
二次NUBS的一阶导数是线性NUBS并且被定义如下:
对于所有其他节点值
在下文中,现在描述根据一系列形状点对NUBS的计算。结合根据形状点对二次NUBS的计算,假设参数化曲线内插该系列形状点。这里,‘内插’表示参数曲线精确地穿过形状点并且不是仅仅接近这些形状点。但是还可以想象以仅仅接近这些形状点的方式计算参数曲线,。
为了根据形状点计算德布尔点和节点ti,利用B样条内插技术以及弦(chordal)参数化和平均节点向量。假设路段由n-2个形状点(其中,0<j<n-2)构成,借助于弦参数化,首先根据以下等式,确定参数值ui
u 0 = 2 u n - 3 = n - 1 u i = u i - 1 + n - 2 &Sigma; j = 0 n - 3 | | p &RightArrow; j - p &RightArrow; j + 1 | | | | p &RightArrow; i - 1 - p &RightArrow; i | | , with 1 &le; i < n - 3 - - - ( 4 )
然后,根据以下等式,通过参数值ui计算参数化的节点ti
t0=0
t1=1
t2=2
t i + 2 = t i + 1 + 1 2 ( u i - 1 + u i ) , with 1 &le; i < n - 2
tn=n
tn+1=n+1
tn+2=n+2.(5)
节点序列(t0,…tn+2)也称为节点向量。根据以上等式计算的节点向量在该文献中称为平均节点向量。
借助于节点向量,然后,可以建立用于计算德布尔点的线性方程组,
F &RightArrow; ( u j ) d &RightArrow; i = p &RightArrow; j - - - ( 6 )
其中,0<j<n-2。
可见线性方程组具有n-2个等式和n个未知的德布尔点这表示线性方程组欠定,且因此没有唯一解。
通过建立一个或多个边界条件,可以更详细地确定方程组。通过边界条件,确定在起点和终点的参数化的一阶导数满足等式:
&PartialD; F &RightArrow; &PartialD; u ( u 0 ) = 1 2 &CenterDot; ( p &RightArrow; 1 - p &RightArrow; 0 ) &PartialD; F &RightArrow; &PartialD; u ( u n - 3 ) = 1 2 &CenterDot; ( p &RightArrow; n - 3 - p &RightArrow; n - 4 ) - - - ( 7 )
结果,获得在相邻段之间的平滑过渡。通过在先前的方程组中包括边界条件,出现可以如下以矩阵向量表示法编写的方程组:
由于基函数被局部限定并且针对多个参数值ui取值0(见等式2),所以矩阵的多个(额外的对角)项是0。因此,A表示稀疏填充的矩阵,该矩阵可以由标准方法有效地求解。通过对以上方程组求解,可以确定德布尔点
总体上,在本文中描述的参数化方法构成一种非常有效并且资源节约的方法,在导航装置操作期间(即,在从地图数据库中上传形状点之后),可以执行该方法。应理解的是,借助于NUBS,所提出的参数化方法也适合于在地图数据的编译期间运行。然后,参数化(德布尔点和节点向量)可以直接储存在地图数据库内并且可以在稍后的图形表示的范围内获取。
借助于图5,进一步阐明将提供给路段的参数曲线逐段分割成曲线段。
在本文中借助于二次NUBS使用的参数化的优点在于,每个二次NUBS可以逐段分成二次多项式。具体而言,每个路段(具有n-2个形状点)的NUBS参数化可以被分成n-2个B样条段(即,曲线段),在区间[ti,ti+1]内的曲线段能够被解释为按照如下表示方式的二次多项式:
这里,相关联的基函数Ni-2,Ni-1,Ni能够通过以下形式表示:
其中,2≤i≤n+1。要注意的是,根据以上等式的逐段二次多项式表示与在等式2中的表示对应。
图5通过示例性方式阐明了将参数曲线80逐段分割成二次多项式。在图5中表示的曲线80显示了可以分成三个相互独立的曲线段81、82、83的路段的NUBS参数化的细节。这三个段81、82、83中的每个描述了参数曲线的非常特别的局部曲线轮廓。段81描述了凹形曲线轮廓,而区段82、83均显示了凹形曲线轮廓。
在图5中表示的在曲线80之下的示图90显示了曲线段81、82、83分别需要的关于节点值ti的基函数Ni。段81描述了在参数区间[t2,t3]上的曲线轮廓(标记为棒92a),并且借助于德布尔点和标记为棒71a的四个节点值(t1,t2,t3,t4)完全描述的二次多项式进行描述。同样,在参数区间[t3,t4]和[t4,t5]上定义的曲线段82、83(在示图90中,参照棒92b、92c)分别由这三个德布尔点 以及分别由节点值(t2,t3,t4,t5)和(t3,t4,t5,t6)(棒71b、71c)进行描述。从这个表示中更一般地断定,根据n-2个形状点参数化的曲线可以分割成n-2个相互独立的二次多项式,对于第i个节点区间[ti,ti+1],这些二次多项式可以完全由仅仅三个德布尔点以及具有四项的节点向量表示。在此处,与其他曲线参数化(例如,立方B样条或贝塞尔曲线)相比较,使用二次参数化的优点变得明显。对于其他曲线参数化(例如,立方B样条或贝塞尔曲线)来说,为了逐段描述,需要大得多的参数组,因此,在处理的过程中,占据更多的处理器资源和内存资源。
在本文中描述的参数化的分割的另一优点在于:镶嵌(尤其是镶嵌的程度)可以单独地与每个曲线段的弯曲度相适应。
为了每个曲线段的单独镶嵌和图形表示,描述每个曲线段的三个德布尔点以及节点向量作为顶点属性分配给补丁。换言之,在每种情况下,补丁表示分割的曲线段。每个补丁的顶点属性被加载到图形存储器1020a内以用于镶嵌。从在图5中的分割可见,对连续的曲线段表示的补丁的顶点属性部分重复。例如,为了对段81、82、83进行图形处理,节点向量 和德布尔点以及必须被加载到GPU1020内。更一般地阐述,为了对分割成n-2个曲线段(补丁)的路段进行图形表示,将具有以下形式的顶点属性数组V’储存在GPU存储器1020a内:
V , = [ ( d &RightArrow; 0 , d &RightArrow; 1 , d &RightArrow; 2 , s &RightArrow; 0 ) , ( d &RightArrow; 1 , d &RightArrow; 2 , d &RightArrow; 3 , s &RightArrow; 1 ) , ( d &RightArrow; 1 , d &RightArrow; 2 , d &RightArrow; 3 , s &RightArrow; 1 ) , . . . , ( d &RightArrow; n - 3 , d &RightArrow; n - 2 , d &RightArrow; n - 3 , s &RightArrow; n - 3 ) ] - - - ( 11 )
还要注意的是,向量的维度不同。表示四维向量,而德布尔点仅仅形成二维或三维向量(在3D参数化的情况下)。由于补丁的所有顶点属性必须具有相同的维度,所以通过将二维或三维德布尔点复制到顶点属性数组V’内并且缺失的项由0填充德布尔,来使得点的维度适应于节点向量的维度。
从等式(11)中可以推断出,在顶点属性数组内的德布尔点和节点值部分地重复三次。为了避免对图形存储器1020a的不必要的需求和浪费,借助于以下顶点属性数组V和索引数组I,表示每个NUBS。在顶点属性数组V中,路段的曲线段的德布尔点和节点向量根据以下表示嵌套在一起:
V = [ d &RightArrow; 0 , d &RightArrow; 1 , d &RightArrow; 2 , s &RightArrow; 0 , d &RightArrow; 3 , s &RightArrow; 1 , d &RightArrow; 4 , s &RightArrow; 2 , d &RightArrow; 5 , s &RightArrow; s , . . . , d &RightArrow; n - 1 , s &RightArrow; n - 3 ] - - - ( 12 ) ,
在顶点属性数组内的属性的分配遵守分配的以下递归规则:
V [ 0 ] = d &RightArrow; 0 , V [ 1 ] = d &RightArrow; 1 , V [ 2 ] = d &RightArrow; 2 , V [ 3 ] = s &RightArrow; 0 - - - ( 13 )
V [ 2 i ] = d &RightArrow; i + 1 , V [ 2 i + 1 ] = s &RightArrow; i - 1 , 其中2≤i≤n-1
要注意的是,在通过这种方式获得的顶点属性数组内,每个属性仅仅储存一次,结果,可以极大地节约GPU内存资源。
另一方面,为了从顶点属性数组V中获得单独曲线段的顶点属性,必须访问在顶点属性数组V中的正确项。该访问是通过索引数组I建立的。根据以上顶点属性数组表示V,数组项V[0]、V[1]、V[2]以及V[3]限定NUBS的第一曲线段,项V[1]、V[2]、V[4]以及V[5]限定跟随的第二曲线段,并且项V[2(i-1)]、V[2i]、V[2(i+1)]以及V[2(i+1)+1]限定每个其它段,2≤i<n-1。
通过这种方式获取的这系列索引储存在索引数组内:
I=[(0,1,2,3);(1,2,4,5);(2,4,6,7);(4,6,8,9);…,(2n-6,2n-4,2n-2,2n-1)]
(14),
其中,括号仅仅用于区分各个补丁(或曲线段)。由此,可以获得用于标引顶点属性数组V的索引,据此,从第一补丁开始,认为:
对于第一补丁,I[0]=0,I[1]=1,I[2]=2,I[3]=3(14’)
对于第二补丁,I[4]=1,I[5]=2,I[6]=4,I[7]=5,并且
对于每个其它补丁,I[4i]=2(i-1),I[4i+1]=2(i),I[4i+2]=2(i+1);I[4i+3]=2(i+2),其中,2<=i<=n-1。
结合图6和图7,现在,更详细地描述借助于在GPU1020中实现的镶嵌函数进行NUBS的图形表示。
根据镶嵌单元1023、镶嵌评估着色器1024以及在图6中表示的并且上面结合图3简单讨论的可编程镶嵌控制着色器1022,来实现镶嵌函数。
可编程镶嵌控制着色器1022的主要任务是为镶嵌单元1023提供至少一个镶嵌因子。而且,在着色器1022中,建立镶嵌的类型和镶嵌的域。建立矩形单元域35,将借助于(u,v)坐标描述该域,并且该域具有分别沿着u坐标和v坐标从0到1延伸的边缘。这里,u坐标指向参数化曲线段的道路轮廓的方向,而与u坐标垂直的v坐标指向道路宽度的方向(与OpenGL相符,坐标由u和v表示;应理解的是,坐标还可以用其它方式表示)。分别为坐标u、v提供镶嵌因子。
在下文中,将更详细地描述为坐标u和v提供镶嵌因子。这里,再次提及,利用道路轮廓和道路宽度的作为二维对象的道路或路线的图形表示主要由道路轮廓(即,由给定的曲线轮廓)确定。可以假设道路的宽度沿着道路轮廓近似是恒定的。相应地,将恒定值分配给与宽度相关联的镶嵌因子(在v方向上的镶嵌因子)。优选地,值1固定为在v方向上的镶嵌因子,镶嵌单元1023由此在v方向上仅仅生成两个扫描点。因此,在v方向上进行恒定的镶嵌。
在道路轮廓的方向,即,在u方向,根据每个曲线段的弯曲度实现镶嵌的提供。换言之,所述提供包括针对每个补丁单独计算镶嵌因子。如在图6中所表示的(见箭头),每个补丁分别表示NUBS参数化的可能最小的独立提取,并且能够由这三个德布尔点以及节点向量唯一地表示,所述补丁被传递给着色器1022。
将借助于在图7中的示意图阐述镶嵌因子的计算。图7通过示例性方式显示了路段50的参数化的第i个补丁50a,第i个补丁50a表示在参数区间[ti,ti+1]上的曲线轮廓。而且,图7显示了被用于计算镶嵌因子的点这些点是通过评估在参数值ti,、1/2(ti+ti+1)以及ti+1处的参数化Fi获得的。
要注意的是,在图7中表示的并且用于计算镶嵌因子的点以及存在于屏幕空间坐标内。为了计算点以及首先将参数曲线Fi转换成眼睛空间坐标,随后,根据以下等式,在曲线起点ti、半间隔距离(即,在1/2(ti+ti+1)处)以及曲线末端ti+1处评估:
e &RightArrow; 0 = F &RightArrow; i ( t i ) , e &RightArrow; 2 = F &RightArrow; i ( t i + 1 ) e &RightArrow; 1 = F &RightArrow; i ( 1 / 2 ( t i + t i + 1 ) ) - - - ( 15 )
然后,将参数曲线上的点以及投射到二维屏幕空间坐标以及如果为三维参数化,那么根据以下等式执行投射:
n &RightArrow; i = [ e i , x , e i , y , e i , z , 1 ] T &CenterDot; P
n &RightArrow; i = n i / n i , w s i = [ ( n i , x + 1 ) &CenterDot; w 2 , ( n i , y + 1 ) h 2 ] T - - - ( 16 ) ,
其中,P表示4x4投射矩阵,ni,w表示向量的第四分量,并且w和h指定屏幕宽度和屏幕高度。在等式16中索引i采用值(0、1、2),即,要投射的点以及的索引值。顺便,‘T’代表‘转置’。
借助于计算的点以及计算中点与连接起点和终点的直线gi的垂直间距ε0(见图7)。按像素来测量确定的间距ε0。这里,如果由参数化的曲线段接近穿过起点和终点的直线g,那么ε0是误差的测量值。
可以表明,通过曲线段Fi在参数区间[ti,ti+1]内的合适的进一步细分,应用已知的NUBS细分算法,误差连续减少,从而在m个细分之后,可以根据以下等式估计用于偏离镶嵌曲线的误差值:
ε=(ε0 2)m(17)
在这种情况下,曲线段被细分直到不再具有预定的误差δ,即,直到满足不等式:
( &epsiv; 0 2 ) m < &delta; - - - ( 18 )
其中,δ表示像素值。例如,值δ可以与在屏幕空间内的半像素对应。
在m个细分之后,针对一补丁,在道路轮廓方向上总共生成22m+1+1个扫描点(即,对于u坐标)。而且,
在曲线轮廓方向生成
utess=22m+1(19)
个细分。这里,utess表示镶嵌因子并且指定在曲线轮廓的方向上考虑的曲线段的细分的数量。
通过采用等式(19)的算法,得出,
m=log2(utess)–1.(20)
通过将等式(20)代入在等式(18)中的m,根据以下等式,可以获得镶嵌因子utess的估计:
v tess = 2 log ( &delta; ) log ( 0 ) - - - ( 21 )
根据等式(21),镶嵌因子还可以采用有理数。由于现代GPU还支持有理镶嵌因子,所以可以利用这种值用于镶嵌,由此可实现在连续补丁的镶嵌因子之间的无缝过渡。
总体上,通过等式(21),可以从这两个参数ε0和δ中单独地估计每个曲线段的镶嵌因子,其中,δ表示永久预定的值,并且其中,从三个评估的和变换的点中,计算ε0。通过在等式(21)中提供的估计,可以动态地确定每个曲线段的镶嵌因子,无需为了这个目的针对每个补丁单独地执行资源消耗的迭代计算方法。
返回图6:一旦单元域的这两个坐标(u,v)的镶嵌因子由镶嵌控制着色器1022确定,就将这些因子提供给镶嵌单元1023。如在图6中所表示的,为所提供的单元域提供与镶嵌因子vtess=1对应的在v方向上的两个扫描点,然而,在u方向,生成与镶嵌因子utess=22m+1对应的22m+1+1个扫描点。
在图5中显示的镶嵌图案中,扫描点表示为沿着这两个坐标(u,v)的节点。在以三角形区域(这可以由镶嵌参数建立)镶嵌单元域的条件下,可以借助于节点生成镶嵌图案,其中该镶嵌图案用22m+1+1个三角形的网络来表示该单元域。对于在图6中显示的示例性情况,镶嵌因子是utess=6,矩形单元域在u方向上细分成6个子段并且由总共12个三角形构成。
最后,可编程镶嵌评估着色器1024被配置为根据所提供的镶嵌图案(即,根据所计算的扫描点并且根据扫描点的连接类型)并且根据包含在补丁内的顶点属性(即,德布尔点、节点向量)给每个补丁生成能够用图形表示的基元,由此可以在屏幕1030上表示每个补丁的曲线轮廓。
为了生成能够用图形表示的基元(在当前情况下,三角形),必须计算基元的顶点位置。对于借助于在参数域[ti,ti+1]内的(变换的)参数函数Fi限定路段的曲线轮廓的补丁50a,为了沿着曲线轮廓的方向生成三角形基元的顶点位置,评估具有以下参数值的参数化Fi(u'0),
u'0=(1-u0)·ti+u0·ti+1(22),其中,u0可以采用在镶嵌图案中提供的在区间[0、1]内的扫描点。因此,在区间[ti,ti+1]内,评估具有在镶嵌图案中预先确定的细分单元的参数化这意味着对于具有多个扫描点u0的高镶嵌因子,计算在区间[ti,ti+1]内的多个顶点由于顶点表示要生成的三角形基元的顶点,并且由于三角形的边缘由连接线性相邻顶点的直线(在相邻顶点之间的线性内插)表示,所以显然,仅仅在区间[ti,ti+1]内沿着曲线轮廓的方向提供的顶点尽可能密切地依次排列时,借助于三角形基元可以非常充分地表示具有大弯曲度的曲线段。这通过高镶嵌因子获得。
而且,由于道路在屏幕1030上表示为二维图形对象而不仅仅是一维曲线,所以对于每个参数值u’0,根据以下表示,还沿着与垂直的法向单元向量生成代替顶点的顶点:
F &RightArrow; i ( u 0 &prime; ) + ( v 0 - 1 2 ) &CenterDot; &lambda; b &RightArrow; | | b &RightArrow; | | . - - - ( 23 )
这里,v0取值0或1。λ是动态自适应的参数,借助于该参数,可以缩放道路或路线的要表示的厚度。根据以下梯度通过已知的方式计算法向向量b:
b &RightArrow; = &PartialD; &RightArrow; F &RightArrow; ( u 0 &prime; ) &PartialD; u - - - ( 24 )
因此,根据等式23,产生在道路轮廓的方向上并且与道路轮廓垂直的顶点,该顶点将由镶嵌评估着色器1024输出。然后,如图6中所表示的,可以从顶点中为补丁50a构造能够用图形表示的三角形基元。
因此,每个曲线段可以在屏幕1030上由一组三角形用图形表示。或者,换言之,每个曲线段可以分割成能够表示的一组三角形基元。尤其地,每个曲线段的分割可以单独地设置并且可以根据弯曲度(和/或视角)适应于每个曲线段。要在屏幕1030上由强曲率表示的曲线段更密集地镶嵌,因此,分割成三角形基元的更精细的网络,然而,对于具有低曲率的曲线段,可以提供更粗糙的镶嵌。通过这种方式,确保每个曲线段在屏幕1030上表现为尽可能平滑的曲线,与其弯曲度无关,结果,大幅改进路段、路网以及路线在屏幕1030上的表示。尤其地,通过镶嵌的动态适应,确保获得尽可能最佳并且有效的图形表示。尤其地,可以获得路段的实际表示,无需为了这个目的评估大量形状点。
而且,均如在本文中所述,借助于参数化、分割道路轮廓并且组织在图形存储器内的数据,确保尽可能有效地并且节约地占用计算资源和内存资源。尤其地,通过在本文中描述的参数化,能够在图形表示时(即时)根据形状点进行路段的参数化。

Claims (23)

1.一种使用硬件镶嵌对路段进行图形表示的方法,其中,每个路段被分配对该路段的至少一个二维或三维道路轮廓进行描述的制图数据,所述方法包括以下步骤:
提供对路段的道路轮廓进行描述的参数化;
将路段的参数化逐段地分割成相互独立的曲线段;
为每个曲线段提供至少一个镶嵌因子,所述至少一个镶嵌因子指定每个曲线段将在道路轮廓的方向上被细分成多少个子段;
基于所述至少一个镶嵌因子,针对每个曲线段生成镶嵌图案;并且
基于所生成的镶嵌图案并且基于参数化的道路轮廓,生成能够在屏幕(1030)上被表示的基元。
2.根据权利要求1所述的方法,其中,路段利用针对曲线段生成的基元构成以及图形表示。
3.根据权利要求1所述的方法,其中,每个曲线段的曲线轮廓由所生成的基元线性内插。
4.根据权利要求1所述的方法,其中,至少基于曲线段的曲线轮廓,计算分配给道路轮廓的镶嵌因子。
5.根据权利要求4所述的方法,其中,利用所述曲线段的投射到屏幕(1030)上的曲线轮廓,来计算分配给道路轮廓的镶嵌因子。
6.根据权利要求4所述的方法,其中,根据等式utess=2xlog(δ)/log(ε0),计算为针对在参数区间[ti,ti+1]内参数化的曲线段的道路轮廓分配的镶嵌因子,其中,utess表示镶嵌因子,δ指定预设的精度值,并且其中,根据参数化的起点 S &RightArrow; 0 = F ( t i ) , 终点 S &RightArrow; 2 = F &RightArrow; i ( t i + 1 ) 以及点 S &RightArrow; 1 = F &RightArrow; i ( 1 / 2 ( t i + t i + 1 ) ) , 通过计算连接起点和终点的的直线与点的间隔,来计算ε0
7.根据权利要求1所述的方法,其中,进一步基于待表示的曲线段的视场来计算为道路轮廓分配的镶嵌因子。
8.根据权利要求1所述的方法,进一步包括提供为与道路轮廓的方向垂直的道路宽度分配的另一镶嵌因子。
9.根据权利要求8所述的方法,其中,为道路宽度分配的镶嵌因子采用恒定值。
10.根据权利要求1所述的方法,其中,生成镶嵌图案的步骤包括:
基于所提供的至少一个镶嵌因子,生成扫描点,所述扫描点指定沿着道路轮廓的曲线段的细分程度。
11.根据权利要求10所述的方法,其中,生成能够被表示的基元的步骤包括:
实现将道路轮廓的参数化映射到扫描空间的坐标上的坐标变换;
通过沿着道路轮廓评估在扫描点处的经变换的参数化,来计算顶点;以及
基于所生成的顶点,生成能够用图形表示的基元。
12.根据权利要求11所述的方法,其中,计算顶点的步骤进一步包括:
通过沿着道路轮廓评估在扫描点处的经变换的参数化,并且通过沿着位于屏幕平面内并且与道路轮廓垂直的法向向量评估为道路宽度提供的顶点,来计算顶点。
13.根据权利要求1所述的方法,其中,基于先前储存的标记道路轮廓的形状点,来计算所述参数化。
14.根据权利要求13所述的方法,其中,基于形状点,以使参数化的曲线内插到形状点的方式,来实现所述参数化。
15.根据权利要求13所述的方法,其中,基于形状点即时计算所述参数化。
16.根据权利要求1所述的方法,其中,每个路段的道路轮廓通过二次B样条进行参数化,所述二次B样条通过非均匀分布的节点和德布尔点来描述。
17.根据权利要求16所述的方法,其中,路段的每个非均匀B样条被分割成相互独立的二次多项式,每个多项式在节点区间Ii=[ti,ti+1]上被定义并且由节点向量 s &RightArrow; i = ( t i - 1 , t i , ti + 1 , t i + 2 ) 和三个德布尔点描述。
18.根据权利要求17所述的方法,其中,借助于索引数组并且借助于包括节点向量和德布尔点的顶点属性数组,来描述路段的每个非均匀的B样条。
19.根据权利要求18所述的方法,其中,所述顶点属性数组根据设置 V = [ d &RightArrow; 0 , d &RightArrow; 1 , d &RightArrow; 2 , s &RightArrow; 0 , d &RightArrow; 3 , s &RightArrow; 1 , d &RightArrow; 4 , s &RightArrow; 2 , d &RightArrow; 5 , s &RightArrow; 3 , . . . , d &RightArrow; n - 1 , s &RightArrow; n - 3 ] 包括用于要表示的路段的所有二次多项式的节点向量和德布尔点,无需递归重复节点向量和德布尔点,其中,n是节点的数量。
20.根据权利要求18所述的方法,其中,所述索引数组根据设置I=[(0,1,2,3);(1,2,4,5);(2,4,6,7);(4,6,8,9);…,(2n-6,2n-4,2n-2,2n-1)]包括顶点属性数组项的索引,其中,n是节点的数量。
21.一种图形模块,用于使用硬件镶嵌对路段进行图形表示,其中,每个路段被分配对每个路段的至少一个二维或三维道路轮廓进行描述的制图数据,所述图形模块包括:
被配置为提供对路段的道路轮廓进行描述的参数化的单元(1011);
被配置为将路段的参数化分割成相互独立的曲线段的单元(1012);
被配置为针对每个曲线段提供至少一个镶嵌因子的单元(1022),所述至少一个镶嵌因子指定每个曲线段将在道路轮廓的方向上被细分成多少个子段;
镶嵌单元(1023),其被配置为基于所述至少一个镶嵌因子,针对每个曲线段生成一镶嵌图案;以及
被配置为基于所生成的镶嵌图案并且基于参数化的道路轮廓,生成能够在屏幕(1030)上被表示的基元的单元(1024)。
22.根据权利要求21所述的图形模块,进一步包括存储器单元(1020a),其被配置为储存至少一个索引数组和一个顶点属性数组,所述顶点属性数组包括用于路段的参数化的参数数据。
23.一种导航装置(1000),包括:
根据权利要求21所述的图形模块;以及
屏幕(1030),其被配置为显示所生成的基元。
CN201510279596.8A 2014-05-27 2015-05-27 使用镶嵌对路段进行图形表示的方法和装置及导航装置 Active CN105320518B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102014007914.7 2014-05-27
DE102014007914.7A DE102014007914A1 (de) 2014-05-27 2014-05-27 Graphisches Darstellen von Straßen und Routen unter Benutzung von Hardware-Tesselierung

Publications (2)

Publication Number Publication Date
CN105320518A true CN105320518A (zh) 2016-02-10
CN105320518B CN105320518B (zh) 2018-08-31

Family

ID=54481003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510279596.8A Active CN105320518B (zh) 2014-05-27 2015-05-27 使用镶嵌对路段进行图形表示的方法和装置及导航装置

Country Status (4)

Country Link
US (1) US9483872B2 (zh)
JP (1) JP6009039B2 (zh)
CN (1) CN105320518B (zh)
DE (1) DE102014007914A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111238505A (zh) * 2018-11-29 2020-06-05 沈阳美行科技有限公司 一种道路地图的道路线段描画方法、装置及相关系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013207658A1 (de) * 2013-04-26 2014-10-30 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bestimmen eines Fahrspurverlaufes einer Fahrspur
WO2018232681A1 (en) * 2017-06-22 2018-12-27 Baidu.Com Times Technology (Beijing) Co., Ltd. TRAFFIC PREDICTION BASED ON CARD IMAGES FOR AUTONOMOUS DRIVING
CN108492369B (zh) * 2018-03-05 2022-09-27 中交一公局第五工程有限公司 汽车实验场高速环道曲线段路基三维填筑施工方法
US10818080B2 (en) * 2018-07-25 2020-10-27 Disney Enterprises, Inc. Piecewise-polynomial coupling layers for warp-predicting neural networks
CN116310214A (zh) * 2023-02-28 2023-06-23 中国公路工程咨询集团有限公司 公路养护路面三维模型简化方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1147628A (zh) * 1995-05-29 1997-04-16 索尼公司 通过有限信息显示地图的导航装置
US20090030533A1 (en) * 2006-04-21 2009-01-29 Tac Ab Products, Device, and System for Controlling
WO2009032697A1 (en) * 2007-08-30 2009-03-12 Harris Corporation Geospatial data system for selectively retrieving and displaying geospatial texture data based upon user-selected point-of-view and related methods
CN103206957A (zh) * 2012-12-26 2013-07-17 辽宁师范大学 车辆自主导航的车道线检测与跟踪方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8402497A (nl) * 1984-08-14 1986-03-03 Philips Nv Voertuignavigatiesysteem voorzien van een adaptief traagheidsnavigatiesysteem gebaseerd op meting van de snelheid en de dwarsversnelling van het voertuig en voorzien van een correctie-eenheid voor het corrigeren van de gemeten waarden.
US4821214A (en) * 1986-04-17 1989-04-11 Brigham Young University Computer graphics method for changing the shape of a geometric model using free-form deformation
US6029173A (en) 1997-11-26 2000-02-22 Navigation Technologies Corporation Method and system for representation and use of shape information in geographic databases
US6600485B1 (en) * 1998-07-03 2003-07-29 Sega Enterprises, Ltd. Polygon data generation method and image display apparatus using same
DE20022813U1 (de) 1999-04-15 2002-05-16 Siemens Ag Navigationsgerät
GB2388507B (en) * 2002-05-10 2005-11-09 Imagination Tech Ltd An interface and method of interfacing between a parametric modelling unit and a polygon based rendering system.
KR100506822B1 (ko) * 2003-11-08 2005-08-10 엘지전자 주식회사 3차원 다각형의 화면 표시방법
DE102004030709A1 (de) 2004-06-25 2006-01-19 Daimlerchrysler Ag Verfahren zur Bestimmung des Krümmungsverlaufs einer Wegstrecke
US20070018988A1 (en) 2005-07-20 2007-01-25 Michael Guthe Method and applications for rasterization of non-simple polygons and curved boundary representations
US8874477B2 (en) * 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
DE102007009640A1 (de) 2007-02-26 2008-09-04 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Hinterlegung von in digitalen Karten enthaltenen Fahrwegen
US8203552B2 (en) * 2007-08-30 2012-06-19 Harris Corporation Geospatial data system for selectively retrieving and displaying geospatial texture data in successive additive layers of resolution and related methods
US8044955B1 (en) 2007-08-31 2011-10-25 Adobe Systems Incorporated Dynamic tessellation spreading for resolution-independent GPU anti-aliasing and rendering
US8643644B2 (en) * 2008-03-20 2014-02-04 Qualcomm Incorporated Multi-stage tessellation for graphics rendering
US8762046B2 (en) * 2008-10-01 2014-06-24 Navteq B.V. Creating geometry for advanced driver assistance systems
JP5294313B2 (ja) * 2008-11-07 2013-09-18 Necシステムテクノロジー株式会社 ベジェ曲線描画装置、ベジェ曲線描画方法およびプログラム
US8284192B2 (en) * 2008-11-07 2012-10-09 Landworks, Inc. Polygon dissection in a geographic information system
US20100214294A1 (en) 2009-02-20 2010-08-26 Microsoft Corporation Method for tessellation on graphics hardware
US8373702B2 (en) 2009-05-15 2013-02-12 Stmicroelectronics S.R.L. System and method for adaptive tessellation of a curve
US8605085B1 (en) * 2009-10-15 2013-12-10 Nvidia Corporation System and method for perspective corrected tessellation using parameter space warping
DE102010048760A1 (de) 2010-09-17 2011-07-28 Daimler AG, 70327 Verfahren zur Erzeugung eines Straßenmodells
US20120330869A1 (en) * 2011-06-25 2012-12-27 Jayson Theordore Durham Mental Model Elicitation Device (MMED) Methods and Apparatus
US9224218B2 (en) * 2012-06-05 2015-12-29 Apple Inc. System and method for loading and rendering curved features in a map
US9275498B2 (en) * 2012-08-09 2016-03-01 Qualcomm Incorporated GPU-accelerated path rendering

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1147628A (zh) * 1995-05-29 1997-04-16 索尼公司 通过有限信息显示地图的导航装置
US20090030533A1 (en) * 2006-04-21 2009-01-29 Tac Ab Products, Device, and System for Controlling
WO2009032697A1 (en) * 2007-08-30 2009-03-12 Harris Corporation Geospatial data system for selectively retrieving and displaying geospatial texture data based upon user-selected point-of-view and related methods
CN103206957A (zh) * 2012-12-26 2013-07-17 辽宁师范大学 车辆自主导航的车道线检测与跟踪方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐东: "基于镶嵌的视点相关的几何细分实现", 《科技通报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111238505A (zh) * 2018-11-29 2020-06-05 沈阳美行科技有限公司 一种道路地图的道路线段描画方法、装置及相关系统
CN111238505B (zh) * 2018-11-29 2023-11-24 沈阳美行科技股份有限公司 一种道路地图的道路线段描画方法、装置及相关系统

Also Published As

Publication number Publication date
US9483872B2 (en) 2016-11-01
DE102014007914A1 (de) 2015-12-03
US20150348318A1 (en) 2015-12-03
JP2015225670A (ja) 2015-12-14
JP6009039B2 (ja) 2016-10-19
CN105320518B (zh) 2018-08-31

Similar Documents

Publication Publication Date Title
CN105320518A (zh) 使用硬件镶嵌对道路和路线进行图形表示
US9208601B2 (en) Computing plausible road surfaces in 3D from 2D geometry
KR101799945B1 (ko) 3차원 지도 묘화 시스템, 지물 데이터 생성 방법, 3차원 지도 묘화 방법 및 컴퓨터 판독가능한 기록 매체
EP1927954B1 (en) Terrain modeling based on curved surface area
EP2530433B1 (en) Method of generating a database for a navigation device
KR100520708B1 (ko) 3차원 지도의 표시방법
CN102692232B (zh) 数字地图中的路标
CN105336003A (zh) 结合gpu技术实时流畅绘制出三维地形模型的方法
US20120050285A1 (en) 3d building generalization for digital map applications
KR20000069744A (ko) 삼차원 지도표시장치 및 그것에 사용되는 데이터작성장치
US9835462B2 (en) System for determining a height coordinate
CN101872376A (zh) 真三维道路智能设计方法及系统
CN102692228A (zh) 数字地图中的地标图标
CN111047682B (zh) 一种三维车道模型生成方法及系统
KR20080032603A (ko) 디지털 지도에서 스트리트의 현실적인 높이 표현
JPH1165429A (ja) ナビゲーションシステムの立体地形表示方法、ナビゲーションシステム及び立体地形表示プログラムを記録した媒体
JP2004507723A (ja) 地図表現を得るための方法及びナビゲーション装置
KR20120122939A (ko) 데이터베이스 생성 방법, 네비게이션 장치, 및 높이 정보 판정 방법
Dyken et al. Simultaneous curve simplification
CN116402966A (zh) 一种三维地形可视化仿真建模方法
US20050116948A1 (en) Line clipping method and method for displaying three-dimensional image using the same
KR20070099298A (ko) 모바일 내비게이션용 3차원 형상정보 생성방법 및 장치
Trapp et al. Interactive Rendering and Stylization of Transportation Networks using Distance Fields.
CA2769363C (en) Navigation device, method of outputting a three-dimensional roof structure, and method of generating a database
CN111488411B (zh) 道路设施的构建方法以及装置、渲染方法、介质、终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant