GoogleO3DAPI:开发WEB3D的API
本周最大的行业新闻,除了Sun被Oracle收购,就是Google发布O3DAPI了,下面就详细介绍下该项目的内容:
GoogleO3DAPI是Google发布的开源WEB3DAPI,与GoogleMapAPI和GoogleEarthAPI不同的是,O3DAPI不是为开发者提供了图形或者地理数据服务,而是提供了一个开发WEB3D应用的类库和浏览器插件(runtime),其最大的意义在于为业界提出了一个新的WEB3D的标准,开发者使用javascript就能开发性能良好、渲染效果出色的WEB3D应用,而且是跨浏览器跨操作系统的。
在这里可以下载安装程序O3DSetup.exe,IE7下载不下来,不能弹出保存窗口,Chrome、Firefox没问题;在技术概览O3D Technical Overview我们可以看到这项技术的架构图,O3D应用通过调用O3DAPI,继而实现插件与底层图形类库OpenGL或者DirectX3D的交互,这些类库能利用显卡(GPU)的资源,从而实现高效的WEB3D渲染。
这里是开发指南,介绍了O3D编程的核心概念和常见任务;想快速体验O3D的效果就到实例浏览中挨个查看,每种编程语言都有HelloWorld,O3D也有Hello world,可惜在IE7下运行出现错误:Got error 126 loading d3dx9 library(装了DirectX9后正常),而在FF和Chrome下正常,查看CPU占用,发现不到10%,窃喜,然后查看模型旋转渲染效果Rotating a model发现CPU占用竟然在20%以下,细致的渲染效果让人惊叹,同样带物理引擎渲染的Box2DJS实例运行时,CPU在40%以下;我最喜欢的3D鼠标旋转地球Google trends visualizer运行时的CPU也在30%以下,整个实例的性能测试都让人很满意,绝对能让大多数用户接受。
这篇文章:Google试图使用O3D进入WEB3D领域,是目前能找到的唯一一篇业界评论文章,文章提供了一些更为广泛的消息,比如Google希望最终能将这项插件技术直接嵌入到浏览器中(Chrome是极有可能了),文章简要的总结到:O3D提供了一个接口来让开发者基于Javascript的web程序并能直接跟图形芯片打交道,从而意味着可以开发更好的游戏和其他应用。
从O3D的邮件列表的活跃程度能反映出这项技术的轰动性,邮件列表的一个话题让我们更加认识到了这个技术的价值:Why another standard,有位开发者提到,我们已经有了诸多web标准,比如VRML, X3D, 3DMLW, Canvas 3D, Java 3D...,为什么还要O3D,一位开发者作了回答,现原文摘录:
RML2过时10年多了;X3D过时7年多了;Java3D过时5年多了,而且不被JRE浏览器插件支持;3DMLW从来都没听说过;Flash没有3DAPI,仅仅是软件方式的2D多边形栅格器,脚本执行速度慢;shockwave封闭源码,仅有一个昂贵的创作工具,浏览器插件从来都没有被安装过;Silverlight跟Flash情况一样,而且更糟,使用来自微软的.net;Canvas3D究竟有多少浏览器能支持?安装率有多少,我猜不到5%。
我希望Google能将O3D作的更好,但是如果Adobe足够聪明的话,他们就应该集成3DPDF和Shockwave的特色到Flash中并增强它,Flash仍然有最大的安装数量;当大多数人有很强劲的显卡时甚至3D桌面时,用AS3来进行正常的3D渲染确实太慢了,而且使用2D多边形(软件方式的栅格化)配合深度排序来模拟3D渲染的这种方式很愚蠢(例如Papervision3D)。我甚至认为15年前的3D应用Amiga 1200/060都能超过今天Papervision在高端PC上的表现(看看这个例子:http://breakpoint.untergrund.net/download.php?dir=2009/amiga_demo/Videos/&file=08_034-nature-traktor-jesuschristmotocross.mp4)。
(VRML(2): outdated since >10 years;
X3D: outdated since >7 years;
Java3D: outdated since >5 years, not supported by JRE browser plugin;
3DMLW: never heard of this one;
Flash: no 3D API, just software 2D polygon rasterizer, slow scripting;
Shockwave: closed source, just one expensive authoring tool, browser plug-in nowhere installed;
Silverlight: same as Flash, only worse, .net crap from M$;
Canvas 3D: supported by how many browsers? installation base - my guess: 5%;
I hope Google is doing better with O3D. But if Adobe is smart enough,they integrate the features from 3D PDF and Shockwave into Flash and enhance it. Flash still has the biggest installation base. It's just to slow to do descent 3D rendering in ActionScript3 and it's silly to use 2D (software rasterized) 2D polys with depth sorting (stuff like Papervision3D), when most people have powerful GPUs and even 3D desktops. I think even 3D on a 15 year old Amiga 1200/060 can outperform Papervision on todays high-end PCs (have a look at winning Amiga Demo 'Jesus Christ Motocross' just released at Breakpoint 2009! Link: http://breakpoint.untergrund.net/download.php?dir=2009/amiga_demo/Videos...)
前面保留的英文原文是想让大家更原汁原味的体会目前3D技术的状况,以及Flash3D的不足,从而认识到Google的WEB3D标准的意义。
编者注:O3DAPI的提出让大家对WEB3D以及WEBGame的前景顿时明朗起来,但是仔细查看过那些实例后你可能会有点绝望,这么复杂的3D编程,都通过js来实现,会累死的,O3D技术真正的推广,如果抛开浏览器安装普及度,很大程度要依赖于相关类库的丰富,没有更加简化的API和控件,没有社区的积累,是没法真正成为标准的;另外,作者对PV3D的贡献抹杀太严重了,PV3D已经在达到了Flash软件3D渲染的极限了,相信在FP10环境下PVX会有惊人的表现,该作者看过新版后会作出不同的评价。

.gif)
.gif)




.gif)
挺 VRML 和 X3D
唉,不知道为什么 google 不支持 VRML 和 X3D 这样的标准。
http://17de.com/x3d/
不太同意
你得考虑flash player插件的普及率再说吧。反正要我装插件,除了flash player,其他的我都慎重考虑,不知其他用户如何。岂不知shockwave是如何灭亡的。
O3D vs VRML?
你好,看了你的评论,我很想知道你怎么看待VRML的!
既然VRML已经成为一个标准很久了,google推出O3D是出于什么理由呢?难道是发现了它的不足,在O3D中间得到了改进么?
很希望得到您的回音。
dillony@gmail.com
发表新评论