验证WebGL是有效实现Web3D场景构建的方式,软件工程论文.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《验证WebGL是有效实现Web3D场景构建的方式,软件工程论文.docx》由会员分享,可在线阅读,更多相关《验证WebGL是有效实现Web3D场景构建的方式,软件工程论文.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、验证WebGL是有效实现Web3D场景构建的方式,软件工程论文受制于Web3D技术的瓶颈,传统的用以实现三维WebGIS场景的Web3D技术,包括Flash(Flex)、Java3D、X3D等技术,都需要加载组件或者预先安装客户端 (或插件),而且具有显示效果不佳、兼容性差等缺陷。WebGL作为新一代Web3D图形标准,具有不需要组件加载、渲染效果好、兼容性好等优点并且获得了诸多阅读器生产厂商的支持,具有以往技术无法比较的优势。本文在前人所做的诸多探寻求索的基础上,采用WebGL作为图形引擎来展开无组件三维WebGIS场景系统的实现,比拟了各种技术之间的优缺点,实验验证了WebGL是一种非常有
2、效的实现三维WebGIS场景渲染的技术手段。5标准发布以来,已经有不少学者开展了基于此标准的GIS应用研究,但是多是以canvas的2D环境为图形基础,无法知足三维WebGIS的应用要求,作为canvas的3D环境,WebGL具有能够直接调用硬件图形引擎,兼容性好等多种优点。展开这一研究有着较大的现实意义和长远的工程学意义。首先进行这项研究具有短期的现实意义,假如能够找到一种不需要预先安装客户端或者加载组件的方式方法,能够避免大组件的安装,用户不再需要等待较长时间,大大提高了用户体验。其次进行这项研究有深远的工程意义。人们一直以来都在进行三维WebGIS解决方案的研究和探寻求索。当前WebGL
3、已经展现出了强大的生命力,国内外包括谷歌、诺基亚在内的多家企业都已经展开了基于WebGL的GIS展示端研究工作,有些公司甚至已经推出了相关GIS案例展示。假如本研究能够证实WebGL是一个有效的实现Web3D场景构建的方式,将给WebGIS这一领域找到一种新的实现阅读器端三维场景构建的途径,而且摒弃传统技术的弊端,具有较高的商业和工程意义。1、需求定义本文以三维WebGIS的展示功能作为主要的功能性需求,所设计的三维WebGIS场景展示系统应具有如下功能:(1)展示一个Web端的三维GIS基本场景,所有的GIS图层元素将加载在基本场景上。(2)场景能够进行360 的全方位展示和移动,视角能够进
4、行放大和缩小。(3)系统应该能够实现所有基本的GIS图层元素的生成、加载、卸载,根据一般GIS系统的要求,所能加载的GIS元素包括如下几种:中英文文字标注,主要用于地名、兴趣点等的标注;图形标注,主要用于与文字标注相结合进行地点标示;矢量线,主要用于道路、河流、轨迹、境界等的标示;矢量面,主要用于区块、行政区域、湖泊等的标示;三维模型,主要用于在场景中加载建筑、植被、公共设施、地形等;影像切片,主要用于基本地表的绘制。本文的出发点是为了解决现有的三维WebGIS场景都需要加载或者预先安装组件来实现的问题,以提高用户体验和交互性,因而系统应该具有如下的非功能性需求:(1)不能加载任何组件或者插件
5、;(2)具有较好的用户体验。2、系统设计当前业界已经有几个较为成熟的基于WebGL的Java-Script三维图形框架,较为流行的有Three.js、Oak3D等。为愈加适用于WebGIS开发需求和减小脚本体积,本人决定抛弃这些庞大的框架,根据面向对象设计的理 论,以JavaScript为编程语言,建立一套应用与网页的三维图形库。2.1渲染流程WebGL编程通过调用内嵌于阅读器中的WebGL上下文环境中的图形接口进行图形绘制,因而不再需要任何组件的加载。阅读器直接通过GPU进行硬件图形加速。使用WebGL进行图形绘制的流程如此图1所 示。首先,获取WebGL上下文环境,根据着色器代码片段开创建
6、立着色器,一般包括顶点着色器 (VertexShader)和片元着色器 (Frag-mentShader),将着色器绑定给WebGL上下文,连接之后生成WebGL program。接着为需要绘制的图形对象开创建立顶点数组与颜色数组,假如使用索引方式构建面的话还要使用顶点索引数组,假如使用贴图的话还要生成纹理对象以及顶点纹理坐标数组等。然后为WebGL上下文绑定着色器需要的这些数组以及纹理对象,同时要为WebGL上下文设置着色器需要的变量,包括投影矩阵、模型视图矩阵等。最后调用WebGL的基本图元绘制方式方法进行图形对象的绘制。2.2模块划分为使图1中的绘制流程适用于WebGIS场景的绘制,系统
7、需要设计相应的顶点着色器以及片元着色器,以及用于数学向量矩阵运算的函数库,和能够进行各种GIS场景元素开创建立和绘制的GIS图层元素类库。因而系统将包括数学运算模块、着色器、图层元素模块等3个主要部分。3、具体设计3.1数学运算模块图2是提供了基本图形计算功能的数学运算模块的类图。该模块包括经纬度坐标类Point2D和三维空间坐标类Point3D,它们提供了经纬度坐标以及三维空间坐标的互相转换。也包括四维向量类Vector4f,提供向量乘法和加法运算。四阶矩阵类Matrix44f,提控了四阶矩阵的乘法运算以及逆运算。同时该模块包含了透视投影矩阵类ProjPer-spective和正投影矩阵Pr
8、ojOrtho,用以知足系统对三维空间投影的需求。3.2图层元素模块根据图1中WebGL的渲染流程,我为所有的场景元素设计了一个统一的开创建立和绘制流程,如此图3所示。首先根据图层元素的需要进行对象初始化,例如获取标注类型的文字标注信息、图标途径,矢量类型的顶点数据等。接着根据获取到的数据进行各种buffer的开创建立,例如顶点数组、面的顶点索引数组、贴图的纹理坐标数组、颜色数组等。接着根据需要设置元素对象的透视投影矩阵和模型视图矩阵。通常以场景的基本透视矩阵为元素的投影矩阵,场景的模型试图矩乘以元素对象的模型变换矩阵作为元素对象最终的模型试图矩阵。绘制的时候给着色器设置相关变量后,依次绑定前
9、步生成的各种buffer以及投影矩阵和模型变换矩阵。最后调用WebGL的基本图元绘制方式方法进行图层元素的绘制。统一的开创建立和绘制流程有利于进行场景元素对象的开创建立和统一绘制调用,同时有利于系统的扩展,由于图层元素不能仅仅局限于上述的几种。为使所有的场景元素能够实现统一的开创建立和绘制流程,系统通过JavaScript原型继承方式方法实现了图层元素的面向对象设计。首先设计了一个BaseClass类作为所有类的基类,它提供了一个extend方式方法来实现JavaScript的原型继承,该方式方法在执行的时候会将没有经过重声名的父类函数成员继承给子类,同时为子类的原型添加新的函数成员。接着设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文化交流
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内