日历

最新评论及回复

最近发表

Search

我在这里: 首页 » Alchemy3D » 浏览文章: Alchemy3D的MD2和3DS加载器
« Alchemy3D支持11种光照纹理混合渲染模式Introduction of Alchemy3D(一) »

Alchemy3D的MD2和3DS加载器

 

感谢怀念从前在百忙中也写好了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

  • quote 1.layola
  • 继续努力吧,期待国人的alchemy3d能做到功能齐全,效率迅速的强大引擎。
    现在我在用xxx3d引擎做个项目,normal map渲染时候真的比较慢。期待这个引擎能早日测试。
  • 2009-9-3 10:12:33 回复该留言
  • quote 2.莱菔子
  • “……1多年前开始接触AS3……当时我对于C/C++是一片空白……”
    牛猪你太牛了。期待Alchemy3D早日发布。
  • 2009-9-4 13:50:07 回复该留言
  • quote 3.Scott
  • 好相似的经历,去年11月开始接触as3,做了N多demo,玩过google map flash 版,半年后的今年5月,感觉玩2D没有意思,开始研究3D,写过正式网站,用过第三方的引擎,也自己写过功能不全的as 3d引擎,看过改过alternativa的源码,但as3的硬伤,让我很头疼。看到你的blog,又让我回想到到曾经路过的Alchemy,让我又重新拾起告别两年多的C语言,又从低落的心情回来,回到flash 3d的研究。一起加油吧,这么相似的哥们~:-)
  • 2009-9-22 4:11:19 回复该留言
  • quote 4.lync
  • http://lync-su.com
  • 虽然可以借助Alchemy来解决Z缓冲的巨大运算量这一课题,但是很遗憾,我仍然想提出一点Alchemy技术的硬伤:我来浏览Alchemy3D的demo时候发觉总是要loading很久,但是我的网速并不慢,于是我检查了一下Cache,发现A引擎有若干M之大。我猜测这应该与Alchemy要打包C类库有关,我曾做过简单Alchemy通信测试至少也要1M多,如需引入C的三维类库运算并且反馈到AS这套机制需要耗费的成本是巨大的,随着引擎功能的丰富,不知Alchemy3D会发展到怎样的尺寸。因此,不管是在网站或者app的应用上面,我觉得加载或许会成为一个门槛。。(拙见请别在意)
  • 2009-10-21 19:22:04 回复该留言

发表评论

为了防止SPAM,含链接的评论需要审核后才能显示。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。