A闪的 BLOG 技术与人文
从这篇文章开始,笔者打算将编写系列关于stage3D的教程,请大家放心。这系列教程考虑到国内行情,不会和任何国外教程产生冲突,当然,复制粘贴和翻译这样工作也不会出现在我编写教程的工作中。
stage3D发布的时间并不长,同时ADOBE在新技术上的资料不足,也是大家学习时候的巨大障碍之一。这里将总结一套比较完善的教程以供大家学习。好吧,闲话少说,开始真是进入话题。
其实很多问题我们必须通过实践来验证,同时我也在研究的时候咨询ADOBE的一些技术经理以确认这方面的内容正确无误。很多人都知道stage3D基本原理是将我们所有三维的图像传递给GPU进行计算并返回图像。其实在这个过程中我们也需要做很多事情,以方便底层来进行数据运算。第一个就是告诉GPU一些关于3D图像的数据,没有这些硬性数据GPU不知道你要对哪些东西进行计算,这个操作的过程很想以前我们在使用CPU计算时将所有的数据存放到内存中一样。其次,虽然GPU善于图形图像运算,但并不带便它具有一定的人工智能。也就是说,我们需要告诉GPU在什么时候使用何种算法进行计算,当然,最后计算后的结果GPU也不知道它们所代表的含义,这些含义是我们人类定义的,也只有我们能抽象出它们的概念。
关于硬件的一些硬性指标问题,很多人都会担心flashplayer11在不同的PC中运行是否能够启用硬件加速功能,这里也涉及到一些无法避免的硬伤。因为我们以前使用CPU进行编程操作,其中不需要考虑太多的硬件因素,因为CPU的架构仅仅只有有限的那么几种,而且flashplayer底层都能够完美的进行处理。但是在调用GPU的年代,我们不能只考虑硬件问题,因为大部分硬件的运行都会依赖于驱动程序来进行调用。而驱动程序的变数就非常大。官方也是基于这方面的考虑,将显卡驱动定义为2009年1月1日之后发布的驱动为蓝本来制作flashplayer11。也就是说在flashplayer11内部ADOBE已经为我们定义了一个黑名单,这个黑名单中屏蔽掉了以前的老版本显卡驱动,这些驱动不是在功能上有欠缺就是自身存在BUG。不过大家放心,随时时间的推移,ADOBE也在努力将更多的显卡驱动纳入可支持的白名单内。
如果你的机器中存在DX,并且能够正常的开启加速,那么恭喜你,你可以成功运行stage3D的程序了。笔者也曾做过测试,具体测试过程及其结果可参考《stage3D不同硬件测试》这篇文章。在不同平台上我们使用的是不同的可编程管道作为支持,普通PC中我们使用DX,而MAC系统和Linux中我们则调用OpenGL来开启显卡加速功能。我们同样期待ADOBE放出的下一个版本即将支持移动终端的版本,到时候会支持OpenGL ES2来进行加速。
后面的教程内容会出现大量的几何数学公式计算和大量的编码演示。如果大家觉得在阅读学习时有困难或者文章中出现错误,也欢迎大家给我发E-mail留言交流问题。
E-mail:mebius@max2d.com