2

我正在尝试使用 OBJloader.js 加载 obj 文件我正在尝试加载存在于 html 文件所在的同一文件夹中的“plane.obj”文件,并且“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();
4

2 回答 2

0

这可能是由于尝试从文件系统加载资源造成的。您可能遇到了同源策略安全违规,需要从相同的协议、域和端口提供您的页面和资源。有一些简单的方法可以做到这一点 - 我通过 Node JS 使用一个简单的 http 服务器应用程序。查看如何在本地运行以获取更多选项。

于 2013-04-11T02:38:25.970 回答
0

好吧,事实证明我是由于场景中没有光线造成的。此外,不正确的相机位置也可能导致“隐形”OBJ模型。尝试添加以下行:

var ambientLight = new THREE.AmbientLight(0xffffff);
scene.add(ambientLight);
于 2015-02-16T13:49:18.383 回答