十一、后记

image

WebGL 的未来

WebGL 的未来会怎样?在这篇后记中,我们将讨论 WebGL 的优点和一些问题,并对它的未来进行推测。

为了让 WebGL 有一个光明的未来,而不是像其他过去的 3D 浏览器尝试(如虚拟现实标记语言(VRML))一样失败,它需要以下几点:

  • 支持
  • 来自开发社区的采用,尤其是游戏开发者
  • 改进和积极发展

支持

这里我们将看看来自浏览器和设备的支持。

浏览器支持

正如书简介中提到的,Chrome 和 Firefox 在支持 WebGL 方面做得非常好。Safari 和 Opera 正在改进,IE 近期没有原生支持 WebGL 的计划。虽然五年前这可能是一场灾难,但 IE 并没有获得它曾经享有的市场份额——Chrome 已经超过了它,Firefox 也紧随其后。

移动设备支持

目前支持 WebGL 的移动设备数量很少,但随着每一款新设备的发布,这一水平将会提高,到 2013 年,这一水平将会大大提高。

目前,有几种支持 WebGL 的移动浏览器:Firefox Mobile、Android 浏览器、Opera Mobile(仅限 Android)、BlackBerry Playbook 和 iOS Mobile Safari(目前仅支持 iAd)。

移动市场份额正在增长,是一个重要的发展领域。由于 Adobe 最近宣布将停止对移动 Flash 的支持,WebGL 有了一个更好的机会来确立自己作为移动 3D 首选技术的地位。

Florian Boesch 的网站http://webglstats.com/有一些非常有趣的统计数据,关于跨浏览器、设备和操作系统的各种 WebGL 指标的当前支持。

收养

正如本书中提到的,Google 已经将 WebGL 用于其身体、地图和地球应用。

我们在第 9 章中展示了 Firefox 正在使用 WebGL 对文档对象模型(DOM)进行新的 3D 调试可视化。获得知名公司的支持和使用是很重要的,谷歌、Mozilla、苹果和 Opera 都提供了支持。同样重要的是,要有写得好的框架来降低 3D 编码的门槛。Three.js 这样的框架已经很容易使用了,并且会继续变得更好。

WebGL 有何优势

  • 不需要插件。
  • The timing is right. 3D in the browser is more useful now than back when VRML tried. GPUs are more powerful. WebGL is part of the larger movement of HTML5 and related technologies, which adds many browser enhancements which are making it possible to create applications previously only possible on the desktop.

    “几十年来,网络一直在通过吸管吸取这种能力,但有了 WebGL,当谈到图形处理能力时,就好像吸管被消防水管取代了一样。。."http://www . tnl . net/blog/2011/10/23/web GL-and-the-future-of-the-web/

  • Web 应用没有平台兼容性问题,也不需要安装。

  • WebGL 框架使得开始使用 WebGL 变得越来越容易。
  • 对于有经验的图形程序员来说,在底层调整 WebGL 的能力是非常有用的。
  • 许多令人敬畏的演示。
  • 规范的透明开发。
  • 经验和现有开发人员。Khronos 还负责 OpenGL 和 Collada。有许多当前的 OpenGL 和 OpenGL ES 开发人员可以相当容易地学会/过渡到 WebGL API。

关系

WebGL 功能强大,非常有前途。然而,它是一种相对较新的语言,存在一些问题,包括:

  • 缺少微软的支持。如前所述,这并不像微软统治浏览器市场时那么重要。究竟是出于安全考虑还是出于对自身 DirectX 技术的兴趣而不支持 WebGL,只有微软能说得准。
  • 安全问题。 GPU 黑名单和安全性更高的新型显卡将有助于解决 GPU 问题。跨来源资源共享等其他网络安全措施将在保持安全性的同时实现灵活性。
  • Flash 或其他用于 3D 的技术。如上所述,Flash 停止移动支持有助于缓解这种担忧。
  • JavaScript 的性能问题。JavaScript 很慢。已经进行了改进,例如类型化数组,并且正在研究更多的优化。
  • 游戏开发者需要加入进来。现在将详述这一点。

游戏开发商

Florian Boesch 在 http://code flow . org/entries/2011/sep/11/webgl-and-html 5-challenges-for-the-future/的一篇出色的博客文章解释了 web GL 如何需要游戏开发者采用它。在条目中,列出了游戏开发人员需要的几个功能,其中与 WebGL 相关的功能特别多:多个渲染目标、几何实例化、顶点着色器中的纹理查找以及浮点纹理。目前浏览器对这些功能的支持可以在这里提到的 webglstats.com 链接中找到。

积极发展

WebGL 规范、未来扩展和浏览器实现都在积极开发中。

扩展

WebGL 语言的核心扩展正在开发中,可以在 http://www.khronos.org/registry/webgl/extensions/观看。在目前列出的扩展中,有三个特别有用:

  • 各向异性过滤,提高以倾斜角度观看的纹理质量
  • 阴影贴图的深度纹理
  • 压缩纹理

可能很快添加的未来功能包括:

  • 更多扩展,如跨上下文共享或多个呈现目标。
  • web workers 中的多线程。这将允许上传纹理和数据,而不会阻塞主线程。

  • 异步上下文创建和上下文之间的资源共享。

最后一句话

技术领域没有什么是确定的,但我坚信 WebGL 会一直存在下去——否则我不会花时间和精力写这本书。WebGL 是一项非常有前途的技术,它的开发恰逢其时,因为浏览器正处于快速发布周期,并且每天都在支持更多的高级功能。这也是一个越来越多功能强大的计算机被塞进任何地方的移动设备的时代。WebGL 已经是一项非常有用的技术。框架改进将有助于降低新开发人员的门槛,更多的调试和实用工具将被创建,性能将继续提高。