
感谢怀念从前在百忙中也写好了MD2的加载器,而本人也几乎在同一个晚上测试完成了3DS的加载器。现在Alchemy3D正式支持此两种格式的模型导入和渲染。当然,这只是一个测试,具体到模型纹理的加载,基于面的光照颜色加载还没有完成,因此以下两个Demo也只能以线框模式来渲染了。
这里说一下一些感言吧。我们一路走来,也算是一个奇迹吧。本人在1多年前开始接触AS3,曾经因为那丰富而强大的类而写出了无数的Demo。大概在半年前,发现2D的模式已经变得毫无新意可言,于是认识了PV3D。此后的一段日子也因为PV3D给予了我一个新的感受,新的领域,而开始抛弃2D的模式,同时开始写了无数的3D Demo。过了不久的日子,发现在PV3D那强大的功能背后,却隐含了两个致命的弱点——效率和破面。这里说一下提外话,为何一些基于FLASH Graphic API的3D引擎效率都无法提高,还导致破面呢?这一切是因为使用了Graphic API来渲染三角形,不错,确实省事了很多,几乎一两行代码可以渲染出一个三角形。但这令引擎的开发者无法进入API内部了解运作机制,无法从这个瓶颈中找到突破,速度自然就无法提高了。再说,基于API的光栅画确定了开发者最终只能到达面的级别,无法到达象素的级别,因此他们只能用传统的画家算法进行排序和渲染,而无法使用现时流行的深度缓冲,而破面因此产生了。而面数却成为了另一个瓶颈,试想想10000个面进行深度排序是怎样一个速度。多余的说话不多说了,回到话题里,正正因为这些原因,我确定放弃PV3D,放弃FLASH的Graphic API,自己开发引擎。从此,我走上了引擎的开发之路。
最初开发的引擎名字叫RC3D,当时第一次接触3D图形学,只能跟着现有成熟的引擎走,做最后的开发阶段,发现自己背离了最初的目的,让引擎变成了别人的复制品。后来用Haxe重新开发了令一个引擎,名字叫RC3DX,但最终得到的速度却令我失望。大概到了3个月前,忽然听闻SWF能使用C/C++代码编译,于是Alchemy3D便诞生了。但当时我对于C/C++是一片空白,还好找到一个强大的排挡,他就是Alchemy3D的另一个开发者——怀念从前。自此以后,我一边学习着C语言,一边编写着高级的图形学代码。到了今天,我们终于看到了成果,Alchemy3D强大的运算能力,给予了我们象素级别的操作,让我们能呈现比较真实的灯光效果,让我们抛开了多边形数目的限制,让我们能渲染一切我们想到的和没有想到的。
我们一直在努力,不久的将来,一个功能完善、高效的基于Alchemy的引擎将会和各位Flash 3D爱好者见面。
Demo1 : www.alchemy3d.cn/p/alchemy3d/external/Test3DS.html
Demo2 : www.alchemy3d.cn/p/alchemy3d/external/TestMD2.html
