在Three.js中加载DAE

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Three.js中加载DAE相关的知识,希望对你有一定的参考价值。

我有一个问题,我无法在Three.js中加载DAE文件。请有人帮忙吗。

我将model.dae放在与index.html相同的目录中,当我加载页面时,它只显示黑屏。

我有一个文件FBX,我用Maya将它导出到FBX_DAE

<html>
<head>
    <title>My first Three.js app</title>
    <style>canvas { width: 100%; height: 100% }</style>
</head>
<body>
    <style type="text/css">
        html, body {
            margin:0;
            padding: 0;
        }
    </style>
    <script src="js/three.min.js"></script>
    <script src="js/ColladaLoader.min.js"></script>
    <script>
        var scene = new THREE.Scene();
        var camera = new THREE.PerspectiveCamera( 75, window.innerWidth /     window.innerHeight, 0.1, 1000 );

        var renderer = new THREE.WebGLRenderer();
        renderer.setSize( window.innerWidth, window.innerHeight );
        document.body.appendChild( renderer.domElement );

        loader = new THREE.ColladaLoader();
        loader.load('model.DAE',function colladaReady( collada ){
        player = collada.scene;
        skin = collada.skins [ 0 ];
        scene.add( player );
        });

        /*
        var geometry = new THREE.CubeGeometry(1,1,1);
        var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
        var cube = new THREE.Mesh( geometry, material );
        scene.add( cube );
        */

        camera.position.z = 5;

        function render() {
            requestAnimationFrame(render);
            renderer.render(scene, camera);

            //cube.rotation.x += 0.1;
            //cube.rotation.y += 0.1;
        }
        render();

    </script>
</body>
</html>
答案

这只是一个猜测,但我怀疑你没有正确加载ColladaLoader

应该是这样的:

<script src="js/ColladaLoader.js"></script>

而不是这个:

<script src="js/ColladaLoader.min.js"></script>

如果是这种情况,您应该在控制台中看到错误。

另一答案

您可能必须在Web服务器上运行示例才能加载.dae文件,因为出于安全原因,javascript不允许在客户端上进行文件访问。

另一答案

我在Cinema4D中创建的DAE-Files遇到了同样的问题。我不得不从C4D导出FBX,将其导入Blender并使用Blender导出DAE。

C4D的DAE-Exporter好像坏了

以上是关于在Three.js中加载DAE的主要内容,如果未能解决你的问题,请参考以下文章

three.js OBJLoader 未在反应中加载

纹理没有在Three.js中加载

Three.js Collada - 在三个 js 中加载多个 Collada 对象

如何在 Three.js 中加载 .obj 3D 模型?

三.js,纹理不会在codepen中加载

如何使用 THREE.js 向 collada 文件 (.dae) 添加纹理?