CN107564087A - 一种基于屏幕的三维线状符号渲染方法 - Google Patents
一种基于屏幕的三维线状符号渲染方法 Download PDFInfo
- Publication number
- CN107564087A CN107564087A CN201710811545.4A CN201710811545A CN107564087A CN 107564087 A CN107564087 A CN 107564087A CN 201710811545 A CN201710811545 A CN 201710811545A CN 107564087 A CN107564087 A CN 107564087A
- Authority
- CN
- China
- Prior art keywords
- symbol
- vector
- line segment
- texture
- node
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 34
- 239000013598 vector Substances 0.000 claims abstract description 93
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 238000012163 sequencing technique Methods 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 14
- 230000001186 cumulative effect Effects 0.000 claims description 7
- 241001577299 Vindex Species 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 10
- 238000012913 prioritisation Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 240000007509 Phytolacca dioica Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种基于屏幕的三维线状符号渲染方法,利用着色器语言实现三维地图中线状地图符号的高效率、高质量渲染,包括如下步骤:建立矢量线段与地形单元的映射关系,对矢量节点及索引编码,形成节点纹理和索引纹理;在片元着色器中,查找、重建与当前片元关联的矢量线段;对矢量线段索引分组排序,求解线段节点在节点纹理中的纹理坐标,从节点纹理读取节点属性;根据关联线段的符号类型选择对应的渲染函数,并按照优先级安排计算次序。通过对直接对屏幕片元进行计算,本发明能够在地形渲染过程中实现线状符号的贴合渲染。此外,精确的空间位置关系计算及灵活的片元操作满足了不同样式的线状符号的渲染,并保证了实时渲染的效率。
Description
技术领域
本发明属于计算机图形学和地图制图学领域,具体涉及一种基于屏幕的三维线状符号渲染方法。
背景技术
目前对三维线状符号的渲染研究有如下三个方面:
(1)基于纹理的方法
基于纹理映射的方法将矢量线当成纹理的一部分,根据这一思想,线状符号被栅格化后融合到纹理图像上,这一过程即可在预处理时也可在实时渲染中进行。将带有符号的纹理映射到地形模型上,可以实现符号和地形表面的精确匹配。由于栅格影像的分辨率有限,场景缩放时矢量符号的边缘会产生锯齿现象。一个解决方法是在GPU中实时生成纹理,但这种方法只对平坦的地形有效;Zhi et al.提出了一种基于视点的渲染方法来避免锯齿现象,但是矢量数据的数量是有限制的。进一步的,基于纹理的方法难以处理周期变化的符号,当纹理被映射到地形上时,投影变形会破坏符号的周期。
(2)基于几何的方法
基于几何的方法将矢量线作为单独的模型处理,换言之,地形和矢量线在不同的渲染流程中进行。这种方法简单、快速,但缺点也很明显:当视点快速变化时,矢量线需动态调整使之与地形精确匹配,然而,由于地形LOD的存在,地形模型结构复杂且实时变化,这常常会带来悬浮穿刺等视觉误差。针对每一个地形LOD预先计算矢量线节点是一个可取的选择,但是大量的节点是难以避免的。关于实时插入或删除节点的研究已经在进行,只是出于性能的考虑,这些方法多适用于平坦的地形。一些学者将几何方法与着色器语言结合起来,用以绘制更为复杂的线状符号,但是仍然没有解决符号与地形的精确匹配问题。
(3)基于屏幕的方法
近些年来,基于屏幕的方法得到了快速的发展,其中代表性的是模板阴影体(SVA)算法。阴影体算法将矢量线挤压为多面体,然后利用点-面算法生成一个模板。相较于前两种算法,该方法提供一种像素级别的渲染,并且有效消除了锯齿现象。考虑到每一个单独的颜色都至少生成一个模板,当一个符号内部包含不同的颜色时,计算量会非常大。特别的,一些线状符号包含特殊的形状例如三角形、圆形等,这对阴影体算法来说是个不小的挑战。Ohlarik et al.提出将矢量线挤压为一个直立面的方法,但是只能渲染单像素宽度的矢量符号。通过投影反算可以快速计算像素与多面体的位置关系,这不可避免地带来了计算上的大量消耗。因此,投影反算的方法通常会使用GPU并行技术来提高效率。
总体而言,目前三维线状符号算法还存在着一些缺陷。一方面,现有算法过多关注贴合精度和渲染效率,对线状符号本身的复杂性有所忽视,绘制的线状符号过于简单,难以满足表达多类型、多属性的矢量要素的需求,例如不同类型、等级的道路或深度发生变化的河流;另一方面,现有算法在处理拐角、相交等情况时通常带来大量的几何构建,这显著增加了算法的复杂度。此外,渲染效率也是一个不得不考虑的问题,复杂的线状符号意味着更多的预处理工作以及实时计算消耗,例如抗锯齿处理、实现透明度变化等。
发明内容
发明目的:针对现有三维地图中线状地图符号渲染方法的缺陷,本发明公开了一种基于屏幕的三维线状符号渲染方法,可以满足大规模数据量下渲染复杂线状地图符号的需求,利用着色器语言使线状符号渲染达到像素级,不仅解决了符号与地形的匹配问题,而且实现了多种样式线状符号的高质量渲染,增强三维地图的可读性。
技术方案:本发明公开了一种基于屏幕的三维线状符号渲染方法,利用着色器语言将线状符号的渲染嵌入到地形渲染的过程中,实现三维地图中不同类型、不同级别的线状地图符号的像素级渲染,包括如下步骤:
(1)筛选出矢量节点对符号绘制产生影响的属性,按次序将节点的属性存放在一个三维数组中,形成节点纹理;
(2)建立矢量线段与地形单元的映射关系,并将其存放在一个三维数组中,形成索引纹理;
(3)实时渲染时,根据屏幕片元的模型坐标在索引纹理中查找与当前屏幕片元关联的矢量线段,如果当前片元存在关联线段则进入步骤(4);如果不存在关联线段则将片元设为背景色,重新进入步骤(3)进行下一屏幕片元的处理至所有片元处理完成;
(4)对矢量线段索引分组排序,逐一求解线段节点在节点纹理中的纹理坐标,从节点纹理读取节点属性;
(5)按照矢量线段的优先级调用预定义的符号渲染函数,计算当前屏幕片元与关联矢量线段的位置关系,并判断片元是否位于线状符号的影响范围内,若不在影响范围内则将片元设为背景色,若在影响范围则将片元设为符号相应区域的颜色;重新进入步骤(3)进行下一屏幕片元的处理至所有片元处理完成。
进一步地,步骤(1)中的属性包括矢量线ID、坐标、矢量线类型、累积长度、优先级、宽度系数及透明度系数。
进一步地,步骤(1)中具体包括:
(1.1)初始化一个三维数组data1[x][y][z],x与y的乘积大于等于矢量节点总数,z为9;
(1.2)按次序将节点的属性存放在该数组中,保证线段的两个节点在纹理中前后相连,不同矢量线的节点存放同一数组中通过矢量线ID进行区分;
(1.3)初始化一个矢量图像,数组data1作为该图像的数据源,并将该图像关联到节点纹理上。
进一步地,步骤(2)中建立映射关系是在模型空间进行的,具体包括:
(2.1)将地形在二维平面上划分为规则格网,格网单元大小大于符号宽度的一半,小于符号宽度;
(2.2)初始化一个三维数组data2[x][y][z],x等于格网的长,y等于格网的宽,z为9;逐线段计算矢量线段的两个节点所属网格单元的行列号,根据两组行列号确定线段的矩形影响范围,向外拓展一个网格单元形成新的影响范围,将矢量线段的索引存到数组data2对应的位置;
(2.3)初始化一个三维图像,将数组data2作为该图像的数据源,并将该图像关联到索引纹理上。
进一步地,步骤(3)中在索引纹理中查找与当前屏幕片元关联的矢量线段的方法为:
查找当前屏幕片元的关联线段在几何着色器中记录片元的模型坐标,求解该片元所属的地形单元行列号,行列号等于模型坐标除以格网单元大小,利用纹理查找函数从索引纹理中获取关联矢量线段的索引。
进一步地,步骤(4)中求解线段节点在节点纹理中的纹理坐标,公式为:
其中xtexture、ytexture为矢量节点在节点纹理中的坐标,LineStep为节点纹理的边长,VIndex为索引纹理中矢量线段的索引号,%表示取模运算。
进一步地,步骤(5)中的根据优先级调用渲染函数,当一个片元受到多个符号的影响时,先计算优先级低的符号颜色,并将其替换为背景色,然后计算优先级高的符号覆盖优先级高的符号;如果同一类型符号优先级相同,则消除两个线状符号的边缘。
进一步地,步骤(5)中计算片元和矢量线段的空间位置包括片元与线段的垂直距离H及片元到矢量线起始节点的累积距离L;其中,H的计算在二维平面上进行,如果H大于符号宽度的一半则片元不在符号的影响范围内,否则在影响范围内;L的计算在三维空间中进行,根据L和H确定片元位于符号的具体区域。
有益效果:本发明方法通过构建矢量线段与地形单元的映射关系,生成节点纹理和索引纹理,其有益效果是将矢量线完整地传递到GPU中,使每个片元可以快速、准确找到关联线段,实现了在地形渲染过程中绘制线状符号;计算每个片元和关联线段的空间位置关系,其有益效果是精确判断片元所属的区域,能够绘制出色彩丰富、形状多变的符号,此外,还便于处理边缘、拐角等特殊区域;定制化的渲染函数有助于大规模、多类型的线状符号的统一渲染,通过优先级控制符号次序避免了不同符号的混乱叠置,帮助用户理解场景。
附图说明
图1为三维线状符号渲染流程图。
图2为矢量线编码存放示意图:(a)两条矢量线;(b)矢量节点的属性在三维图像中位置示意图。
图3为矢量线段影响范围示意图。
图4符号优先级示意图:(a)铁路优先级高于道路;(b)道路优先级高于铁路;(c)同类道路优先级相同,联通;(d)同类道路优先级不同,不联通。
图5为屏幕片元与关联线段空间位置关系示意图:(a)模型空间中矢量线和地形示意图;(b)计算H和L。
图6为采用本发明方法渲染的三维线状地图符号效果图:(a)实线符号;(b)虚线符号;(c)综合场景。
具体实施方式
下面结合附图和具体实施方式进一步阐释本发明。
如图1所示,本发明实施例公开的一种基于屏幕的三维线状符号渲染方法主要包括节点纹理生成、索引纹理生成、线段查找及屏幕片元颜色的计算。具体包括如下步骤:
1、筛选矢量节点的有效属性并进行编码,生成一个节点纹理。
考虑到与地形相关的屏幕片元的计算是在地形着色器中,解决矢量数据在程序和着色器间的传输变得尤为重要。Shader Language(着色器语言)提供attribute和uniform两种变量传递数据。Attribute变量用于逐顶点向顶点着色器中传递数据,由于地形顶点数量庞大,建立矢量节点和地形顶点的映射关系代价很大。此外,Attribute变量携带的数据量有限不足以实时重建矢量线段。本文定义一个uniform变量texture来传输矢量数据,它可以向着色器中批量传输数据。
矢量线的基本单元是节点,每个节点都具有全局属性和独有属性,全局属性是指节点所在矢量线的属性,独有属性是指节点本身的属性。对符号绘制产生影响的属性都被选中,包括矢量线ID、类型、优先级、坐标(X、Y、Z)、累积长度(该节点到起始节点总距离)、透明度系数、宽度系数等。优先级决定了不同符号绘制的次序,总是首先绘制优先级较小的符号;透明度系数用以控制该符号在当前节点处的色彩透明度,可以表现河流深度、信息密度等,其大小位于0到1区间。
由于像素格式的限制,一个二维图像像素适合存储3个属性,因此选择三维纹理来实现矢量数据的有序存储,同一节点的属性存放在纹理不同深度的相同位置,为数据索引提供便利。如图2所示,点P1的属性A1、A2、A3存放在深度为0的位置(0,0)处,而属性A4、A5、A6则存放在深度为1的位置(0,0)处,以此类推。节点在纹理中的存放顺序与在矢量线中的一致。
初始化一个三维数组data1[x][y][z],x与y的乘积大于等于矢量节点总数,z为9;按次序将节点的属性存放在该数组中,不同矢量线的节点存放同一数组中通过ID进行区分;初始化一个矢量图像,数组data1作为该图像的数据源,并将该图像关联到节点纹理上。
2、建立地形单元和矢量线段的映射关系,生成一个索引纹理。
在实时渲染过程中需要判断地形像素点是否处于矢量线的影响范围内,有必要建立两者间的映射关系。本发明建立线段和地形块间的映射关系,并将其存放在一个UniformGrid中。借助于Uniform Grid,只要计算像素点属于哪一个地块,就可以找到可能影响到它的线段。首先,将地形划分为规则格网,格网单元大小对后续计算有着很大影响,主要受到两个因素的控制。一方面,为了减少一条线段在垂直方向上覆盖的单元,地形单元应大于符号宽度的一半;另一方面,影响单一地形单元的线段不宜过多,因此地形单元应尽可能小。综合考虑,格网单元大小大于符号宽度的一半,小于符号宽度(所有线状符号的最大宽度),本实例中地形单元取24米。
初始化一个三维数组data2[x][y][z],x等于格网的长,y等于格网的宽,z为9。逐线段计算线段的两个节点所属单元的行列号,根据两组行列号确定线段的矩形影响范围,向外拓展矩形一个单元形成新的影响范围,将线段的索引存放到数组data2对应的位置(如图3)。初始化一个三维图像,数组data2作为该图像的数据源,并将该图像关联到索引纹理上。
3、查找与当前片元相关联的矢量线段。
影响像素颜色值的因素包括背景纹理和矢量线,对背景纹理进行采样相对容易,而量化矢量线的影响是一个复杂的过程。不同于其它方法,本方法是在实时渲染过程中重建矢量线段。像素点的关联线段就是指经过或者影响到该像素所在单元的线段。根据地形单元的大小和当前像素点的模型坐标计算像素点所属的单元行列号,行列号等于模型坐标除以格网单元大小,然后利用纹理查找函数在索引纹理中查找该地形块中是否存在关联线段。从索引纹理的最低深度开始查找,直到索引为0停止。如果存在关联矢量线段,则进入下一步继续,否则将该片元设为背景色,进行下一屏幕片元的处理。
4、根据节点属性对线段索引进行分组排序
得到线段索引号后,并根据索引号求解该线段在节点纹理中纹理坐标,公式为:
其中xtexture、ytexture为矢量节点在节点纹理中的坐标,LineStep为节点纹理的边长,VIndex为索引纹理中矢量线段的索引号。利用纹理查找函数在节点纹理中查找节点信息,得到节点坐标、矢量线ID、矢量线类型、优先级等。
关联线段可能来自于不同的矢量线,通过比较它们的线段ID进行区分。对于一条具体的矢量线,通常情况下关联线段可能有一条、两条或者三条。一条关联线段最容易处理,常常意味着该单元位于符号边缘或者长线段的中间处。两条关联线段的处理涉及到拐角的处理,当矢量线段的长度很短时就有可能出现三条关联线段的情况,它的处理可以分解为两个两条关联线段的情况。
如果它们来自不同的矢量线则根据优先级安排它们的渲染次序,优先级低的符号先渲染。使用原始背景颜色会造成高优先级符号边缘处出现异常,本文用先计算的颜色值更新采样的背景颜色值,在视觉上形成优先级高的符号叠置于优先级的符号上面。如果两符号相交,且符号类型相同,则根据优先级判断联通性,优先级相同则联通,反之,不相同(如图4)。
5、以分组线段索引为参数调用符号渲染函数
地形像素和它的关联线段间的空间位置关系对于渲染线状符号至关重要。区别于其它方法,本发明不只判断像素是否落在多边形或多面体内,而是计算像素和矢量线的精确位置关系,包括像素到实际线段的垂直距离H及沿矢量线方向的累积距离L。计算空间位置是在片元着色器中进行,地形节点已经被转化为屏幕坐标,而矢量线的节点仍然是模型坐标,因此在顶点着色器增加3个变量来记录地形节点的模型坐标,并将其传输到后续着色器中。
图5解释了如何在模型空间计算H和L。点A、B、C、D是线节点在三维空间中的位置,点A’、B’、C’、D’是它们在二维平面上的投影。同样的,P和P’分别是地形像素点在三维空间中的位置及二维平面上的投影。线段PG和P’G’分别代表三维空间和二维平面上的H,当地形起伏较大时,采用三维空间中的H会引起断裂、扭曲等视觉误差,本发明选取二维平面上的H作为实际计算值。线状符号常存在周期性变化,如果L选择在二维平面上计算,由于投影变形的存在,符号周期在坡度大的区域比平地上大。为了避免周期变形,本文选取三维空间中的L作为实际计算值。综上,H和L的计算公式如下所示:
其中,LengthB代表B到矢量线起始节点的累积距离,T为符号的最小重复周期。
比较H与符号宽度的一半,如果H大于符号宽度的一半,将片元设为背景色,并进行下一屏幕片元的处理;如果H小于符号宽度的一半,则继续进行。根据符号的颜色、形状差异将符号划分为不同的区域,通过H和L判断该片元属于哪一区域,并将该区域的颜色赋予该片元(各个符号的具体区域划分根据符号要求灵活定制,具体使用时根据输入H和L值输出相应的象素值即可。对于没有重复周期的单色线状符号,输入H即可得出相应位置的象素值,对于存在重复周期的线状符号,如铁路黑白间隔线,需要同时输入L值,结合二维数据确定具体的区域位置)。在此基础上对符号的边缘、拐角、暗边等进行处理,最终形成该符号的渲染函数。符号边缘优化是利用hermite函数对符号色与背景色进行重采样,消除符号的锯齿现象。符号拐角、圆帽采用的圆形过渡,使符号的样式更为自然。
图6为使用本发明渲染三维线状符号效果图。该场景为南京紫金山,包含了道路、铁路、规划线等6种线性符号。借鉴二维地图符号,用户可以准确识别这些符号所代表的矢量线要素。基于屏幕的方法使得所有符号都精确地贴合在地形表面,不受地形数据的影响;对符号的周期、拐角、边缘及相交进行了有效处理,使得符号的渲染质量得到大大提升。由于符号的渲染达到了像素级别,即使场景缩放到何种程度,符号与背景之间的界线非常清晰,不会出现锯齿现象。
Claims (8)
1.一种基于屏幕的三维线状符号渲染方法,其特征在于,包含以下步骤:
(1)筛选出矢量节点对符号绘制产生影响的属性,按次序将节点的属性存放在一个三维数组中,形成节点纹理;
(2)建立矢量线段与地形单元的映射关系,并将其存放在一个三维数组中,形成索引纹理;
(3)实时渲染时,根据屏幕片元的模型坐标在索引纹理中查找与当前屏幕片元关联的矢量线段,如果当前片元存在关联线段则进入步骤(4);如果不存在关联线段则将片元设为背景色,重新进入步骤(3)进行下一屏幕片元的处理至所有片元处理完成;
(4)对矢量线段索引分组排序,逐一求解线段节点在节点纹理中的纹理坐标,从节点纹理读取节点属性;
(5)按照矢量线段的优先级调用预定义的符号渲染函数,计算当前屏幕片元与关联矢量线段的位置关系,并判断片元是否位于线状符号的影响范围内,若不在影响范围内则将片元设为背景色,若在影响范围则将片元设为符号相应区域的颜色;重新进入步骤(3)进行下一屏幕片元的处理至所有片元处理完成。
2.根据权利要求1所述的基于屏幕的三维线状符号渲染方法,其特征在于,步骤(1)中的属性包括矢量线ID、坐标、矢量线类型、累积长度、优先级、宽度系数及透明度系数。
3.根据权利要求1所述的基于屏幕的三维线状符号渲染方法,其特征在于,步骤(1)中具体包括:
(1.1)初始化一个三维数组data1[x][y][z],x与y的乘积大于等于矢量节点总数,z为9;
(1.2)按次序将节点的属性存放在该数组中,保证线段的两个节点在纹理中前后相连,不同矢量线的节点存放同一数组中通过矢量线ID进行区分;
(1.3)初始化一个矢量图像,数组data1作为该图像的数据源,并将该图像关联到节点纹理上。
4.根据权利要求1所述的基于屏幕的三维线状符号渲染方法,其特征在于,步骤(2)中建立映射关系是在模型空间进行的,具体包括:
(2.1)将地形在二维平面上划分为规则格网,格网单元大小大于符号宽度的一半,小于符号宽度;
(2.2)初始化一个三维数组data2[x][y][z],x等于格网的长,y等于格网的宽,z为9;逐线段计算矢量线段的两个节点所属网格单元的行列号,根据两组行列号确定线段的矩形影响范围,向外拓展一个网格单元形成新的影响范围,将矢量线段的索引存到数组data2对应的位置;
(2.3)初始化一个三维图像,将数组data2作为该图像的数据源,并将该图像关联到索引纹理上。
5.根据权利要求1所述的基于屏幕的三维线状符号渲染方法,其特征在于,步骤(3)中在索引纹理中查找与当前屏幕片元关联的矢量线段的方法为:
查找当前屏幕片元的关联线段在几何着色器中记录片元的模型坐标,求解该片元所属的地形单元行列号,行列号等于模型坐标除以格网单元大小,利用纹理查找函数从索引纹理中获取关联矢量线段的索引。
6.根据权利要求1所述的基于屏幕的三维线状符号渲染方法,其特征在于,步骤(4)中求解线段节点在节点纹理中的纹理坐标,公式为:
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>x</mi>
<mi>t</mi>
<mi>e</mi>
<mi>x</mi>
<mi>t</mi>
<mi>u</mi>
<mi>r</mi>
<mi>e</mi>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mi>V</mi>
<mi>I</mi>
<mi>n</mi>
<mi>d</mi>
<mi>e</mi>
<mi>x</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mi>%</mi>
<mi>L</mi>
<mi>i</mi>
<mi>n</mi>
<mi>e</mi>
<mi>S</mi>
<mi>t</mi>
<mi>e</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>y</mi>
<mi>t</mi>
<mi>e</mi>
<mi>x</mi>
<mi>t</mi>
<mi>u</mi>
<mi>r</mi>
<mi>e</mi>
<mo>=</mo>
<mi>V</mi>
<mi>I</mi>
<mi>n</mi>
<mi>d</mi>
<mi>e</mi>
<mi>x</mi>
<mo>/</mo>
<mi>L</mi>
<mi>i</mi>
<mi>n</mi>
<mi>e</mi>
<mi>S</mi>
<mi>t</mi>
<mi>e</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
其中xtexture、ytexture为矢量节点在节点纹理中的坐标,LineStep为节点纹理的边长,VIndex为索引纹理中矢量线段的索引号,%表示取模运算。
7.根据权利要求1所述的基于屏幕的三维线状符号渲染方法,其特征在于,步骤(5)中的根据优先级调用渲染函数,当一个片元受到多个符号的影响时,先计算优先级低的符号颜色,并将其替换为背景色,然后计算优先级高的符号覆盖优先级高的符号;如果同一类型符号优先级相同,则消除两个线状符号的边缘。
8.根据权利要求1所述的基于屏幕的三维线状符号渲染方法,其特征在于,步骤(5)中计算片元和矢量线段的空间位置包括片元与线段的垂直距离H及片元到矢量线起始节点的累积距离L;其中,H的计算在二维平面上进行,如果H大于符号宽度的一半则片元不在符号的影响范围内,否则在影响范围内;L的计算在三维空间中进行,根据L和H确定片元位于符号的具体区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710811545.4A CN107564087B (zh) | 2017-09-11 | 2017-09-11 | 一种基于屏幕的三维线状符号渲染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710811545.4A CN107564087B (zh) | 2017-09-11 | 2017-09-11 | 一种基于屏幕的三维线状符号渲染方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107564087A true CN107564087A (zh) | 2018-01-09 |
CN107564087B CN107564087B (zh) | 2019-08-06 |
Family
ID=60979906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710811545.4A Active CN107564087B (zh) | 2017-09-11 | 2017-09-11 | 一种基于屏幕的三维线状符号渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107564087B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108830911A (zh) * | 2018-05-28 | 2018-11-16 | 国家测绘地理信息局第三地理信息制图院(四川省第二测绘地理信息工程院) | 一种在线动态地图生成方法 |
CN109289198A (zh) * | 2018-09-06 | 2019-02-01 | 北京天马时空网络技术有限公司 | 一种感兴趣区域确定方法和装置 |
CN110570484A (zh) * | 2019-08-12 | 2019-12-13 | 浙江大学 | 一种图像解耦表征下的文本指导图像上色方法 |
CN110580734A (zh) * | 2019-09-12 | 2019-12-17 | 浙江科澜信息技术有限公司 | 一种三维场景渲染方法、装置、设备及可读存储介质 |
CN110738718A (zh) * | 2019-09-04 | 2020-01-31 | 中国国土勘测规划院 | 一种国土数据的三维可视化方法 |
CN110838161A (zh) * | 2019-10-30 | 2020-02-25 | 西安恒歌数码科技有限责任公司 | 一种osg大批量图形节点在三维场景中聚合的方法 |
CN111524446A (zh) * | 2019-02-01 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN112489180A (zh) * | 2020-10-30 | 2021-03-12 | 完美世界(北京)软件科技发展有限公司 | 数据处理方法、系统、电子设备及计算机可读介质 |
CN112907436A (zh) * | 2021-02-02 | 2021-06-04 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
CN114529633A (zh) * | 2022-04-22 | 2022-05-24 | 南京师范大学 | 一种支持gis线对象和面对象连续lod绘制的方法 |
WO2022227293A1 (zh) * | 2021-04-28 | 2022-11-03 | 广东三维家信息科技有限公司 | 一种纹理贴图方法、装置、电子设备及存储介质 |
CN112907436B (zh) * | 2021-02-02 | 2024-06-07 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218840A (zh) * | 2012-12-13 | 2013-07-24 | 航天科工仿真技术有限责任公司 | 基于纹理映射技术的视景仿真系统矢量数据动态绘制方法 |
CN104318605A (zh) * | 2014-10-23 | 2015-01-28 | 南京大学 | 矢量实线与三维地形的并行贴合渲染方法 |
CN104599320A (zh) * | 2014-12-31 | 2015-05-06 | 北京邮电大学 | 一种三维模型实时绘制与比对方法 |
CN105023288A (zh) * | 2015-07-09 | 2015-11-04 | 南京大学 | 二维矢量实线在三维场景中的视觉误差消除方法 |
CN106408627A (zh) * | 2016-09-21 | 2017-02-15 | 中国航空无线电电子研究所 | 一种线状符号绘制方法 |
-
2017
- 2017-09-11 CN CN201710811545.4A patent/CN107564087B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218840A (zh) * | 2012-12-13 | 2013-07-24 | 航天科工仿真技术有限责任公司 | 基于纹理映射技术的视景仿真系统矢量数据动态绘制方法 |
CN104318605A (zh) * | 2014-10-23 | 2015-01-28 | 南京大学 | 矢量实线与三维地形的并行贴合渲染方法 |
CN104599320A (zh) * | 2014-12-31 | 2015-05-06 | 北京邮电大学 | 一种三维模型实时绘制与比对方法 |
CN105023288A (zh) * | 2015-07-09 | 2015-11-04 | 南京大学 | 二维矢量实线在三维场景中的视觉误差消除方法 |
CN106408627A (zh) * | 2016-09-21 | 2017-02-15 | 中国航空无线电电子研究所 | 一种线状符号绘制方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108830911B (zh) * | 2018-05-28 | 2023-05-26 | 国家测绘地理信息局第三地理信息制图院(四川省第二测绘地理信息工程院) | 一种在线动态地图生成方法 |
CN108830911A (zh) * | 2018-05-28 | 2018-11-16 | 国家测绘地理信息局第三地理信息制图院(四川省第二测绘地理信息工程院) | 一种在线动态地图生成方法 |
CN109289198A (zh) * | 2018-09-06 | 2019-02-01 | 北京天马时空网络技术有限公司 | 一种感兴趣区域确定方法和装置 |
CN111524446A (zh) * | 2019-02-01 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN111524446B (zh) * | 2019-02-01 | 2021-11-12 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN110570484A (zh) * | 2019-08-12 | 2019-12-13 | 浙江大学 | 一种图像解耦表征下的文本指导图像上色方法 |
CN110570484B (zh) * | 2019-08-12 | 2021-09-24 | 浙江大学 | 一种图像解耦表征下的文本指导图像上色方法 |
CN110738718A (zh) * | 2019-09-04 | 2020-01-31 | 中国国土勘测规划院 | 一种国土数据的三维可视化方法 |
CN110580734A (zh) * | 2019-09-12 | 2019-12-17 | 浙江科澜信息技术有限公司 | 一种三维场景渲染方法、装置、设备及可读存储介质 |
CN110838161A (zh) * | 2019-10-30 | 2020-02-25 | 西安恒歌数码科技有限责任公司 | 一种osg大批量图形节点在三维场景中聚合的方法 |
CN110838161B (zh) * | 2019-10-30 | 2024-01-30 | 西安恒歌数码科技有限责任公司 | 一种osg大批量图形节点在三维场景中聚合的方法 |
CN112489180A (zh) * | 2020-10-30 | 2021-03-12 | 完美世界(北京)软件科技发展有限公司 | 数据处理方法、系统、电子设备及计算机可读介质 |
CN112907436A (zh) * | 2021-02-02 | 2021-06-04 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
CN112907436B (zh) * | 2021-02-02 | 2024-06-07 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
WO2022227293A1 (zh) * | 2021-04-28 | 2022-11-03 | 广东三维家信息科技有限公司 | 一种纹理贴图方法、装置、电子设备及存储介质 |
CN114529633A (zh) * | 2022-04-22 | 2022-05-24 | 南京师范大学 | 一种支持gis线对象和面对象连续lod绘制的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107564087B (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107564087A (zh) | 一种基于屏幕的三维线状符号渲染方法 | |
CN107025685B (zh) | 拓扑感知下的机载建筑屋顶点云建模方法 | |
CN105336003B (zh) | 结合gpu技术实时流畅绘制出三维地形模型的方法 | |
CN113178014B (zh) | 场景模型渲染方法、装置、电子设备和存储介质 | |
CN110910390B (zh) | 一种基于深度畸变卷积的全景三维彩色点云语义分割方法 | |
CN103077549B (zh) | 一种基于kd树的实时大规模地形可视化实现方法 | |
CN106709947A (zh) | 一种基于rgbd相机的三维人体快速建模系统 | |
CN103714577B (zh) | 一种适用于带纹理模型的三维模型简化方法 | |
CN104658027A (zh) | 一种面向不规则海洋流场数据的三维流线动态可视化算法 | |
CN110807134A (zh) | 一种海洋三维标量场可视化方法 | |
CN104952102B (zh) | 面向延迟着色的统一反走样方法 | |
CN104183008B (zh) | 一种基于表面信号拟合和曲面细分的着色器简化方法、装置及图形渲染方法 | |
CN108305315B (zh) | 一种基于wpf的三维地形高效渐变着色方法 | |
CN109118588B (zh) | 一种基于块分解的彩色lod模型自动生成方法 | |
CN105096385A (zh) | 一种二维地震剖面三维显示方法 | |
CN105303616A (zh) | 基于单张照片的浮雕建模方法 | |
US20200279415A1 (en) | Efficiently Computed Distance Fields | |
CN114820990B (zh) | 一种基于数字孪生的流域防洪可视化方法及系统 | |
CN106408626A (zh) | 图形处理系统 | |
CN102519395A (zh) | 彩色结构光三维测量中的彩色响应标定方法 | |
CN101984465B (zh) | 一种图像无缝复制的方法 | |
CN115937461B (zh) | 多源融合模型构建及纹理生成方法、装置、介质及设备 | |
CN109636894A (zh) | 一种基于像素点栅格化的动态三维热力计算方法及系统 | |
CN108230452B (zh) | 一种基于纹理合成的模型补洞方法 | |
CN113793418B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 210008 Nanjing, Gulou District, Jiangsu, No. 22 Hankou Road Applicant after: Nanjing University Address before: No. 163 Qixia Xianlin Avenue District of Nanjing City, Jiangsu province 210023 Applicant before: Nanjing University |
|
GR01 | Patent grant | ||
GR01 | Patent grant |