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 に答える