我在下面有这个代码,似乎无法加载模型。
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();
答案 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);
应该这样做,祝你好运