即使没有 WebGL 草案规范的流通,我们也看到了 有前景 的 3D 内容 使用 WebGL 出现在网络上,主要通过开发者的创造力和 Firefox、Chromium 和 WebKit 作为开源项目并早期支持该技术而实现。今天,Khronos 的 WebGL 工作组 发布了 WebGL 规范的初步公开草案,我们对这对网络意味着什么感到非常兴奋。
一方面,这意味着更多开发者可以参与 WebGL 的发展。有一个 公开邮件 列表,这样您就可以直接与 WebGL 工作组 成员进行交流,以及一个 网络论坛。需要指出的是,该规范尚未最终确定。来自网络社区的参与对于最终确定规范至关重要,我们希望在 2010 年第一季度完成。
这也意味着您可以开始测试草案规范的实现。您可以获得一个 Firefox nightly,它实现了 WebGL 草案规范,并且可以通过以下步骤在该构建中启用 WebGL 支持
- 在浏览器的 URL 栏中输入“
about:config
” - 在过滤器字段中搜索“webgl”
- 双击“
enabled_for_all_sites
”首选项将其更改为“true
”
支持草案 WebGL 规范 的其他浏览器列在 WebGL Wiki 上。
当然,这是早期测试版的硬件加速 3D 图形,目前需要支持 OpenGL 2.0 的 GPU 和驱动程序。特别是,英特尔集成 GPU 的大多数版本无法直接开箱即用(例如,笔记本电脑中常见的 GMA900/GMA950)。构建浏览器 nightly 构建的开发者可以使用 Mesa 诱导软件渲染,并应查看 Vlad 的 博客文章 了解如何在 Windows 上执行此操作。买者自负:使用 Mesa 将软件渲染构建到 Firefox nightly 中可能会导致性能下降,并且仅供勇敢者尝试。
WebGL 是一种免版税的跨平台 API,它将 OpenGL ES 2.0 带到网络上,作为 HTML5 的 Canvas 元素 中的 3D 绘图上下文,作为文档对象模型中的低级接口公开。
熟悉 Canvas 2D 上下文 的开发者会认识到 WebGL 是 Canvas 的另一种上下文。
// get the canvas element in the DOM
var canvas = document.getElementById("canvas3D");
var gl = canvas.getContext("experimental-webgl");
注意,在 规范 最终确定之前,该上下文称为 experimental-webgl
。
WebGL 使用 OpenGL 着色语言 GLSL ES,可以与叠加在 3D 内容之上或之下的其他网络内容干净地组合。它是一个新兴的网络标准,旨在与网络平台的其他部分一起使用。草案规范 的发布是将无插件的 3D API 带到网络上,开箱即用的一步。人们已经开始使用它来创建引人注目的库。查看 X3DOM,它是一个使用 WebGL 的 JavaScript 库,允许用户在 X3D 中创作内容。我们期待开发者的创造力像往常一样让我们感到惊讶和敬畏。
参考资料
- 查看 WebGL 草案规范
- 参与进来!Khronos 上的 WebGL 主页
- 在 WebGL Wiki 上阅读文章并贡献
- 关于 学习 WebGL 的博客
- 在 学习 WebGL 食谱 中查找 3D 食谱
7 条评论