矢量实线与三维地形的并行贴合渲染方法

文档序号:6631235阅读:454来源:国知局
矢量实线与三维地形的并行贴合渲染方法
【专利摘要】本发明公开一种二维矢量实线在三维地形表面的贴合渲染方法,将二维矢量实线的展示空间从二维平面向三维不规则面拓展,使三维地理信息系统兼具真实感具象以及空间规律抽象的表达能力。与现有技术相比,本发明基于屏幕空间向二维空间的投影反算方法,独立于所使用的地形模型,可有效消除矢量线在三维地形表面的悬浮、穿刺、断续现象,渲染精度高,并采用并行计算方法提升了渲染性能。方法包括如下主要步骤:排除不需要做着色调整的像素;为矢量实线建立空间索引;利用空间投影反算方法计算屏幕像素的空间覆盖范围,并据此判断像素是否与二维矢量实线相交,如相交则修改像素着色;对矢量生成线宽效果;对矢量生成随视距变化的色彩渐变效果。
【专利说明】矢量实线与三维地形的并行贴合渲染方法

【技术领域】
[0001]本发明涉及计算机应用、计算机图形学和地理信息【技术领域】,具体涉及一种二维矢量实线在三维地形表面的并行贴合渲染方法,可将二维矢量实线渲染于三维地形表面,将二维矢量实线的展示空间从二维平面向三维不规则面拓展,使得三维地理信息系统兼具对地形的真实感表达以及对线形空间规律的抽象表达能力,增强其在交互过程中的可读性。

【背景技术】
[0002]由 11匕61 ^881-811161111 等人在《!!1 办-0此110^1:0^1-81)1110 1^08(18 011曲46801此1011 0218》(高分辨率021基础上的高质量道路符号渲染)中提出现有二维矢量要素在三维地形表面的贴合渲染算法大体分为三类:基于纹理映射的渲染方法、基于几何映射的渲染方法以及基于模板阴影体的渲染方法。
[0003]籲基于纹理映射的渲染方法
[0004]此类方法的核心思想是将矢量数据通过实时或者预处理的方式栅格化到一张二维图像上,然后将其作为标准纹理直接映射到地形表面,从而保证矢量数据与地形的无缝贴合。
[0005]该方法通过预先计算生成静态纹理的方法,可以获得较高的渲染精度,但会占用大量存储空间,因而需要在存储空间与渲染质量之间寻求平衡。由于只能生成有限分辨率层次的纹理,在大场景缩放过程中,矢量数据的绘制精度受限,出现比较严重的走样现象。基于纹理映射的方法在碰到陡坡地形时,平面二维矢量在栅格化之后由于不能自动调整分辨率会被局部地形的陡然拉伸造成不合理变形。此外,有限的纹理分辨率层次也会造成在场景缩放时与地表的不完美匹配。
[0006]籲基于几何映射的渲染方法
[0007]此类方法的关键是实现二维矢量与三维地形的精确几何匹配,适应地形三角网结构以及细节层次技术仏6^61 0? 06仏11,100)的数据组织方式,以避免出现矢量数据悬浮于空中或者穿插地表等不合理情况。
[0008]基本的解决方法是通过动态计算矢量要素经过路线所涉及的地表坡度拐点,并据以在矢量数据中引入对应的新顶点或建立新线段,以实现矢量要素随着地形坡度变化的同步起伏。对于矢量要素起伏特征点的寻找极度依赖地形表达模型,且非常难以做到任何尺度下的精确匹配,容易出现矢量要素断续、悬浮在共面图元之上,或者淹没于共面图元之下等现象。在预处理阶段将矢量数据集成到地形[00模型中的方法(即针对地形的每个细节层次创建一个与之相对应的矢量几何模型)会导致数据量的显著增加。
[0009]籲基于模板阴影体的渲染方法
[0010]为解决纹理映射方法渲染走样问题,同时避免几何映射方法对地形模型的依赖,
3(:111161(161'矛口 1(16111 在“16111: 811(1 800111~81:60? 乂6〇1:01~ (13,13, 011
(一种将矢量精确渲染到虚拟地表的方法)中提出了基于阴影体算法和模板缓存技术的模板阴影体方法。
[0011]方法核心思想有三步:首先将矢量数据沿垂直投影方向扩展为多面体;然后利用生成的多面体通过阴影体算法在模板缓存中生成掩模;最后将掩模添加到三维场景中,完成代表相应矢量数据的屏幕像素着色。此方法对宽度为1个像素的实线要素的渲染有局限性,且算法需要对矢量扩展而成的多面体绘制2遍,会较大程度上影响数据的实时显示。若三维场景中深度值变化范围很大,则会导致远处矢量线的宽度与距离视点近的位置差别明显。若保留远处矢量线渲染效果,则近处矢量线会失真;若保证近处矢量线渲染效果,则远处矢量线会断续。


【发明内容】

[0012]发明目的:针对现有技术存在的不足,本发明旨在提供一种将二维矢量实线在三维地形表面进行贴合渲染的方法,在能够消除矢量在三维地形表面的悬浮、穿刺、断续等现象的同时,具有贴合紧密、精度高等特点。
[0013]技术方案:为实现上述发明目的,本发明采用如下技术方案:
[0014]一种矢量实线与三维地形的并行贴合渲染方法,该方法通过0^+0^异构计算方式完成图像的并行渲染,包括如下步骤:
[0015]第一步:检测渲染图像中的地形轮廓线,为其邻域内会引起误判的像素建立一个“避免着色像素表”,针对该表中的像素将不作着色修改,后续步骤中的计算或处理均不针对该表中的像素进行;
[0016]第二步:为二维矢量实线建立空间索弓丨,以提高后续步骤中空间关系的判断性倉泛;
[0017]第三步:建立一个与屏幕大小相同的“矢量着色缓冲区”,以暂存矢量着色效果;
[0018]第四步:针对每一个屏幕像素(不含“避免着色像素表”中的像素),利用空间投影反算方法,获得其在二维矢量平面的覆盖范围,判断该范围是否与某二维矢量实线相交(利用第二步中的空间索引提升判断性能)。如像素与某矢量实线存在相交现象,则将“矢量着色缓冲区”中该像素的色彩用该矢量线的色彩取代。
[0019]第五步:利用形态学方法对“矢量着色缓冲区”中的线状要素进行线宽设置;
[0020]第六步:将“矢量着色缓冲区”与原屏幕着色缓冲区作加权融合,像素深度较小的以矢量着色为主,像素深度较大的以原屏幕着色为主。
[0021]本贴合渲染方法的创新点在于:方法不依赖于任何地形模型,仅与地形在屏幕空间的渲染效果以及二维矢量在二维空间的分布有关;方法可有效消除矢量在三维地形表面的悬浮现象、矢量与三维地形表面的穿刺现象、矢量在三维地形表面的渲染断续现象,并具有一个像素的渲染精度;方法通过采用0^+0^的异构计算模式提高渲染性能。
[0022]方法通过投影反算,获得屏幕像素在二维空间的覆盖范围,进一步判断此范围是否与某二维矢量实线相交,如存在相交现象,则通过用矢量色彩与原屏幕像素色彩的加权融合来获得该像素的最终着色。特别地,方法考虑地形起伏的影响:在屏幕上处于地形轮廓线远侧的那一行像素,其投影反算获得的空间覆盖范围,在覆盖了可见区域的同时,也覆盖了轮廓线背后的不可见区域(如山脊线后的谷地),因此,该像素与矢量实线的空间关系判断结果很可能是有误的,不能用于指导该像素的着色处理,针对这一部分像素建立“避免着色像素表”,对屏幕像素的着色判断排除这部分像素,对最终渲染视觉效果没有影响。
[0023]进一步地,根据需要对“矢量着色缓冲区”中的矢量线作形态学膨胀处理,形成线宽效果。依据像素深度调整“矢量着色缓冲区”与原屏幕着色缓冲区融合的权重比例,像素深度较小的以矢量着色为主,像素深度较大的以原屏幕着色为主,形成具有距离感的色彩渐变效果。
[0024]由于屏幕像素的处理方法具有很高的同质性,上述过程通过0^+0^异构计算方式实现并行处理,整个过程的性能得到很好的提升。其中,0^负责处理串行计算部分,负责处理并行计算部分。并行计算部分包括地形轮廓线的检测及处理、屏幕像素覆盖范围的计算、像素的着色判断、基于形态学运算的线宽处理以及颜色渐变处理。
[0025]方法第一步中的地形轮廓线的检测方法以及“避免着色像素表”的建立方法如下:
[0026]8.构造地形轮廓线的检测算子,将其与图像进行卷积运算;
[0027]匕将超过设定阈值的卷积运算结果所在像素位置标记为轮廓线;
[0028]0.将轮廓线远离视点方向的一行像素点加入“避免着色像素表”。
[0029]方法第二步中的矢量空间索引的建立流程如下:
[0030]8.将矢量实线分解成线段;
[0031]匕建立线段集合的空间索引。
[0032]方法第四步中像素与二维矢量实线的关系判断及“矢量着色缓冲区”处理方法如下:
[0033]£1.针对像素用(1, 1、(1, ^+1) ? (1+1, ? (1+1, ^+1)四个像素的屏幕坐标以及深度值反算获得一个空间四边形,用该四边形在二维平面上的投影范围表示像素(1,的覆盖范围;
[0034]匕利用像素(1,的覆盖范围与二维矢量线段作空间关系判断(利用第二步中建立的矢量空间索引提高空间关系判断性能),如像素(1,的覆盖范围与某二维矢量线段相交,则将“矢量着色缓冲区”中该像素的色彩用该线段的色彩取代;
[0035]0.针对所有屏幕像素(不含“避免着色像素表”中的像素)重复⑷至㈦步骤。
[0036]有益效果:与现有技术相比,本发明具有如下优点:
[0037]1、本方法不依赖于于三维地表模型,通过从屏幕空间向二维矢量平面空间的投影反算逐一判断屏幕像素的空间范围内是否有二维矢量实线经过,据此确定屏幕像素的最终着色,是一种不同于现有几种方案理论基础与技术路线的创新方法;
[0038]2、与现有方法相比,矢量在三维地表的贴合紧密,完全消除悬浮、穿刺和断续现象;
[0039]3、矢量的渲染精度可以达到一个屏幕像素;
[0040]4、使用并行计算方法加快矢量贴合渲染的性能,降低对三维场景实时交互性能的负面影响。

【专利附图】

【附图说明】
[0041]图1为本发明方法的总体流程图;
[0042]图2为轮廓线附近像素覆盖范围的混淆性示意图;
[0043]图3为地形轮廓线检测方法的示意图;
[0044]图4为屏幕像素覆盖范围的示意图;
[0045]图5为利用形态学运算改变线宽的示意图;

【具体实施方式】
[0046]下面结合具体实例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0047]如图1所示,本发明实例公开的一种矢量实线与三维地形的并行贴合渲染方法,主要步骤如下:
[0048]第一步:检测渲染图像中的地形轮廓线,为其邻域内会引起误判的像素建立一个“避免着色像素表”,针对该表中的像素将不作着色修改,后续步骤中的计算或处理均针对该表之外的其它屏幕像素进行。
[0049]图2中,屏幕上的矢量面8’ 2’代表地形表面范围8⑶2的区域,这带来了八’ 8’ 2’是一段连续山坡的视觉错误。实际情况是,屏幕上的八’ 8’和8’ 2’分别代表了彼此不相连的两个区域:仙和02。如果有一条矢量线穿过地形表面范围803的区域,而不是02,这根矢量实线不应该在屏幕上展示,如果像素1被渲染成矢量的颜色,就会造成一种错觉,即这条矢量线并未被山体遮挡。因此,对于轮廓线远侧的一行像素,不可进行像素着色的修改调整。为达到此目的,需要针对这一类型的像素建立“避免着色像素表”,对屏幕像素的着色调整应排除这部分像素。
[0050]轮廓线的检测算法大体可分为基于图像空间的算法和基于对象空间的算法两大类,两种算法都可以应用于本方法,此处采用基于图像空间的算法作为示例进行说明。基于图像空间的算法核心思想是:构造边缘检测算子,通过与图像进行卷积运算,实现对相邻像素深度值的比对,设置合理的阈值(经过测试,阈值可设定为0.009?0.011,此范围内取值可有效消除误判像素),将超过阈值的卷积运算结果所在像素位置标记为轮廓线。
[0051]第二步:为二维矢量实线建立空间索引,以提高后续步骤中空间关系的判断性能。
[0052]在判断像素是否与某矢量相交时,如果针对矢量存在一个空间索引,可极大地提升判断过程的性能。常见的空间索引技术有网格空间索引、四叉树空间索引和I?-树索引。上述三种空间索引可以提高矢量实线的筛选性能,都可以应用于本方法,这里采用四叉树索引作为示例。对于跨度较大的矢量实线,由于其整体包围盒矩形覆盖范围很大,会降低空间索引的空间过滤作用,因此统一地将矢量实线分解成线段的集合,像素与矢量线的相交判断则变成像素与线段的相交判断。由于每个线段的包围盒矩形都很小,利用线段的空间索引可以显著地提高空间搜索的效率。
[0053]矢量空间索引的建立流程如下:
[0054]8.将矢量实线分解成线段;
[0055]匕建立所有线段的空间索引。
[0056]第三步:建立一个与屏幕大小相同的“矢量着色缓冲区”,以暂存矢量着色效果。
[0057]“矢量着色缓冲区”的建立是为了暂时保存那些需要修改着色效果的像素,其初始状态为“无着色”,那些具有矢量经过的那些像素被记录在该“矢量着色缓冲区”中,其颜色为对应的矢量的颜色。在像素遍历处理完成之后,将该“矢量着色缓冲区”与原屏幕着色缓冲区进行融合(“屏幕着色缓冲区”中对应于“矢量着色缓冲区”中“无着色”像素的那些像素不需要融合),获得最终的屏幕着色效果。
[0058]第四步:逐一针对屏幕像素(不含“避免着色像素表”中的像素),利用空间投影反算方法,获得其在矢量平面的覆盖范围,判断该范围是否与某矢量线段相交(利用第二步中建立的空间索引可以显著提升性能如像素与某一矢量线段相交,则将“矢量着色缓冲区”中该像素的色彩用该矢量线段的色彩取代。
[0059]本步骤中获得屏幕像素二维空间覆盖范围的方法如下:
[0060]设屏幕中的显示设备坐标为其在三维场景中的世界坐标为恥!'摄像机的观察矩阵6艰此廿匕)为VI,投影变换矩阵此廿匕)为?1,视口变换矩阵(1111(10?为丽。则像素对应的世界坐标的计算公式如下:
[0061]^01-1(10001-(1 = 1111(10 界 0301(1 X 1鮮61~86—乂?胃
[0062]注是V??的逆矩阵,V?!的计算公式如下:
[0063]V??: 71X01XII
[0064]矩阵运算过程中需要注意的是,由于为世界坐标系中的三维坐标向量(乂界,…,2?),因此也必须为三维向量〈X,7,2),其中(1,7)为屏幕像素的平面位置,2则取像素所在位置的深度缓存值。
[0065]像素屏幕坐标及其深度缓存表示每个像素中心的窗口坐标信息。单个屏幕像素可以看成是一个边长固定的微小正方形。对屏幕上的像素(丨,』),可用(丨,(1, ^-+1) ?(1+1, ? (1+1,^+1)四个像素的屏幕坐标及其深度值反算获得一个空间四边形,用该四边形在二维平面上的投影范围表示像素(1, 1在二维平面的覆盖范围;利用像素(1,的覆盖范围与二维矢量线段作空间关系判断(利用第二步中建立的空间索引提高空间关系判断效率),如像素(1,的覆盖范围与某二维矢量线段相交,则将“矢量着色缓冲区”中该像素的色彩用该线段的色彩取代;针对所有屏幕像素(不含“避免着色像素表”中的像素)重复这一过程。
[0066]第五步:利用形态学方法完成“矢量着色缓冲区”中线状要素的线宽设置。
[0067]“矢量着色缓冲区”中保存的像素代表矢量在三维场景中的可见部分,这些可见部分将被贴合在三维地形表面。对这一部分矢量来说,如存在大于一个像素的宽度,可采用数学形态学运算中的膨胀处理方法生成超过一个像素的线宽效果。但是要特别注意的是,此处的膨胀是在垂直于视线方向的屏幕空间上展开,而不是在地形表面展开,膨胀程度不宜过大。由于二维矢量线的线宽表达与真实情况不成比例,一般用几个像素即可达成目标,所以采用这种方法可以用很小的计算量达到期望的视觉效果。
[0068]第六步:将“矢量着色缓冲区”与原屏幕着色缓冲区作加权融合。
[0069]根据人眼的视觉特性,三维场景的观察在距离较近时比较清晰,距离较远时比较模糊。因此,针对矢量线距离观察点的远近应考虑渲染效果的差异,避免生硬贴合。
[0070]在对屏幕像素着色效果进行最终融合时,将像素的深度缓存值作为权重影响因子引入,为远近不同的矢量线渲染结果赋予高低不同的融合权重,对于较近的像素来说,“矢量着色”的比重较大,对于较远的像素,“矢量着色”的比重较小;此外,对于超过一个像素宽的矢量线,也可以考虑将线宽随着深度的加大而渐渐缩至1个像素宽。此处理迎合了人眼的视觉特性,使得渲染结果具有距离感,更加自然。
[0071]在算法的整个实现流程中,涉及屏幕像素计算的步骤很多,如果采用单一的0^串行计算,渲染时间将十分漫长。鉴于渲染过程中针对每个像素进行的计算过程具有同质性和可分块性,采用并行的计算方式提升算法的运行效率,因此在系统架构方面采取0^+0^异构模式。
[0072]0^+0^并行异构计算方式充分发挥0^处理复杂逻辑问题的优势,以及通用并行计算的能力,并通过对屏幕空间进行合理的分块进行并行处理,显著提升了渲染性能。串行计算部分由0^负责处理,以数据和场景的初始化,以及复杂逻辑运算为主。包括地形数据和矢量数据的加载、数据组织及空间索引的构建、地形场景的渲染、人机交互的响应、颜色及深度缓存的获取、相机变换矩阵的获取等部分。并行计算部分由负责处理,以相互独立且数量庞大的简单计算及逻辑判断为主。包括地形轮廓线的检测、屏幕像素覆盖范围的计算、像素的着色判断、基于形态学运算的线宽处理、颜色渐变处理、颜色缓存的融合更新等部分,几乎包含了本方法的所有核心计算过程,也是本方法的主体部分。
【权利要求】
1.一种矢量实线与三维地形的并行贴合渲染方法,其特征在于,包括如下步骤: 第一步:检测渲染图像中的地形轮廓线,为其邻域内会引起误判的像素建立一个“避免着色像素表”,针对该表中的像素将不作着色修改,后续步骤中的计算或处理均不针对该表中的像素进行; 第二步:为二维矢量实线建立空间索引,以提高后续步骤中空间关系的判断性能; 第三步:建立一个与屏幕大小相同的“矢量着色缓冲区”,以暂存矢量着色效果; 第四步:针对不包含在“避免着色像素表”中的每一个屏幕像素,利用空间投影反算方法,获得其在矢量平面的覆盖范围,判断该范围内是否与某二维矢量实线相交,如像素与矢量存在相交现象,则将“矢量着色缓冲区”中该像素的色彩用该矢量线的色彩取代; 第五步:利用形态学方法对“矢量着色缓冲区”中的线状要素进行线宽设置; 第六步:将“矢量着色缓冲区”与原屏幕着色缓冲区作加权融合,像素深度较小的以矢量着色为主,像素深度较大的以原屏幕着色为主。
2.根据权利要求I所述的矢量实线与三维地形的并行贴合渲染方法,其特征在于, 所述第一步中的地形轮廓线的检测方法以及“避免着色像素表”的建立方法如下: (I. I)构造地形轮廓线的检测算子,将其与图像进行卷积运算; (I. 2)将超过设定阈值的卷积运算结果所在像素位置标记为轮廓线; (I. 3)将轮廓线远离视点方向的那一行像素点加入“避免着色像素表”。
3.根据权利要求I所述的矢量实线与三维地形的并行贴合渲染方法,其特征在于, 所述第二步为矢量实线建立空间索引的方法如下: (2. I)将矢量实线分解成线段; (2. 2)建立线段集合的空间索引。
4.根据权利要求I所述的矢量实线与三维地形的并行贴合渲染方法,其特征在于, 所述第四步中像素与二维矢量实线的关系判断及“矢量着色缓冲区”处理方法如下: (4. I)针对像素(i,j)、(i,j+l)、(i+l,j)、(i+l,j+1)四个像素的屏幕坐标以及深度值反算获得一个空间四边形,用该四边形在二维平面上的投影范围表示像素(i, j)的覆盖范围; (4. 2)利用像素(i,j)的覆盖范围与二维矢量实线作空间关系判断,如像素(i,j)的覆盖范围与某二维矢量实线相交,则将“矢量着色缓冲区”中该像素的色彩用该矢量线的色彩取代; (4.3)针对不包含在“避免着色像素表”的所有屏幕像素重复(4. I)至(4. 2)步骤。
【文档编号】G06T15/00GK104318605SQ201410568385
【公开日】2015年1月28日 申请日期:2014年10月23日 优先权日:2014年10月23日
【发明者】佘江峰, 谈心, 周阳, 郭星辰, 刘建龙 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1