Mozilla的新项目 —— 把 OpenGL 应用导出成 WebGL

1月28日,Mozilla的工程师Ehsan Akhgari通过WebGL公共邮件列表发布了他们正在做的一个新项目,它可以自动将使用C/C++编写的OpenGL应用导出成为使用JavaScript的WebGL应用。

这个项目是建立在一个免费开源的C/C++到JavaScript编译器——Emscripten的基础上的,Mozilla的计划是将其扩展从而支持OpenGL。为了达到这个目的,Mozilla正在尝试在WebGL上层加入OpenGL API的实现,这样C/C++程序调用的OpenGL接口就可以在浏览器中自动转换为WebGL接口。

目前已经放出了一个实验性质的Demo,把Linux上的著名的测试软件glxgears转换成WebGL实现的在线版本。当然这个在线版本的重点不是用来做性能测试的,而是一个概念验证,证明了把OpenGL应用自动导出成WebGL是可行的。

Ehsan说,他们下一阶段的工作内容是创建一个库,用于把OpenGL 1.1调用转换为OpenGL ES调用;一旦完成,他们就会把这个库用Emscripten编译成一个兼容层,使得OpenGL 1.1的应用可以转换成WebGL应用。

这个项目还是很令人激动的,它可以让开发者把以前开发的OpenGL桌面应用带到Web上重新焕发新生。不过现在这一领域需要做的工作还很多,如果你有兴趣,不妨联系Ehsan试试。

分享到: 更多
Posted in WebGL新闻. Bookmark the permalink.

3 comments

  1. Emscripten是一个基于LLVM的开源项目,用于将其它语言编写的项目翻译为Javascript在浏览器中运行。 是由Mozilla主导的用以与Google的GWT、Native Client相抗衡的web应用解决方案。 目前Emscripten的距离成熟和推广还面临三座大山有待翻越:
    1、翻译出的代码执行效率还有待提高。这也是Emscripten目前的开发重点,此项目中近期更新的最频繁的就是优化这一块;
    2、翻译出的代码很难调试;
    3、对于稍微大一些的应用,可能会引用一大堆其它的库。这意味着不但主应用需要移植,它依赖的所有内容统统必须移植过来。这个工作量想想就让人头皮发麻。 故而目前阶段实际应用Emscripten的主要是一些基础库的移植项目,例如ammo.js。
    目前已知的应用Emscripten(并与WebGL相关)的项目包括:
    ammo.js 这是物理引擎Bullet的Javascript移植版本,已经用于数个WebGL概念性项目中。
    Broadway 这个项目将Android的H.264视频解码器移植到HTML5上,它有一个使用WebGL的播放器前端。
    syntensity.js 这是Alon Zakai的项目,尝试将曾经的商业级3D引擎intensityengine(现已开源)移植到Javascript。
    以上提到的项目都可以在GitHub上找到。

    回复

    • 感谢如此认真的长文评论,让我们了解更多!ammo.js已经见过很多次了,是一个不错的物理引擎。Broadway这个还是第一次见,感觉这个事情应该是由浏览器的本地代码来做的,但是确实很geek!

      回复

  2. 这个如果进入实际应用阶段的话,那真是不可想象。

    回复

Post a Comment

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>