首页> 中国专利> 二维矢量实线在三维场景中的视觉误差消除方法

二维矢量实线在三维场景中的视觉误差消除方法

摘要

本发明公开一种二维矢量实线在三维场景中的视觉误差消除方法,主要解决二维线状符号贴合渲染到三维地形表面过程中存在的矢量实线过细造成的断续消失现象、矢量实线边界的锯齿走样现象、矢量实线宽度不随场景缩放变化的现象等问题。包括如下主要步骤:根据矢量实线宽度对其面状化;利用投影反算方法计算屏幕像素在二维空间的覆盖范围;根据像素的二维空间覆盖范围与矢量实线面域的空间位置关系将像素进行分类,对与矢量实线的面域边界存在相交关系的这部分像素进行多重采样处理;判断采样点是否位于矢量实线的面域内部,根据判断结果决定采样点着色,利用采样点色彩混合值替换相应像素的屏幕色彩缓存值。

著录项

  • 公开/公告号CN105023288A

    专利类型发明专利

  • 公开/公告日2015-11-04

    原文格式PDF

  • 申请/专利权人 南京大学;

    申请/专利号CN201510402203.8

  • 申请日2015-07-09

  • 分类号

  • 代理机构南京苏高专利商标事务所(普通合伙);

  • 代理人孟红梅

  • 地址 210023 江苏省南京市栖霞区仙林大道163号

  • 入库时间 2023-12-18 11:38:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-05

    授权

    授权

  • 2015-12-02

    实质审查的生效 IPC(主分类):G06T15/00 申请日:20150709

    实质审查的生效

  • 2015-11-04

    公开

    公开

说明书

技术领域

本发明涉及计算机应用、计算机图形学和地理信息技术领域,具体涉及在渲 染过程中减少或消除二维矢量实线在三维场景中的视觉误差以及失真现象的算 法,在确保二维矢量实线与三维地表之间相互拓扑关系表达的准确性和严密性基 础上,提升三维地理信息系统使用者的视觉观感,增强三维场景中地图符号对地 理现象的选择性的抽象增强表达能力,使其欲传达的重点信息内容更为准确和突 出。

背景技术

由Mikael Vaaraniemi等人于2011年在《High-Quality Cartographic Roads on  High-Resolution DEMs》(高分辨率DEM基础上的高质量道路符号渲染)中提出, 二维矢量要素在三维地表的贴合渲染算法从原理上分为三类:基于纹理映射的渲 染方法、基于几何插值的渲染方法和基于屏幕空间的渲染方法。

其中,基于纹理映射的渲染方法思想是将矢量数据通过实时或者预处理的方 式栅格化到一张二维图像上,然后将其作为标准纹理直接映射到地形表面,此类 方法受地形精度限制很容易出现严重走样现象;基于几何插值的渲染方法思路是 为二维矢量建立三维模型,使其与地形的精确几何匹配,此类方法在地形细节层 次(Level Of Detail,LOD)变换时很可能出现矢量悬浮、穿刺于地表的不真实 现象;基于屏幕空间的渲染方法本质上是逐一处理显示设备屏幕上所有的像素, 判断其应该显示地形、矢量或其他要素(背景,模型等)的颜色,而达到矢量紧 密贴合在地表的视觉效果,此类方法相比前两种具有渲染精度高达一个屏幕像素, 不会出现严重走样或悬浮穿刺等渲染误差,以及实时渲染效率不受地形模型大小 与复杂度影响等优点。

目前为止,基于屏幕空间的渲染方法主要有两种,分别是基于模板阴影体的 渲染方法和基于屏幕空间投影反算的渲染方法。该类方法的在高渲染精度和独立 于地形模型这两点上较纹理、几何方法更为先进。

●基于模板阴影体的渲染方法

Schneider和Klein(2007)在文章“Efficient and accurate rendering of vector  data on virtual landscapes”(一种将矢量精确渲染到虚拟地表的方法)中提出了结 合阴影体算法(Stefan Brabec and Hans-peter Seidel,2003)和模板缓存技术 (OpenGLTM,https://www.opengl.org/)的模板阴影体方法。

该方法核心思想是将矢量符号通过正射投影在三维地形表面生成的阴影,并 将该阴影范围当作矢量的贴合渲染结果。具体实现步骤有三步:首先将面状化的 矢量数据沿垂直投影方向扩展为多面体;然后利用生成的多面体通过阴影体算法 在模板缓存中生成掩模;最后将掩模添加到三维场景中,完成代表相应矢量数据 的屏幕像素着色。在第二步中,作者通过逐像素中心的光线投射判断与地形表面 交点是否处在步骤一生成的阴影体内部,以此决定掩膜中的像素颜色。然而,仅 凭像素中心点判断难以准确反馈像素内的矢量分布情况,尤其当矢量线要素宽度 小于一个像素时,易发生矢量线断续、消失的现象,影响抽象化地理现象的认知 与区分。同时,矢量边缘还会发生一个像素的锯齿走样现象,影响视觉观感。另 外,将矢量扩展成多面体大大增加了需要处理的数据量与数据复杂度,使光线投 射和碰撞检测效率下降,在原始矢量数据达到一定规模后运行效率变得很低。

●基于屏幕空间投影反算的渲染方法

佘江峰等人在已公开发明专利“矢量实线与三维地形的并行贴合渲染方法” (CN104318605A)中提出基于屏幕空间投影反算的渲染方法。

该方法的核心思想是,将计算机图形学中基本的三维场景屏幕投影过程反向, 逐一计算屏幕像素在二维矢量平面的投影范围,判断与矢量要素的位置关系来决 定着色。具体步骤为:检测地形轮廓线并剔除轮廓线上可能会被误判的像素;为 矢量数据建立空间索引;将屏幕像素通过当前视点位置及相机参数逐一计算出其 在三维地表的覆盖范围,再通过正射投影得到其在二维矢量平面的覆盖范围,若 相交,则将该像素色彩值替换为矢量颜色;利用形态学方法对线要素加宽;对地 形和矢量进行深度测试,并保留深度值小的色彩值进行屏幕渲染。在第三步中, 像素(i,j)四角点由(i,j)(i+1,j)(i,j+1)(i+1,j+1)四个像素中心点替 代,来避免投影反算过程产生的叠置与缝隙,渲染结果精度高且贴合紧密。然而, 该方法采用的矢量线宽度不随场景缩放实时变化,对于固定线宽的地图矢量线是 适合的,但不适合表达依场景缩放而变化线宽的矢量线,且矢量要素边缘存在的 锯齿走样现象没有被解决。另外,基于CPU-GPU协作的并行异构计算模式仍存 在性能提升的空间。

发明内容

发明目的:针对现有的若干种基于纹理的、几何插值的渲染技术和两种基于 屏幕渲染技术存在的不足,本发明旨在提供一种新的优化算法,将二维矢量实线 在三维地形表面进行贴合渲染过程中存在的悬浮、穿刺、走样、断续、失真等所 有可能出现的视觉误差予以消除,在抽象表达地理现象的基础上最大程度地贴近 真实,优化用户视觉观感。

技术方案:为实现上述发明目的,本发明采用如下技术方案:

一种二维矢量实线在三维场景中的视觉误差消除方法,可以通过优化的CPU +GPU异构计算方式实现包含二维矢量实线符号的三维地理场景并行渲染过程, 包括如下步骤:

第一步:根据矢量实线宽度,对其进行面状化处理,生成矢量实线的面域;

第二步:利用投影反算方法计算各个屏幕像素在二维矢量平面上的投影覆盖 范围;

第三步:根据像素在二维矢量平面上的投影覆盖范围与矢量实线面域的空间 位置关系将像素分类,包括“与矢量实线面域的边界相交”,位于“矢量实线面 域的内部”和位于“矢量实线面域的外部”三类;

第四步:对于“与矢量实线面域的边界相交”的像素,在其投影覆盖范围内 进行多重采样,根据每个采样点与矢量实线面域的位置关系得到各采样点的色彩 值,利用采样点色彩混合值替换像素的色彩值;

第五步:对于位于“矢量实线面域的内部”的像素,用矢量实线的色彩替换 该像素色彩;对于位于“矢量实线面域的外部”的像素,不做色彩修改。

所述第一步中的对矢量实线进行面状化处理的方法,包括如下步骤:

(1.1)根据矢量实线宽度,在二维平面内生成位于矢量线两侧与其等长的 平行线,为每根平行线生成指向该矢量线的法向量;

(1.2)延长或打断平行线确保每根线段首尾相连;

(1.3)将两侧平行线封闭成多边形,并为封闭线也生成法向量。

所述第四步中,具体包括如下步骤:

(4.1)对于“与矢量实线面域的边界相交”的像素,将与其相交的所有矢 量实线面域的边界线段保存在为该像素建立的“相交折线列表”中;

(4.2)将该像素在二维矢量平面内的不规则投影覆盖范围作为采样空间, 使用二维线性插值计算出多个均值采样点的二维坐标;

(4.3)对于每个采样点,根据采样点二维坐标及所对应的像素的“相交折 线列表”判断该采样点是否位于矢量实线面域的内部,若在,该采样点的色彩值 设为矢量色彩值,若不在,该采样点的色彩值为对应像素色彩缓存中的原始色彩 值;

(4.4)将像素对应的各采样点的色彩值求平均,得到像素的色彩值。

所述步骤(4.3)中的判断采样点是否位于矢量实线面域的内部时,首先, 遍历采样点所属像素的“相交折线列表”,排除列表中采样点到折线的垂足点位 于折线延长线上的“不相关”折线;然后,对“相交折线列表”中排除了“不相 关”折线后的“相关”折线进行遍历,判断采样点是否位于矢量实线面域的内部。

本发明的创新点在于:对三维场景中线状要素进行面状化处理,形成视觉等 价的封闭多边形(即矢量实线面域),使其宽度可以随场景缩放而变化,更具实 际感受,使得在具有基于屏幕渲染方法的共性特征“矢量在三维地形表面没有悬 浮、穿刺现象”的基础上,还消除了其他基于屏幕的方法可能产生的“矢量边缘 的走样现象”;本发明具有高于一个屏幕像素的渲染精度;并且通过一个适应算 法本身的采样点与像素空间关系的判断过程,去除了不必要的计算操作,提高了 渲染性能。

本发明方法通过投影反算得到屏幕像素在二维矢量平面内的覆盖范围,并在 此范围内进行多重采样,尽可能地保留了像素内部的矢量分布信息,避免了因中 心点单一采样所造成的矢量信息被忽略(这是造成细线断续现象的关键原因)或 相邻像素间色彩没有过渡(这是造成线边缘锯齿走样现象的原因)的不合理效果。

考虑到如果采用直接在屏幕上进行多重采样的做法,各个采样点会共享所属 像素的单一深度值(这与实际情况不符,因为各个采样点的空间位置不同,其深 度也不同),投影反算到二维矢量平面后会发生空间位置的偏移,造成采样不准, 因此,方法将采样空间由屏幕转换到二维矢量平面,采用二维线性插值的方法计 算像素不规则投影范围内的采样位置。

考虑到二维矢量线的数量实际上是有限的,其在屏幕上的空间覆盖度也是有 限的,如果将多重采样应用到所有的屏幕像素,计算量会非常大,交互性能将大 大降低。因此,在二维矢量平面内,根据矢量实线面域与投影反算后的各个屏幕 像素范围的空间位置关系,将屏幕像素分成三类:位于矢量范围以外,位于矢量 范围以内,与矢量边缘相交;前两类像素的处理比较简单直接,算法重点是识别 和处理第三类像素,以消除矢量线断续和走样现象,如此大大减少了不必要的计 算性能消耗。

基于屏幕渲染方法的实时交互过程,在相同的硬件条件下,其性能并不受地 形模型大小及其LOD复杂程度的影响,仅受矢量数据大小影响。因此,尽量减 少实时渲染中对矢量数据的遍历次数可以有效提升性能。在本发明中,要获得各 个像素与像素内各个采样点与矢量线的位置关系信息,仅需对整个矢量遍历一次, 具体做法是为每一个需要多重采样的像素构建“相交折线列表”,将各个采样点 着色判断所需要的共性信息(与像素相交的矢量实线面域的边界及其法向量等) 缓存下来,以此避免对所有矢量要素的重复处理以及遍历。对于像素的每个采样 点,在列表中找出该点在折线上的垂足位于折线范围内的这一类折线,这些折线 称为“相关”折线,根据其指向矢量实线面域内部的法向量可以判断采样点是否 位于矢量实线面域范围内,据此可以决定采样点色彩值,而像素色彩值则可以根 据该象素内的多个采样点进行色彩值的平均得到。

综上,本发明具有如下优点:

1、本发明通过对屏幕投影反算到二维矢量平面的像素覆盖范围进行多重采 样,尽可能地避免现有方法中使用的单一中心采样所造成的视觉误差,是一种在 理论基础与技术路线上都有创新的矢量要素的屏幕渲染优化算法;

2、与现有技术相比,使用本发明方法渲染得到的矢量实线在三维地表的贴 合更为紧密,有效消除了悬浮、穿刺、断续现象,同时也消除了矢量边缘的走样 现象,并使得矢量的宽度可以随着场景缩放而实时变化;

3、矢量的渲染精度可以达到高于一个屏幕像素;

4、本发明使用了一个适合算法自身的方法来判断采样点是否位于矢量实线 面域的内部,该方法减少了对矢量实线的遍历次数,降低了矢量数据集大小对基 于屏幕的矢量渲染方法性能的负面影响,加快了实时交互性能。

附图说明

图1为本发明方法的总体流程图;

图2为基于实际宽度的矢量实线面状化过程示意图;

图3为基于“屏幕像素投影反算”的优化算法原理示意图;

图4为多重采样方法消除断续走样现象示意图;

图5为采样点是否位于矢量实线面域的内部的快速判断方法示意图;

具体实施方式

下面结合具体实例,进一步阐述本发明,应理解这些实例仅用于说明本发明 而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的 各种等价形式的修改均落于本申请所附权利要求所限定的范围。

如图1所示,本发明实例公开的一种二维矢量实线在三维场景中的视觉误差 消除方法,主要步骤如下:

第一步:读取地形、矢量数据,并对矢量线根据其宽度进行面状化处理。相 比没有宽度的矢量线符号,具有宽度的面状化矢量线对三维场景中道路、水系等 表达更容易形成具象感受,其宽度可随场景缩放而变化,与地形的视觉贴合感更 为强烈。

图2为矢量线面状化的具体过程。对于一条矢量实线(如2a所示),根据其 实际宽度,先计算生成位于矢量实线各个线段两侧的平行线段(如图2b所示); 打断或延长相邻折线段保证其首尾连接(如图2c所示);为每条已生成两侧边缘 的矢量线,连接两侧边缘保证其封闭性(如图2d所示);为每条折线生成指向封 闭多边形内部的法向量(如图2e所示);为每条边缘折线构建包围盒,对超过指 定长度的折线进行破碎化以便建立比较均匀的空间索引,加快矢量遍历过程。

第二步:计算屏幕像素在二维矢量平面内的投影覆盖范围。此类计算方法具 有多样性,此处采用佘江峰等人在已公开发明专利“矢量实线与三维地形的并行 贴合渲染方法”(CN104318605A)中使用的计算屏幕像素在二维平面上的投影 范围的方法。这是为避免像素四角点采用单深度值计算三维坐标造成的误差,而 采用像素(i,j)(i,j+1)(i+1,j)(i+1,j+1)的四个中心点代替像素(i,j)的四角 点,并通过当前视点位置和相机参数计算像素在二维矢量平面内的不规则覆盖范 围。后续步骤中的多重采样将在该范围内进行(如图3所示)。

第三步:根据矢量实线面域与像素投影范围的空间位置关系对像素进行分类。 首先,对于像素的投影到二维矢量平面的不规则四边形,利用四叉树索引和最小 包围盒技术遍历整个矢量面域,判断其是否与某些面域边缘相交,据此将像素分 成三类:位于矢量面域的内部、位于矢量面域的外部、与矢量面域的边缘相交。 算法仅需要对上述第三类像素进行多重采样优化,因为仅有这类像素会使渲染结 果产生断续和走样现象。图4为本算法中多重采样消除断续和走样的原理及其预 期效果。如图所示,4a为一条宽度小于一个像素的待渲染的矢量实线,4b、4c 为传统中心采样方法的渲染结果,产生了明显断续,而4d-4f为本算法的过程, 仅将4d中分类为“P”的像素进行多重采样,得到的结果中,断续、走样现象可 被消除。

第四步:对“与矢量实线面域的边界相交”的这部分像素点(即4d中所示 的“P”类像素)进行多重采样。由于投影到二维矢量平面的像素覆盖范围是不 规则四边形,所以算法需要使用二维线性插值的方法在不规则四边形内生成均值 采样点,保证采样点均匀分布。

在第三步分类中,将与各像素投影范围相交的矢量实线面域的边界线段保存 在为对应像素建立的“相交折线列表”中,以在判断采样点是否位于矢量实线面 域内部时,避免对所有矢量进行重复遍历。列表中每一条折线需要储存其两点的 二维位置信息和指向面域内部的法向量信息。

对于每个采样点,算法根据其是否位于矢量实线面域内部,决定该点的色彩 值。本算法制定了一套快速判断方法,仅依据采样点二维坐标及其所在像素的 “相交折线列表”即可得出采样点是否位于矢量实线面域内部,而无需对所有矢 量进行多次的重复遍历。具体分为如下两步:

a.在“相交折线列表”中排除与采样点“不相关”的折线;

b.根据“相交折线列表”中其它折线的法向量判断采样点是否位于矢量实 线面域内部。

上述a、b步骤计算过程均以实例说明。如图5a所示,对于一个与矢量实线 面域的边界相交的屏幕像素P,其在二维矢量平面内的投影范围为P’,S为P’由 二维线性插值得到的一个均值采样点,AB为其“相交折线列表”中的一条折线, n为AB指向矢量面域内部的法向量。

上述a步骤中,“不相关”的定义规则为采样点在折线上的垂足位于折线的 延长线上(即不在折线范围内)。这种情况下,折线只是与像素相交,而并不会 对采样点的位置判断有所贡献,将这部分折线预先排除,可减少b步骤的计算量, 且不会导致判断结果的错误。如图5b所示,H为S在AB上的垂足点,计算AB 和HS所在直线交点,判断其是否在AB范围内:

k1=nynx,k2=y2-y1x2-x1,b=x1(y3-y2)+x2(y1-y3)+x3(y2-y1)x2-x1

Δx=-bk2-k1

上述步骤b,在步骤a排除部分折线后对剩余折线进行。先为采样点定义一 个“特征值”FLAG,用来判断多条折线与采样点“相关”的情况。计算向量SA 与SB的向量和SD,利用余弦定理计算出向量SD与法向量n的夹角余弦值,如 果该值为正,则FLAG减一,如果为负,则FLAG值加一。

ifΔx(x1,x2)cosθ>0,FLAG-1ifΔx(x1,x2)cosθ0,FLAG+1

根据FLAG值的正负返回该点色彩值,若FLAG大于0,该采样点返回所在的 矢量色彩值;若小于等于0,返回像素在色彩缓存中的原值。

第五步,将第四步处理好的“与矢量面域边缘相交”的像素中的各采样点的 色彩值求平均,并用以替换屏幕色彩缓存中对应像素的色彩值。对于那些完整落 在矢量面域范围内的像素,直接将该像素色彩缓存值替换为矢量色彩;对于那些 与矢量面域不存在相交关系的像素,不做任何处理。整个屏幕判断完成后将新的 色彩缓存在屏幕上显示出来,则完成了包含二维矢量实线的三维场景渲染过程。

在优化算法的整个实现过程中,针对每个像素进行的计算过程具有同质性和 可分块性,可以采用GPU并行的计算方式提升算法的运行效率,因此在系统架 构方面采用了CPU+GPU异构计算模式(如图1)。特别地,对于同一像素内各 个采样点的判断和计算过程也具有同质性,因此算法采用CUDATM的 GRID-BLOCK-THREAD三层架构来进行多层次的并行计算:像素操作(第二步 和第三步)放在了多个GRID和BLOCK中同时进行,而采样点操作(第四步) 放在多个THREAD中同时进行。经试验,该基于CUDATM三层架构的CPU-GPU 并行异构计算模式将该算法的运行效率提升到了三维可交互的水平。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号