1、基于 WebGL 技术和 Oak3D 引擎的交互式三维地球模型研究摘要:使用 WebGL 技术和 Oak3D 引擎对三维地球进行了模拟。该模型与平台无关,简便高效,使用简单,具有良好的 Web 交互性,不需要任何浏览器插件支持,对互联网时代的 3D 可视化实现具有一定的参考价值。关键词关键词:WebGL;Oak3D 引擎;Web 技术;交互式三维模型中图分类号:TP317.4文献标识码:A 文章编号:16727800(2014)0020153030 引言WebGL 是一项新的 Web3D 图形标准。随着互联网特别是移动互联网的蓬勃发展,Web技术越来越受到重视。Web 中必不可少的元素之一是图
2、形,随着 Web 程序复杂度的不断提高,传统的二维平面图形已无法满足程序需要,于是嵌入 Web 页的交互式三维图形应用应运而生。但是早期的 Web 交互式三维图形技术,如 Java Applet,占用资源多,性能差,无法利用图形硬件加速功能;Flash 和 Silverlight 技术虽然性能较好,但是存在需要插件支持和难以跨平台使用两大问题。WebGL 技术的出现完美地解决了上述问题。1WebGL 技术WebGL 绘图技术标准通过为 OpenGL ES2.0 增加 JavaScript 绑定,将 JavaScript 和OpenGL ES2.0 结合在一起,从而为 HTML5Canvas 提
3、供硬件 3D 加速渲染。这样 Web 开发人员可以借助系统显卡在浏览器里更流畅地展示复杂的 3D 场景和模型,为开发通用的高性能 Web 交互式三维图形应用提供了可能。2Oak3D 引擎直接利用底层 WebGL 接口进行开发,效率很低。因此,需要将常用的 WebGL 功能封装起来,为用户提供一种中间件机制,使用户在无需了解底层细节的情况下,快速开发 Web交互式三维图形应用。Oak3D 是由 Oak3D Team 开发的一套 WebGL 框架,它的最大优势是流程清晰、简单易用、性能高效。开发人员,尤其是不熟悉计算机图形学的前端开发人员,可以不必关注底层渲染细节,而把主要精力都放到上层逻辑上。W
4、ebGL 的底层绘制细节都由 Oak3D 负责完成。Oak3D 分为两层Oak3D Core 和 Oak3D Engine。Oak3D Core 封装了 WebGL 的底层接口,既有类似于 Array Buffer、Frame Buffer 和 Texture 等渲染管线的基础元素,也有处理模型、材质、相机和骨骼动画等必备功能,同时增加了图形开发所必需的数学库。Oak3D Engine 是建立在 Oak3D Core 层之上的一层,它完全基于现代图形引擎理念开发,将底层渲染细节进行二次封装,封装之后的 Engine 层只需要简单的参数配置就可以实现大量复杂图形显示效果。另外,我们可以使用矩阵描
5、述物体的形状、位移、旋转、投影等几何变化,通过大量数学计算或采集数据求出球体上顶点坐标来精确绘制各种形状的物体。3.4 添加纹理并渲染准备一张矩形纹理图片,假定其顶部和底部拉伸遵循墨卡托投影法则(Mercatorrojection)。那么我们就可以从左到右按照经线平均分割纹理图片得出坐标 u,从上到下按照纬线平均分割纹理图片得到坐标 v。首先,使用 createTexture 函数建立纹理对象并设置其属性。完成后,图片将被异步加载,也就是说,设置图片 src 属性的代码将被即执行并返回,而一个后台线程将从服务器上将图片载入。相信 WebGL 技术必将在 3D 可视化领域得到广泛应用,为 3D 实现带来更多便利和惊喜。参考文献:1程新丽.基于 WebGL 的虚拟实验教学研究J.科技经济场,2011(9):1213.2徐文鹏,徐跃通,常勇,等.基于 WebGL 纹理映射技术的水立方贴图的设计与实现J.电脑知识与技术,2013(16):241243.3刘爱华,韩勇,张小垒,等.基于 WebGL 技术的网络三维可视化研究与实现J.地理空间信息,2012,10(5):7981.4李统乾,刘凤荣.网络三维交互技术(Web3D)概述J.科技信息,2010(1):4546.5Oak3DEB/OL.http:/.(责任编辑:云昭洁)