以往的 Flash3D 引擎都不支持 GPU 硬件解码,解码工作只能由 CPU 来完成,导致性能极其低下,只能渲染简单的 3D 模型。Adobe 一项新技术 Stage3D 的面世标志着这一问题终于被解决,GPU 承担起解码的重任,仅需占用很少的 CPU 就能得到很复杂的 3D 模型。但是 Stage3D 是底层 API,需要开发者有较高的编程技巧,开发门槛较高,为了帮助国内 Flash 开发者学习,Adobe Evangelist 与 9RIA 团队共同开发了一款 Stage3D 可视化学习工具——Nihao Flash3D。以下为 InfoQ 中文站对该工具的两位主导者 @7yue 和 @杜增强 DzQ 的主要访谈内容:
InfoQ:请谈下 Nihao Flash3D 开发的初衷及开发背景是什么?
7yue:2011 年初,Adobe 在其 labs 网站上放出了一个叫做 Flash Player Incubator 的测试项目,其目的是将很多新功能的测试引入其中,供开发者评测。第一期引入的新功能叫做 Stage3D,是下一代 Flash Player 11 使用 GPU 对 3D 进行硬件加速的底层 API,使 Flash Player 11 可以与支持 DirectX 和 OpenGL 驱动的独立显卡进行直接协作,对 Flash 中的 3D 内容进行硬件加速。这对于很多使用 Flash 技术进行游戏开发的开发者而言,是一个革命性的新功能。
由于 Stage3D API 是底层 API,需要开发者有较高的编程技巧,并且对于特定的 Shader 语言和宏汇编有一定的了解,如果想要被广大开发者尤其是初学者所掌握,还是具备比较高的知识门槛。因此,2011 年 5 月,我与我们国内的 Flash 开发者冠军社区 9RIA 的几名 Flash 开发专家决定推出一款供开发者可视化学习 Stage3D 的工具,经过 1 个月的架构规划和几个月的开发,Nihao Flash3D 这个工具即将随着 Flash Player 11 和 AIR 3 的正式发布而推出第一个正式版本。
以下是 Nihao Flash3D 的界面:
InfoQ:Nihao Flash3D 的主要功能及特点是什么?
7yue: Nihao Flash3D 这个工具使用 Flex 框架,AIR 运行时打包成为可以在 Window 和 MAC 平台上运行的一款工具,它的界面灵感来自 Adobe 的另一款开发者工具 TourDe Flex。在这款工具中,开发者可以浏览到不断更新的演示范例,而这些演示范例分别来源于 Adobe 官方的 Stage3D 基本演示,支持 Stage3D API 的流行的第三方 3D 最新版本的框架,如 Flare3D、 Alternativa3D、Yogurt3D、Away3D 等,还包括了利用 Stage3D 进行 2D 图形渲染加速的框架 ND2D 和 Starling 等等,目前内置的 Demo 数量有将近 50 个,而且 95% 以上的 Demo 都附带源代码供学习者参考。
Nihao Flash3D 是一款特点鲜明的可视化学习工具,目标是使用 Stage3D 的 Flash 开发者,旨在通过持续的更新,将全球范围内最流行的框架和相关演示代码不断的聚合在 Nihao Flash3D 这款工具中,方便开发者尤其是刚刚接触 Stage3D 的开发者进行快速的可视化学习。在这个工具中,除了可以看到最新的 Stage3D API 的用法,还能直接看到 Stage3D 构造的各种范例,并且能将范例的源代码打包下载。
这个工具还提供了 3 个重要的功能,搜索排序,评分和分享。随着 Demo 数量的不断增多,开发者可以使用关键字搜索特定 Demo,也可以按照应用以往所有 Demo 被浏览的次数和评分等条件进行排序浏览。评分是提供给开发者对特定范例进行评价,提供了工具后台进行范例的更新一个有力的数据支撑,高评分的 Demo 留下,低评分的 Demo 慢慢被淘汰。分享是允许开发者通过新浪微博将喜欢的 Demo 转发到新浪微博上,让更多感兴趣的开发者看到这样的范例,进而下载 Nihao Flash3D 这个工具。
InfoQ:现在是否有可下载的版本供开发者使用?
7yue:在 Nihao Flash3D 最后正式发布前,开发者可以通过加入新浪微博 Flash3D 这个开发者群来获取到这个应用的下载地址。 http://q.weibo.com/312314
InfoQ:您对这个工具的后续规划是什么?
7yue:2011 年最后一个季度的规划是,通过 9RIA 社区公开发布 Nihao Flash3D 的第一个版本。后续更多的规划包括:在 2011 年底,将范例数量提升到 70 个左右。2012 年,规划英文版本和移动设备上针对 OpenGL ES 的版本。
InfoQ:现在微群上也有关于该工具的讨论,能否分享下开发者的使用感受?
7yue:目前此款工具处在正式发布前的最后阶段,共有 47 个范例供开发者使用,其中有几个有代表性的 Demo 是由中国的开发者提供,被工具进行了收录。这款工具在测试期间,Flash3D 的开发者微群的注册人数增长到了 900 多个成员,微群内工具下载次数超过 1100 次,Demo 浏览次数累计达 4000 多次。
InfoQ:您开发这个工具所用技术是如何选择的,技术选型的依据是什么?
杜增强:我们使用的是 Adobe AIR+Flex 技术来开发这个应用的,主要考虑的是借助 AIR 可以很轻松的实现跨平台,同时使用 Flex 框架提供的一整套完善的组件和机制可以快速的开发企业类应用程序,这样可以降低我们的开发成本,提供开发效率。
infoQ:您是怎么看待 Stage3D 的?
杜增强:大家不要被 Stage3D 这个名字所误导,不要以为只有写 3D 有关的程序才会用到。其实不是这样的,就如同 7yue 上面提到的,Stage3D 实现的是使用 GPU 对程序硬件加速的底层支持,同样可以用在传统的 2D 应用中。在 Nihao Flash3D 中有相关的例子,大家可以去学习参考一下。
infoQ:您可以给广大的 Flash 开发者推荐几个学习的途径吗?
杜增强:好的,首先,第一个就是 Adobe 官方的开发人员中心(Adobe Developer Connection),上面都是 Adobe 的相关技术人员发布的最新的技术特性讲解和示例。第二个就是借助广大的社区资源,比如 9RIA 天地会等,第三个就是参加各种社区活动,比如 RIA 天地行等。还有当然就是可以在微博上去关注 7yue 等 flash 牛人。
关于受访者
7yue,Adobe 平台技术推广经理 。99 年开始接触 Flash,2004 年加入 Macromedia 公司任职解决方案工程师,2006 至 2008 年,在 Adobe 公司担任过解决方案工程师和大客户技术经理,目前是 Adobe 平台技术传教士。作者博客: 7yue 的博客,作者微博: @7yue 。
杜增强,Adobe RIA 社区认证专家,9RIA 天地会专家讲师, 多年来一直从事 Flash 的开发工作,曾供职于 123Show 公司从事富媒体解决方案工具开发, 为 HP 某移动平台项目做过 Flex 顾问。作者博客: DzQ 杜增强.com ,作者微博: @杜增强 DzQ 。
相关主题
Adobe Stage3D 专区页面: http://www.adobe.com/devnet/flashplayer/stage3d.html
如何启用 AIR3 的 Stage3D: http://vdisk.weibo.com/s/HrQp
关于 Nihao Flash3D
Nihao Flash3D v1.0 稳定版本已正式发布。对 Stage3D 感兴趣的朋友可以用来作为一款学习帮助的小工具了。点击微盘下载。
评论