Nov 18

PV3D支持导入dae格式的3D模型,并且可以贴图

Papervision3D


因为导入的文件格式是DAE,但是空间服务商又没办法设置MIME类型,我想了个办法:把DEA后缀改成服务器允许的 txt
然后AS代码中的也改为TXT后缀,大功告成
下面是代码

package {
  import flash.display.Sprite;
  import flash.display.Stage;
  import flash.display.StageAlign;
  import flash.display.StageQuality;
  import flash.display.StageScaleMode;
  import flash.events.Event;
  import org.papervision3d.cameras.Camera3D;
  import org.papervision3d.core.math.Number3D;
  import org.papervision3d.events.FileLoadEvent;
  import org.papervision3d.materials.BitmapFileMaterial;
  import org.papervision3d.materials.ColorMaterial;
  import org.papervision3d.materials.utils.MaterialsList;
  import org.papervision3d.objects.parsers.DAE;
  import org.papervision3d.render.BasicRenderEngine;
  import org.papervision3d.scenes.Scene3D;
  import org.papervision3d.view.Viewport3D;
  
  public class main extends Sprite
  {
    private var _viewPort:Viewport3D;
    private var _scene:Scene3D;
    private var _camera:Camera3D;
    private var _render:BasicRenderEngine;
    private var _dae:DAE;

    public function main()
    {
      _viewPort = new Viewport3D(425,280);
      addChild(_viewPort);
      _scene = new Scene3D();
      _camera = new Camera3D();
      _render = new BasicRenderEngine();
      
      var _materials:MaterialsList = new MaterialsList();
      _materials.addMaterial(new BitmapFileMaterial("rust.jpg"), "arrowMaterial3");
      _dae = new DAE();
      _dae.addEventListener(FileLoadEvent.LOAD_COMPLETE, onloadCompleteHandler);
      _dae.addEventListener(FileLoadEvent.LOAD_ERROR, onloadErrorHandler);
      _dae.load("arrow2.txt", _materials);
      _dae.z = -750;
      _dae.rotationX = 45;
    }
    private function onloadCompleteHandler(e:FileLoadEvent):void
    {
      _scene.addChild(_dae);
      addEventListener(Event.ENTER_FRAME, enterHand);
      
    }
    private function onloadErrorHandler(e:FileLoadEvent):void
    {
      trace("载入出现问题");
    }
    private function enterHand(e:Event):void
    {
      //trace(_dae.hitTestPoint(0, 0, -950));
      _dae.rotationX = _viewPort.mouseY * 0.5;
      _dae.rotationY = _viewPort.mouseX * 0.5;
      _render.renderScene(_scene, _camera, _viewPort);
    }
  }
}



to "PV3D支持导入dae格式的3D模型,并且可以贴图"

  1. zhou8jie Says:

    "因为导入的文件格式是DAE,但是空间服务商又没办法设置MIME类型,我想了个办法:把DEA后缀改成服务器允许的 txt
    然后AS代码中的也改为TXT后缀,大功告成"
    哈哈,听君一席话,剩下买书钱,真希望能跟您交个朋友~

Leave a Reply