Three.js OBJLoader不加载obj文件

时间:2013-04-09 01:18:42

标签: three.js

我正在尝试使用OBJloader.js加载obj文件 我正在尝试加载“plane.obj”文件,该文件存在于html文件所在的同一文件夹中,并且“OBJLoader.js”也存在于同一文件夹中。

页面没有显示任何内容。

以下是代码:

var scene = new THREE.Scene(); 
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; 
function render() { 
    requestAnimationFrame(render); 
    cube.rotation.x += 0.01; 
    cube.rotation.y += 0.01; 
    renderer.render(scene, camera); 
}
var texture = THREE.ImageUtils.loadTexture( 'tex.jpg' );
var loader = new THREE.OBJLoader();
loader.load( 'plane.obj', function ( object ) {
    scene.add( object );
} );
render();

2 个答案:

答案 0 :(得分:0)

这可能是由于尝试从文件系统加载资源引起的。您可能获得了相同的原始策略安全违规,需要从同一协议,域和端口提供您的页面和资源。有几种简单的方法可以做到这一点 - 我通过Node JS使用一个简单的http服务器应用程序。查看How to run things locally了解更多选项。

答案 1 :(得分:0)

嗯,事实证明,这是因为场景中没有光线造成的。此外,不正确的相机位置也可能导致"隐形" OBJ型号。尝试添加以下行:

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