by wersling on June 13th, 2008, under Article
最近做的一个项目中需要用到 3D,所以粗略的学习了一些目前Flash常用的3D engine。小有心得,和大家分享下。希望能给各位在选择3D engine时有所帮助。
papervision3d : 算是最老牌最流行的3d引擎了,as2时代就有。性能算是十分的不错(DEMO),支持 ASE 和 DAE 格式的3d模型,其中 DAE 格式的贴图支持得非常的不错。支持的材质方式十分之多,几乎我们所能想到的方式基本都有。但是相对来说,模型却不多,而且Camera也不是很好用,没有默认的控制器。并且我发现他最近更新不快,很多功能没有陆续增加,实在是可惜。如果你需要做一个需要高性能,不需要动态灯光,碰撞检测等的项目,pv3d是不错的选择。许可:MIT MIT License。
Alternativa 3D : 一群俄罗斯人写的一个商业性的3d引擎,支持3DS格式模型,支持碰撞检测。有一个类似Counter-Strike的控制器,操作镜头是十分的方便。但是如果你希望动态的设置个别模型的位置什么的,那就惨了,性能十分的差。由于他不是开源项目,所以你是做商业应用,就得好好考虑了。许可:Alternativa3D License。
Away3d : 这是一个功能很强大的3d引擎,支持多种(ASE, DAE, KMZ, 3DS, Md2, Obj)模型格式,支持3D动画,支持动态灯光等,不过性能貌似不怎么样,一个1024*1024的立方体都跑得够呛,不知道是不是我没有设置好。许可:Apache License2。
Sandy 3D : 看上去十分象PV3D,实际上我觉得他比PV3d好用,结构更加清晰,性能也十分不错。不过我觉得他还不够成熟,所以选择时需要谨慎。许可:Mozilla Public License 1.1 。
Sharikura 3D : 一个日本人写的,相信大家都看过 pictaps,那是相当的不错。在MAX会上演示的 ECO ZOO更是叹为观止。十分流畅的3D动画,都怀疑是否是flash做的。不过我们目前还只能看看这些漂亮的demo。
最后说说Flash Player10, 它在运算性能上确实提高了不少,并且提供了更多好用的功能。但是据我测试其3d性能,实在是十分一般,我仅仅对10张256*256的图片作rotationY递增,CUP就吃光了,而且我有ATI 256M独立显卡呢。看来FP10是好,使用需谨慎!
3d, 3d engine, flash, flash player, papervision3d
by wersling on June 6th, 2008, under Labs

[Demo] 源文件:panorama (590)
看到有人用 Papervision3D 做了一个,所以我也试试 Alternativa3d 的性能。同样是6个面,558个三角形。测试下来,和 Papervision3D 相差无几。只是这个立方体模型好像拼合有些问题,边界有条缝隙。
Alternativa3d, as3, flash, Panorama
by wersling on June 3rd, 2008, under Music
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
CD Cover

Product Details
Performers: Joel Fan, Wu Tong, Yo-Yo Ma, Edgar Meyer, Joseph Gramley, Mark Suter, Shane Shanahan
Composers: Traditional
Original Release Date: April 16, 2002
Label: Sony Classical
Copyright: (P) 2001 SONY BMG MUSIC ENTERTAINMENT (C) 2002 SONY BMG MUSIC ENTERTAINMENT
Song Length: 4:25 minutes
Genres: Classical/Historical Periods/Classical (c.1770-1830), Classical/Chamber Music, Classical/Historical Periods, Classical, Classical/General, Soundtracks/General
ASIN: B00137XB28
Comment
The songs like Lan Huahua.
Lan Huahua, Yo-Yo Ma, Music
by wersling on May 21st, 2008, under Resource
by wersling on May 15th, 2008, under News
http://labs.adobe.com/wiki/index.php/Astro
今天没有去上班,结果误了这么一个大的消息,还好晚上有溜网,哈哈~~想不到Adobe动作这么快,这也是Silverlight给逼的。
FlashPlayer10提供更强大的渲染模式,尤其是文本渲染,我想这些大家都知道了,而我看重的确实其中另外几点:
- RTMFP (Real Time Media Flow Protocol)
- Speex Audio Codec
- Large Bitmap Support (16,777,216 pixels (4096 x 4096) )
Real Time 和 Speex的支持,可以然我们从此不再只能播放mp3格式的声音了,虽然目前还是mp3居多。不过Adobe也是贼精的,打算拿这两个东东做流媒体服务器,新的FMS会出来。价格自然不必说,贼贵!
而更大的Bitmap支持就更好啦,以后都是高清世界,不能只是视频高清吧,图片也需要的。
最后附上下载地址:
adobe, beta, flash player
by wersling on May 12th, 2008, under Article
一直以来,我都是自己写一个Library包来为项目开发提供基础类。这个Library有些是自己写的,有些的拿了别人的代码,整合在一起。而事实上,这些功能大多在目前的Flash开源项目中都有,我的工作基本属于重复开发。
为什么开发项目难以发扬光大?我认为有部分原因是因为大家各自为政,开发了很多类似的东西,而没有集中精力来做好一个;虽各有所长,但不统一,所以,我打算在下一阶段集中维护和整合别人的开源项目应用到自己的项目中,这样我就可以跳出自己开发这些Library的框框,致力于项目的开发。
一下是我打算整合的一些开源项目,更多的开源项目可以到 osflash.org 找到。
Core
Application framework
- puremvc : 小型的项目你可以随便写就可以,但是大型的多人开发的项目,你最好有一个好的框架,puremvc也许不是最好的,但是它确实是一个不错的选择。
Data Structures
- as3ds : 一般情况下我们都用Array和Dictionary就差不多了,但是不代表你不需要一个队列什么的,as3ds在类命名上感觉有些怪,但是性能还是不错。
UI Component
- Flash CS3 UI Component : 也许很多人骂v3组件,但是对于一些小型项目来说,它可以大大降低我们的开发速度,因为你可以叫Designer去自己布局这些组件,而不用你来换肤之类的。
- Liquid Components : 这个组件还没有发布,但是我很期待它,看看demo吧,所有组件的Skin只需是一张图片,有了这个组件,你只需要designer按照文档给你图片就可以了,哈哈~当然,请确保你不是designer。
Layout Manager
- Yahoo Layout Utility : 布局管理器对于有大量列表和需要自适应窗口大小的程序来说,就变得必不可少,我在这里推荐 Yahoo Flash 开发组开发的组件。它提供一组支持Flash CS3的组件,编码规范,文档齐全。如果不需要,不妨去看看。
Multi files download
- masapi : 一个相当好用的多文件加载框架. 在项目的开始时,我们一般都需要加载很多很多的XML、图片等文件,用它我们就可以整合所有的文件加载,并显示到一个进度条中。
Animation
- tweener : 提供一组静态的接口,使用起来很是方便。
- boostworthy : 这个比起 tweener 来说,更加强大,且结构规范合理。为什么要两个都用呢,是因为很多的设计人员会用这两个做demo效果,为保持参数的统一,所以我打算都用。
3d engine
- papervision3d : 3D已经是一种趋势,Adobe自己都打算推出了呢,但是目前比较主流的还是这个PV3d,所有如果有3d方面的项目,肯定少了它。
Localization
-
Flex ResourceBundle:对于多语言,我认为用Flex自带的这个功能就不错,你可以不使用Flex组件,但是你可以在ActionScript Project 中使用这个功能,它仅仅加大你swf文件9k.并且Flex3 支持动态加载语言,并附送DateFormater、StringFormater功能。 ResoureBundle 在 Flex3 正式版中已不再支持ActionScript project。
Logging
- 实在是没有找到很好的,目前来说我还是用的自己开发的。如果哪位有发现好用的,推荐给我。同时我也打算加强我那个Output工具。
Unit test
- asunit : 测试关系到一个项目的成败,如果你需要白盒测试,asunit是不错的选择。
这里罗列的是我在项目中用到的,当然不乏更好的选择。它们之间有些很少一部分的功能存在重叠,比如masapi 中也有一个Data Structures包,但是总体来说很是比较和谐,基本不会出现冲突。
列出来给大家一个参考,如果你有更好地,也可以告诉我。
3d engine, Animation, as3, Data Structures, flash, framework, Localization, logging, Multi files download, open source, porject, SiteNews, UI Component, Unit test