复杂模型这里指的是用第三方软件预先制作的模型,最常见的是用3DMAX软件绘制的模型,在Papervision3D中,能够使用这种模型的称之为
Collada(可拉大),实话说,我本人对3DMAX软件的建模功能并不是十分熟悉,如果想要快速达到这种建模目的,可以使用一款免费软
件:GoogleSketchUpFree,现从网上找到一款简体中文绿色版,下载地址:http://x.139.xdowns.com/085/Google%20SketchUp%206.chs.rar(附注册信息:
Name:www.xdowns.com
Serial Number:KA-290-30718084-MMM
Authorization
Number:4314573-409430-4318663
这里简要介绍使用这种模型达到的效果:
这幅截图是使用Papervision3D生成的动画乳牛效果图,3D感十分强烈~!
想要达到这种效果,在Papervision3D中要用到一个新的类:Collada,它位于
org.papervision3d.objects.parsers包中,此外还要用到一个3D显示对象类DisplayObject3D,它位于
org.papervision3d.objects包中,我要定义的乳牛cow就是用这个类来存贮模型,因此必须先import这两个类,连同基类
PaperBase一共3个类:
import PaperBase;
import
org.papervision3d.objects.DisplayObject3D;
import
org.papervision3d.objects.parsers.Collada; |
类import后,就要构造cow乳牛了,即:
public var cow:DisplayObject3D; |
cow定义完成后,接下来就是进行具体的初始化,这只需要override 父类PaperBase中的init3d()函数:
override protected function
init3d():void
{
cow = new
Collada("collada/cow.dae");
cow.moveDown(100);
cow.scale =
3;
cow.pitch(
-30);
default_scene.addChild(cow);
} |
测试一下即有相应的效果~!
完整的代码如下:
package
{
import PaperBase;
import
org.papervision3d.objects.DisplayObject3D;
import
org.papervision3d.objects.parsers.Collada;
public class MainColladaCow extends
PaperBase
{
public var
cow:DisplayObject3D;
public function
MainColladaCow():void
{
init();
}
override protected function
init3d():void
{
cow = new
Collada("collada/cow.dae");
cow.moveDown(100);
cow.scale =
3;
cow.pitch(
-30);
default_scene.addChild(cow);
}
override protected function
processFrame():void
{
cow.yaw(2);
}
}
} |
补充说明:Collada文件要放在MainColladaCow这个类同包下的collada文件夹中,一共有2个文件:cow.dae和cow.png素材下载点此。
总结:本课学习了有关复杂模型在Papervision3D中的使用。一般地,使用复杂3D模型时必须要用到Collada类,再进行实例化,重新渲染3D场景即可实现效果~!
本教程可自由转载,请注明转载出处,谢谢~!