一种矢量数据三维渲染优化方法

一种矢量数据三维渲染优化方法
慕旭;霍亮;王金地;曹存相;秦高雅
【摘 要】针对网络环境下三维地理信息系统交互式的渲染,海量的矢量数据在渲染速度和质量方面存在的问题,利用新一代Web三维绘图标准WebGL的优势,引入目前较流行的延迟渲染技术,提出了一种基于屏幕空间的三维地形矢量线符号渲染方法.该方法利用Shader语言在三维地形着阶段优化渲染大规模矢量线数据,将地形单元和矢量线段间的映射关系存储在索引纹理中,通过计算当前屏幕片元与关联矢量线段的空间位置关系,判断片元所属符号的区域,进而设置片元的颜.使用从OpenStreetMap下载的全国1∶50000公路矢量线数据进行实验,通过与传统模板阴影体渲染方法对比证明,这种方法改善了各种尺度和范围的矢量数据在三维地形上的叠加显示效果,提高了渲染效率.
【期刊名称】《北京建筑大学学报》
【年(卷),期】2018(034)004
数学机械化【总页数】6页(P28-33)
【关键词】WebGL;矢量数据;地形渲染;着器
【作 者】慕旭;霍亮;王金地;曹存相;秦高雅
【作者单位】[1]北京建筑大学测绘与城市空间信息学院现代城市测绘国家测绘地理信息局重点实验室,北京1000044;[1]北京建筑大学测绘与城市空间信息学院现代城市测绘国家测绘地理信息局重点实验室,北京1000044;[2]北京建筑大学北京未来城市设计高精尖创新中心,北京100044;[1]北京建筑大学测绘与城市空间信息学院现代城市测绘国家测绘地理信息局重点实验室,北京1000044;[1]北京建筑大学测绘与城市空间信息学院现代城市测绘国家测绘地理信息局重点实验室,北京1000044;[1]北京建筑大学测绘与城市空间信息学院现代城市测绘国家测绘地理信息局重点实验室,北京1000044;
【正文语种】中 文
【中图分类】TU318.5
矢量地图的表达是二维电子地图、虚拟地理场景、地图导航系统等应用中的重要组成部分,如矢量地图常用于表达道路、河流、行政区划和土地利用等信息[1].国内外学者针对交
互式实时渲染矢量数据做了许多研究.目前,基于3D虚拟地球技术的研究有很多研究成果和商业应用.例如,谷歌公司的Google Map,Esri公司的ArcGIS Earth,微软公司的Virtual Earth,国家基础地理信息中心研发的天地图客户端等.然而,针对在三维地形上交互式实时渲染大规模矢量数据的问题仍然没有很好的解决方案.
将2D矢量要素渲染到3D地形表面始终是一个难题[2].目前主要有三种类型的矢量数据叠加地形模型的渲染算法,它们是基于几何映射的方法、基于纹理映射的方法和基于屏幕空间像素的方法.基于几何映射的方法[3]是将矢量要素视为单独的模型,以匹配起伏的3D地形以实现拟合.由于地形LOD的存在,地形模型结构复杂且实时变化,使用该类方法渲染的矢量数据会产生矢量数据悬浮、淹没在地形模型之外.该方法的实时几何计算开销很大,运行性能容易受地形数据复杂度[4]与数据量的影响.黄若思等[5]提出了在水平方向和垂直方向上矢量数据渲染优化的方法是通过DEM提取方法计算矢量数据的顶点高程值,构建点、线和面的三维几何体,保留了每个顶点的原始拓扑关系,并且针对矢量线与地形交叉的问题,提出了一种顶点加密方法.基于纹理映射的方法[6]将矢量直接光栅化到地形模型2D纹理中并以标准方式渲染.然而,地形模型纹理是具有有限分辨率的光栅图像,因此在场景缩放期间网格的矢量边缘易于出现锯齿状混叠,并且在严重的情况下,用户易误解原始矢量形状.噪声与振动控制
李尚林等[7]提出一种动态矢量纹理金字塔叠加绘制方法.根据当前视点位置实时生成对应金字塔级别的矢量纹理块,矢量纹理分块与地形分块一一对应,统一调度渲染.此方法独立于底层地形几何,可与大多数分辨率地形渲染方法结合使用.基于屏幕空间的矢量渲染方法[8] 是使用三维地形表面上二维矢量的正投影作为矢量区域.具体步骤是将二维矢量拉伸成正交方向的阴影体并计算像素中心点和地形表面逐个像素投射的光的交点.通过判断交点和阴影体之间的内外关系进而生成反应阴影区的二进制值.Yang L等[9] 验证使用这种方法渲染更大或更复杂的矢量数据时,难以实现实时交互性能(<10 fps).谈心,刘君妍等[10-11]针对这一问题提出一种基于屏幕空间像素进行投影反算的渲染方法.通过预处理计算线要素贴合在地表的真实长度,通过CPU-GPU并行异构计算模型实现,提高了场景交互性能.
品德与社会教学反思
本文提出的基于屏幕空间的三维地形矢量线符号渲染方法,与传统的基于屏幕空间的方法相比,采用改进的延迟渲染技术增强渲染速度,降低GPU带宽,进而提高了绘制效率.基于WebGL矢量线符号的渲染是在地形渲染期间,而不是地形渲染之后完成的.为了计算地形模型的着器中的线符号,使用纹理图像作为载体将矢量数据和索引信息从主程序发送到着器.由于矢量线的坐标系为模型坐标系,地形的模型坐标记录在顶点着器中,并且地形片段和矢量线的坐标系统是统一的,并且片段与直接计算矢量线段,从而避免了复杂的
投影运算过程和射线追踪运算过程.运用GPU着器编程语言实现在网络环境下高效精确的渲染矢量数据.
1 WebGL及延迟渲染简介
1.1 基于WebGL的数据渲染流程
致力于发展开放标准的应用程序接口 API 的Khronos协会,于2011年发布了最新的网络三维绘图标准WebGL.WebGL作为HTML5的标准,属于OpenGL ES2.0标准的网络传输版本.此外,WebGL具有跨操作系统、跨浏览器和GPU硬件加速等优势.对比传统的X3D、VRML等Web三维可视化技术,WebGL 通过GPU实现硬件加速渲染,在复杂大规模图形显示方面具有众多优势.谷歌、微软、火狐、苹果等浏览器厂商共同制定了这个标准,目前国内外主流浏览器基本实现了WebGL技术的通用性.因此本文采用WebGL技术提高矢量数据贴合地形模型的渲染效率.
柯立芝繁荣传统的网页由HTML、CSS和Javascript组成.在传统的网页组成基础上,基于WebGL的渲染程序还包含三维模型、矢量数据和着器代码.使用Javascript程序调用操控WebGL的着
器代码,通过渲染管线实现网络环境下的GPU硬件加速,最终实现三维场景的快速可视化.WebGL可视化渲染矢量数据贴合模型渲染的流程如图1所示.
环氧树脂模具
图1 WebGL渲染矢量数据流程
1.2 延迟渲染
通过程序控制图形流水线的执行,可编程图形流水线技术,改进了传统顺序型流水线技术的流程.这一改变增强了图形渲染的性能,并推动了图形渲染研究的发展.延迟渲染(Deferred Shading)[12]是一种新的渲染流程或工艺.由于常规渲染的众多性能问题,越来越多学者对其展开研究.延迟渲染利用WebGL的优势,通过研究改变传统流水线的绘制顺序,采用提前裁剪和延迟绘制的方式加快整个流水线的处理流程.与传统的渲染方式相比,具有高渲染效率、多光源渲染等优点[13].
图3 技术路线图
但是该方法存在占用较多GPU带宽的问题,因此引入聚类- 簇方法[14]可以减少GPU带宽,提高绘制效率.通过2次渲染的渲染管线以减少着器的着次数.第一次渲染几何信息
并生成包含几何场景的主要信息,如颜(Normal.X)、法线(Normal.Y)、深度(Depth.Z)和光源信息(Specular)等.该过程称为G缓冲区(G-buffer)优化策略,如图2所示.
图2 G-buffer优化策略
所有着器操作尽可能少通过G-buffer过程完成.该渲染过程实现每个像素高效的着、屏幕空间的反走样和环境光遮挡等后期处理过程,如抗锯齿或环境遮挡.构建延迟着管道一方面提高了额外纹理层的GPU内存消耗,另一方面提高了像素填充率,因为生成的图像多于有效用作最终输出帧的图像.最终,每帧的整体渲染工作量可以大幅减少,并允许在单个帧内产生更多的图像空间效果.鉴于光照对场景的重要性,本文选择引入聚类-簇方法的延迟渲染方法.
2 基于屏幕空间像素的延迟渲染方法
2.1 技术路线现代中西医结合杂志
本文技术路线如图3所示,对矢量数据进行编码以形成节点纹理和索引纹理并将其发送到着器.通过到与当前片段相关联的线段,可以基于线段的属性信息选择适当的符号函数,
最终进行延迟线渲染.在延迟渲染阶段,对于每一像素对应的地形上的点,确定它是否有助于矢量图层可视化.使用从主地形渲染通道获得的G缓冲区数据,我们将每个像素反投影到3D世界中,并确定它在矢量地图内的位置.为了确定备选线图层,我们用一种空间数据结构存储所有的矢量线元素,称之为聚类线缓冲.在聚类线缓冲区内进行优化搜索,快速发现最近的线图层从而快速渲染像素.
2.2 矢量线预处理
基于屏幕空间像素的线投影和渲染方法的基本思想是:不生成中间几何对象将矢量线栅格转化为纹理,使用延迟着原理自适应在地形表面上投影和渲染矢量数据.与常见的渲染方法相比,其中像素的纹理来自主要的几何渲染过程.

本文发布于:2024-09-20 20:44:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/71427.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:渲染   矢量   方法   数据   地形
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议