2012-06-14 1 views
0

블렌더 (2.5)에 큐브를 만들고 재질과 질감을 적용했습니다. 그러나 그 모델을 Papervision 3d (2.1)로 가져올 때 아무것도 보이지 않습니다. 단지 빈 화면뿐입니다. 반면에 다른 .dae 모델을 사용하면 (예를 들어, Papervision3D Essentials 서적을 참조하므로 해당 샘플을 사용함) 모델을 볼 수 있습니다. 뭐가 문제 야? 믹서기에서 내 보낸 모델이 작동하지 않는 이유는 무엇입니까? 여기 블렌더 2.5에서 .DAE 파일을 Papervision 3D 2.1로 가져올 때 아무 것도 표시하지 않는 이유는 무엇입니까?

내 스크립트입니다

package { 

    import flash.events.Event; 

    import org.papervision3d.events.FileLoadEvent; 
    import org.papervision3d.events.InteractiveScene3DEvent; 
    import org.papervision3d.materials.BitmapMaterial; 
    import org.papervision3d.materials.ColorMaterial; 
    import org.papervision3d.materials.utils.MaterialsList; 
    import org.papervision3d.objects.DisplayObject3D; 
    import org.papervision3d.objects.parsers.DAE; 
    import org.papervision3d.view.BasicView; 
    import org.papervision3d.objects.parsers.Collada; 

    public class modelTest extends BasicView 
    { 
     private var model:DisplayObject3D; 
     private var distance:Number = 1000; 
     private var speed:Number = 0.2; 
     private var rangeX:Number = 0.02; 
     private var rangeY:Number = 0.02; 
     private var rangeZ:Number = 0.05; 
     private var targetRotationX:Number = 0; 

     public function modelTest() 
     { 
      stage.frameRate = 40; 

      init(); 
      startRendering(); 
     } 

     private function init():void 
     { 
      model = new DAE(); 
      DAE(model).load("assets/cube.dae"); 
      scene.addChild(model); 

      viewport.interactive = true; 
      model.addEventListener(FileLoadEvent.LOAD_COMPLETE, modelLoaded); 
     } 

     private function modelLoaded(e:FileLoadEvent):void 
     { 
      trace("Used materials by this model: " + model.materials); 
      true).addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, click); 
     } 


     override protected function onRenderTick(e:Event=null):void 
     { 
      super.onRenderTick(); 
     } 
    } 
} 

그리고 이것은 출력 :

INFO: Papervision3D 2.1 rev920 (August 11th, 2009) 

INFO: Viewport autoScaleToStage : Papervision has changed the Stage scale mode. 
INFO: DisplayObject3D: COLLADA_Scene 
INFO: DisplayObject3D: Cube 
INFO: DisplayObject3D: Lamp 
INFO: DisplayObject3D: Camera 
Used materials by this model: Material_001-material 

블렌더 파일 : http://imageedit.netai.net/cube.blend DAE 파일

: http://imageedit.netai.net/cube.dae

답변

0

PV3D가되지 않았습니다 Stage3D를 이용하려는 경우 최신 정보를 유지합니다. (3D 장면을위한 플래시 GPU 가속), Away3D 또는 일부 다른 엔진을 대신 사용해보십시오.

내가 말했듯이 PV3D를 만진 지 오래되었지만 Collada 지오메트리가 어떻게 작성되었는지 매우 구체적으로 기억해야합니다. Papervision3D의 파서는 사양의 하위 집합 만 읽습니다. 전체 스펙을 읽으려고하면 파서가 엄청날 것입니다. Away3d가 지원하지 않는 이유 중 일부)

"Collada blender export for Papervision"은 웹에서 유용한 게시물을 보여줍니다. 예 :

http://osflash.org/pipermail/papervision3d_osflash.org/2007-February/001726.html

콜라 다 내보내기에 삼각형이 있어야 함을 알려줍니다.

또는 Collada Parser를 파고 찾고있는 것이 무엇인지 파악할 수 있습니다. 로더가 삼각형 만 찾고 XML의 특정 위치에서만 볼 수 있습니다.

+0

감사합니다. 예. 자리 비움 3D로 전환하려고합니다. 사실, 최고의 품질을 기대하고 있습니다. 왜냐하면 3D 모델을 보여 주기만하면 애니메이션을 만들지 않기 때문입니다. 그러나 Papervision 3D는 3D 노출을 위해 좋지 않습니다. 3DS MAX에서 DAE로 내보낼 때마다 PV3D에서 품질이 떨어지는 모델을 볼 수 있습니다. 그럼, 어웨이 3D가 내 문제를 해결할거야? THanks – Gobi

+0

DAE가로드되지 않는다면 Away3D의 최신 버전이 아직 Collada 지원을 추가하지 않았기 때문에 no입니다. 가장 좋은 기회는 Away3D가 지원하는 파일 형식을보고 Max에서 가져온 파일 형식 중 하나로 내보내는 것입니다. 이 스레드는 Away3D가 읽을 수있는 Max에서 MD5로 내보내기에 대해 이야기합니다. http://away3d.com/forum/viewthread/1295/#4262 –

+0

Away3D는 Collada를 읽습니다. Collada의 Blender3D 내보내기는'_loader = new Loader3D(); _loader.loadData (new SomeColladaModelClass(), assetLoaderContext); _loader.addEventListener (AssetEvent.ASSET_COMPLETE, assetCompleteHnd); _view.scene.addChild (_loader);'Away3D가 제공하는 예제 파일 "Basic_Load3DS.as"에서 파생 된 빠르고 더러운 테스트입니다. 모든 3DS 파일 참조를 Collada 파일로 바꾸십시오. – iND

관련 문제