复杂模型这里指的是用第三方软件预先制作的模型,最常见的是用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场景即可实现效果~!
  
本教程可自由转载,请注明转载出处,谢谢~!