【问题标题】:Display nothing when I import .DAE file from blender 2.5 to Papervision 3D 2.1 why?当我将 .DAE 文件从 blender 2.5 导入到 Papervision 3D 2.1 时,什么也不显示,为什么?
【发布时间】:2012-06-17 20:23:33
【问题描述】:

我在搅拌机 (2.5) 中创建了一个立方体并应用了材质和纹理。但是当我将该模型导入 Papervision 3d (2.1) 时,我什么也看不到 - 只是一个空白屏幕。另一方面,如果我使用任何其他 .dae 模型(例如,我指的是 Papervision3D Essentials 书籍,所以我使用了这些示例),那么我可以看到该模型。有什么问题?为什么我从搅拌机导出的模型不起作用?

这是我的脚本:

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

【问题讨论】:

    标签: flash 3d blender papervision3d


    【解决方案1】:

    PV3D 尚未保持最新状态,如果您希望利用 Stage3D(用于 3d 场景的 Flash GPU 加速),您可以尝试使用 Away3D 或其他一些引擎。

    话虽如此,我已经有一段时间没有接触 PV3D 的东西了,但我记得我必须非常具体地了解 Collada 几何的编写方式 - Papervision3D 中的解析器只读取规范的一个子集(如果它试图阅读完整的规范,解析器会很大——部分原因是 Away3d 不支持它)

    搜索“Collada blender export for Papervision”会在网上看到一些有用的帖子,例如:

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

    告诉我们您的 Collada 导出必须有三角形。

    或者,您可以深入研究 Collada Parser 并找出它要查找的内容 - 您会看到加载程序仅查找三角形,并且仅在 XML 中的特定位置。

    【讨论】:

    • 感谢您的信息。是的,我正在考虑切换到 Away 3D。实际上,我期待最好的质量,因为我不会做动画只是为了展示 3D 模型。但是我体验到 Papervision 3D 不适合暴露 3D,无论我从 3DS MAX 导出为 DAE,我都可以在 PV3D 中看到质量非常低的模型。所以你觉得,Away 3D 会解决我的问题吗?谢谢
    • 如果你的意思是你的 DAE 没有加载,那么没有,因为最新版本的 Away3D 还没有添加 Collada 支持。您最好的机会是查看 Away3D 支持的文件格式并将其导出到 Max 中的一种。该线程讨论了从 Max 导出到 MD5,Away3D 可以阅读:away3d.com/forum/viewthread/1295/#4262
    • Away3D 读取 Collada。可以使用_loader = new Loader3D(); _loader.loadData(new SomeColladaModelClass(), assetLoaderContext); _loader.addEventListener(AssetEvent.ASSET_COMPLETE, assetCompleteHnd); _view.scene.addChild(_loader); 导入 Collada 的 Blender3D 导出​​,这是从 Away3D 提供的示例文件“Basic_Load3DS.as”派生的快速而肮脏的测试。只需将所有 3DS 文件引用替换为您的 Collada 文件即可。
    • 好的。谢谢。您是从存储库中检出它吗,它在 fp11 src 中吗?我仍然没有在加载器中看到 Collada 或 DAE 解析器,只是假设它还不存在(也许它是新的?)。
    • 出于各种原因,我通常只对所有代码使用标准的公共下载方法。我指的是从 Away3D 网站下载的“Gold”。 Collada 解析器是away3d.loaders.parsers.DAEParser。您可以通过AssetLibrary.enableParser(DAEParser); 激活它,或者使用Parsers.enableAllBundled(); 激活所有解析器。
    猜你喜欢
    • 2011-04-11
    • 1970-01-01
    • 2013-08-17
    • 2011-05-13
    • 2018-09-08
    • 1970-01-01
    • 2022-07-06
    • 2019-03-27
    • 1970-01-01
    相关资源
    最近更新 更多