我应该学习哪个浏览器的 3D 图形 API?我听说有用于 Firefox 4 的 WebGL,用于 Chrome 的 O3D,而 Shockwave 已经在所有浏览器中使用了十年。可能还有其他人,但我不确定。似乎每个现代浏览器都想要自己的多媒体实现——HTML5 视频的不同编解码器、CSS3 的不同语法等等……这样的分歧非常令人困惑,而且非常类似于 Internet Explorer。我想至少把头绕在 3D 图形前面。理想情况下,我选择的 API 不应该需要插件,使用硬件加速,并且会被尽可能多的未来浏览器支持。
3 回答
就我个人而言,我会选择 WebGL——它基于 HTML5 2D<canvas>
元素,而 O3D 实际上是建立在 WebGL 之上的。
它已经内置在 Chrome 9+ 中,并将在 Firefox 4 中(它已经在 beta 版本中)。
我也会选择 WebGL,因为它是 Khronos Group 自 2 月以来的标准。Firefox 用了将近一年的时间(但仍在版本 4 beta/rc 中)。谷歌浏览器在当前版本中得到了它。Opera 刚刚实现了它(我认为还没有完全实现) http://my.opera.com/core/blog/2011/02/28/webgl-and-hardware-acceleration-2
正如 yojimbo87 告诉你的那样,微软不是 Khronos Group 的一部分,因为微软支持与 OpenGL 并发的 DirectX。
至于 O3D,Google 将其用作插件 API,但在主网页上您可以看到它现在已被弃用。 http://code.google.com/intl/fr/apis/o3d/
对于在 Web 上进行 3D 的其他方式,您可以使用 VRML/X3D 之类的东西,flash 有一些严重的问题,但是,WebGL 发生了一件好事:您已经在手机的 firefox 上实现了 WebGL(即将推出)。我认为 Chrome 和 Safari 很快就会这样做。
如果你还不相信,WebGL 是硬件加速的,你可以在里面使用着色器。很多 API/工具都出来了。一个很棒的网站来学习它并有一些关于 WebGL 的新闻是: http: //learningwebgl.com/blog/
玩得开心。
我会选择 WebGL。它可能还不是主流(对于基于“硬核”浏览器的 3D 东西),但它得到了大玩家(如 Apple、Google、Mozilla 和 Opera)的支持,而且看起来很有前途。WebGL已经处于稳定版本 1.0。