2013-04-09 59 views
2

我想加載obj文件使用OBJloader.js 我想加載「plane.obj」文件存在於同一個文件夾中的HTML文件存在和「OBJLoader .js「也存在於同一個文件夾中。Three.js OBJLoader不加載obj文件

頁面不顯示任何內容。

下面是代碼:

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(); 
+0

控制檯是否顯示任何錯誤? – mrdoob 2013-04-09 01:56:09

+0

您可以確保plane.obj與另一個查看器加載嗎?你也可以從場景中移除立方體。如果plane.obj太小,它可能會落入立方體內,並需要一些比例因子。 – gaitat 2013-04-09 09:53:15

+0

謝謝Mrdoob和Gaitat。我檢查了控制檯錯誤,並且它的「只有HTTP支持跨源請求」。我想我將不得不從服務器(http:// localhost等)運行此頁面。 – user2259784 2013-04-10 01:18:29

回答

0

這可能是由試圖加載從文件系統的資源引起的。您可能會獲得相同的來源策略安全違規,並需要從相同的協議,域和端口提供您的頁面和資源。有幾個簡單的方法可以做到這一點 - 我通過Node JS使用一個簡單的http服務器應用程序。請查看How to run things locally瞭解更多選項。

0

那麼,事實證明,這是由於現場沒有燈光造成的。此外,不適當的相機位置也可能導致「隱形」OBJ模型。嘗試添加以下行:

var ambientLight = new THREE.AmbientLight(0xffffff); 
scene.add(ambientLight); 
相關問題