0

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

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

1 回答 1

1

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

首先尝试将光源添加到您的场景中。例如,如果您的背景是黑色的并且您加载了一个未点亮的模型(即使带有纹理),那么它将是黑底黑字。所以:

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

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

使用 Three.js 加载 Maya 模型

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

哦,还要检查 (a) 你的相机是不是太近了。也许把它移回去说:

camera.position.z = 100;

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

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

应该可以的,祝你好运

于 2013-10-03T14:17:25.130 回答