无法在THREE JS中加载js模型

时间:2013-10-03 00:21:30

标签: javascript three.js 3d-model

我在下面有这个代码,似乎无法加载模型。

loader = new THREE.JSONLoader(true);
                    loader.load("modelo.js" , function ( geometry, materials) {
                        mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
                        scene.add( mesh );
                    } );

整个代码如下。如果我采取行“loader.load(...)”它工作正常并加载一个小的立方体旋转,如在threejs.org教程中的示例,但当我尝试加载我的模型时,它没有装任何东西。我看了很多例子并以不同的方式做到这一点,但它没有加载。

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);

                    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;

                    loader = new THREE.JSONLoader(true);
                    loader.load("modelo.js" , function ( geometry, materials) {
                        mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
                        scene.add( mesh );
                    } );

                    var render = function () {
                        requestAnimationFrame(render);

                        cube.rotation.x += 0.1;
                        cube.rotation.y += 0.1;

                        renderer.render(scene, camera);
                    };

                    render();

1 个答案:

答案 0 :(得分:1)

美好的一天,我用Three.js库的r61测试了你的代码。它工作正常,这是我的建议。

首先尝试为场景添加光源。例如,如果你的背景是黑色的,你加载了一个未点亮的模型(即使是纹理),它将是黑色的黑色。所以:

var ambientLight = new THREE.AmbientLight(0xBBBBBB);
scene.add(ambientLight);

如果不起作用,请查看modelo.js文件中的某些材质值,具体而言,模型的json中的colorDiffuse值设置为黑色(或匹配场景背景颜色)。你有没有在Maya有这个?无论如何,你已经说过你已经尝试了一些模型,所以这是一个很长的镜头,但如果它有助于查看这篇文章:

Loading Maya model with Three.js

接下来,你在本地运行吗?如果是,您是否在Chrome中运行它并让您设置 chrome.exe --allow-file-access-from-files 标志。如果不在Firefox中试用它,它应该可以工作。

哦还要检查(a)你的相机是不是太近了。也许回头说:

camera.position.z = 100;

或(b)您的网格足够大,可以看到:

mesh.scale.set(100, 100, 100);

应该这样做,祝你好运