[发明专利]一种基于屏幕的三维线状符号渲染方法有效
申请号: | 201710811545.4 | 申请日: | 2017-09-11 |
公开(公告)号: | CN107564087B | 公开(公告)日: | 2019-08-06 |
发明(设计)人: | 佘江峰;李创;顾笑颜;彭晓敏;张利维 | 申请(专利权)人: | 南京大学 |
主分类号: | G06T15/04 | 分类号: | G06T15/04 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 孟红梅 |
地址: | 210008 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于屏幕的三维线状符号渲染方法,利用着色器语言实现三维地图中线状地图符号的高效率、高质量渲染,包括如下步骤:建立矢量线段与地形单元的映射关系,对矢量节点及索引编码,形成节点纹理和索引纹理;在片元着色器中,查找、重建与当前片元关联的矢量线段;对矢量线段索引分组排序,求解线段节点在节点纹理中的纹理坐标,从节点纹理读取节点属性;根据关联线段的符号类型选择对应的渲染函数,并按照优先级安排计算次序。通过对直接对屏幕片元进行计算,本发明能够在地形渲染过程中实现线状符号的贴合渲染。此外,精确的空间位置关系计算及灵活的片元操作满足了不同样式的线状符号的渲染,并保证了实时渲染的效率。 | ||
搜索关键词: | 一种 基于 屏幕 三维 线状 符号 渲染 方法 | ||
【主权项】:
1.一种基于屏幕的三维线状符号渲染方法,其特征在于,包含以下步骤:(1)筛选出矢量节点对符号绘制产生影响的属性,包括矢量线ID、坐标、矢量线类型、累积长度、优先级、宽度系数及透明度系数;按次序将节点的属性存放在一个三维数组中,形成节点纹理;(2)建立矢量线段与地形单元的映射关系,并将其存放在一个三维数组中,形成索引纹理;(3)实时渲染时,根据屏幕片元的模型坐标在索引纹理中查找与当前屏幕片元关联的矢量线段,如果当前片元存在关联线段则进入步骤(4);如果不存在关联线段则将片元设为背景色,重新进入步骤(3)进行下一屏幕片元的处理至所有片元处理完成;(4)对矢量线段索引分组排序,逐一求解线段节点在节点纹理中的纹理坐标,从节点纹理读取节点属性;(5)按照矢量线段的优先级调用预定义的符号渲染函数,计算当前屏幕片元与关联矢量线段的位置关系,并判断片元是否位于线状符号的影响范围内,若不在影响范围内则将片元设为背景色,若在影响范围则将片元设为符号相应区域的颜色;重新进入步骤(3)进行下一屏幕片元的处理至所有片元处理完成;步骤(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作为该图像的数据源,并将该图像关联到索引纹理上;步骤(4)中求解线段节点在节点纹理中的纹理坐标,公式为:
其中xtexture、ytexture为矢量节点在节点纹理中的坐标,LineStep为节点纹理的边长,VIndex为索引纹理中矢量线段的索引号,%表示取模运算;步骤(5)中计算片元和矢量线段的空间位置包括片元与线段的垂直距离H及片元到矢量线起始节点的累积距离L;其中,H的计算在二维平面上进行,如果H大于符号宽度的一半则片元不在符号的影响范围内,否则在影响范围内;L的计算在三维空间中进行,根据L和H确定片元位于符号的具体区域。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710811545.4/,转载请声明来源钻瓜专利网。
- 上一篇:一种钢筋拉伸固定夹紧装置
- 下一篇:一种不锈钢弹簧线拉丝模