验证WebGL是有效实现Web3D场景构建的方式

3.0 闻远设计 2024-03-14 20 4 372.2KB 7 页 免费
侵权投诉
验证 WebGL 是有效实现 Web3D 场景构建的
方式
0、引言
受制于 Web3D 技术的瓶颈,传统的用以实现三维 WebGIS 场景的 Web3D 技术,包括
Flash(Flex)Java3DX3D 等技术, 都需要加载组件或者预先安装客户端 (或插件),而且具有显示
效果不佳、兼容性差等缺陷。
WebGL 作为新一代 Web3D 图形标准,具有不需要组件加载、渲染效果好、兼容性好等优点并且
取得了众多浏览器生产厂商的支持,具有以往技术无法比拟的优势。本文在前人所做的众多探索
的基础上,采用 WebGL 作为图形引擎来展开无组件三维 WebGIS 场景系统的实现,比较了各种技
术之间的优缺点,实验验证了 WebGL 是一种非常有效的实现三维 WebGIS 场景渲染的技术手
段。
HTML5 标准发布以来,已经有不少学者开展了基于此标准的 GIS 应用研究,但是多是以 canvas
2D 环境为图形基础,无法满足三维 WebGIS 的应用要求,作为 canvas 3D 环境,WebGL 具有能够
直接调用硬件图形引擎,兼容性好等多种优点。
展开这一研究有着较大的现实意义和长远的工程学意义。首先进行这项研究具有短期的现实意
,如果能够找到一种不需要预先安装客户端或者加载组件的方法,可以避免大组件的安装,用户
不再需要等待较长时间,大大提高了用户体验。其次进行这项研究有深远的工程意义。人们一直
以来都在进行三维 WebGIS 解决方案的研究和探索。
目前 WebGL 已经展现出了强大的生命力,国内外包括谷歌、诺基亚在内的多家企业都已经展开
了基于 WebGL GIS 展示端研究工作,有些公司甚至已经推出了相关 GIS 案例展示。如果本研
究能够证实 WebGL 是一个有效的实现 Web3D 场景构建的方式,将给 WebGIS 这一领域找到一
种新的实现浏览器端三维场景构建的途径,而且摒弃传统技术的弊端,具有较高的商业和工程意
义。
1、需求定义
本文以三维 WebGIS 的展示功能作为主要的功能性需求,所设计的三维 WebGIS 场景展示系统应
具有如下功能:
(1)展示一个 Web 端的三维 GIS 基本场景,所有的 GIS 图层元素将加载在基本场景上。
(2)场景能够进行 360°的全方位展示和移动,视角能够进行放大和缩小。
(3)系统应该能够实现所有基本的 GIS 图层元素的生成、加载、卸载,按照一般 GIS 系统的要求,
所能加载的 GIS 元素包括如下几种:中英文文字标注,主要用于地名、兴趣点等的标注;图形标注,
主要用于与文字标注相结合进行地点标示;量线,主要用于道路河流轨迹、境等的标示;
量面,主要用于区块、行政区域、湖泊等的标示;三维模型,主要用于在场景中加载建
、公、地形等;影像切片,主要用于基本地制。
本文的出发点是为了解决现有的三维 WebGIS 场景都需要加载或者预先安装组件来实现的问题,
以提高用户体验和交互,此系统应该具有如下的非功能性需求:
(1)不能加载任何组件或者插件;(2)具有较好的用户体验。
2、系统设计
目前业已经有几个较为成的基于 WebGL Java-Script 三维图形框架,较为行的有
Three.jsOak3D 等。为用于 WebGIS 开发需求和本体,本人决定弃这些
框架, 按照面向对象设计的理 论,JavaScript ,应用与网页的三维图形
2.1 渲染
WebGL 通过调用内于浏览器中的 WebGL 上下文环境中的图形接进行图形,
不再需要任何组件的加载。浏览器直接通过 GPU 进行硬件图形加使WebGL 进行图形
制的程如图 1 所 示。首先,WebGL 上下文环境,根据器代码片建着,一般包
点着(VertexShader) 元着(Frag-mentShader),将着定给 WebGL 上下文,
接之生成 WebGL program。接着为需要制的图形对象创组与颜色数,如果使
用索引方式构建话还使点索引,如果使图的话还要生成纹理对象及顶
理坐组等。然后WebGL 上下文定着器需要的这些组以及纹理对象,时要为
WebGL 上下文设器需要的变量,包括投影矩阵模型视图矩阵等。最后调用 WebGL
基本图元制方法进行图形对象制。
2.2 模块划分
使1中的用于 WebGIS 场景的,系统需要设计相应的点着器以及片元着
,用于向量矩阵运算函数库,和能够进行各种 GIS 场景元素建和制的 GIS
层元素类库此系统将包括运算模块、着器、图层元素模块3个主要部分
3详细设计
3.1 运算模块
2是提了基本图形计功能的运算模块图。该模块包括经纬度坐Point2D
三维Point3D,们提了经纬度坐标以三维标的相互转换包括
量类 Vector4f,供向量乘法和加法运算四阶矩阵类 Matrix44f,四阶矩阵运算
及逆运算时该模块投影矩阵类 ProjPer-spective 正投影矩阵 ProjOrtho,用以满
足系统三维投影的需求。
3.2 图层元素模块
根据1WebGL 的渲染,为所有的场景元素设计了一个统一的建和,如图 3
所示。首先根据图层元素的需要进行对象初始化,例如取标注类型的文字标注信息、图标
,量类型数据等。接着根据获取到的数据进行各种 buffer ,例如组、
点索引组、图的纹理坐组、颜色数组等。
接着根据需要设元素对象投影矩阵模型视图矩阵常以场景的基本矩阵为元
素的投影矩阵,场景的模型试矩乘以元素对象模型变换矩阵作为元素对象最终模型试
制的时给着器设相关变量后,定前生成的各种 buffer 及投影矩阵模型
变换矩阵最后调用 WebGL 的基本图元制方法进行图层元素的制。
统一的建和程有于进行场景元素对象建和统一制调用,时有于系统的
,为图层元素不能仅仅局限于上的几种。为使所有的场景元素能够实现统一的建和
,系统通过 JavaScript 原型继承方法实现了图层元素的面向对象设计。首先设计了一个
BaseClass 作为所有的基,了一个 extend 方法来实现 JavaScript 原型继承,该方法
行的时候会有经过重声名的父类函数员继承子类,时为子类原型添加新的函数
。接着设计了一个所有场景元素的基RenderableObject,这个于一个抽象类,
programbuffer 建、设置矩阵Draw 方法等。这些方法都将在继承
RenderableObject 的场景元素中实现。
Draw 方法包buffer矩阵、设置贴图、调用图元制等子流程。这些之间的关
系如图 4所示,其中 RenderableObjectList 是为具有多个子对象的场景对象设计的场景元素,
常用来个图层或者一组元素。
摘要:

验证WebGL是有效实现Web3D场景构建的方式0、引言受制于Web3D技术的瓶颈,传统的用以实现三维WebGIS场景的Web3D技术,包括Flash(Flex)、Java3D、X3D等技术,都需要加载组件或者预先安装客户端(或插件),而且具有显示效果不佳、兼容性差等缺陷。WebGL作为新一代Web3D图形标准,具有不需要组件加载、渲染效果好、兼容性好等优点并且取得了众多浏览器生产厂商的支持,具有以往技术无法比拟的优势。本文在前人所做的众多探索的基础上,采用WebGL作为图形引擎来展开无组件三维WebGIS场景系统的实现,比较了各种技术之间的优缺点,实验验证了WebGL是一种非常有效的实现三维...

展开>> 收起<<
验证WebGL是有效实现Web3D场景构建的方式.docx

共7页,预览3页

还剩页未读, 继续阅读

作者:闻远设计 分类:其它行业资料 价格:免费 属性:7 页 大小:372.2KB 格式:DOCX 时间:2024-03-14

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 7
客服
关注