2012-12-01 8 views
18

three.jsシーンにインポートされたモデルは表示されません。 ジオメトリはきれいに見えますが、モデルに適用される素材に関係なくモデルは表示されません。three.jsを使用してJSONLoader

私はWebGLに慣れていないので、診断するのは難しいですが、JSONLoaderコールバックで問題が起こっていると思います。

ありがとうございました。

var camera, scene, renderer, mesh, loader; 

init(); 
animate(); 

function init() { 

    camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 1, 10000); 
    camera.position.z = 1000; 

    scene = new THREE.Scene(); 

    loader = new THREE.JSONLoader(); 

    loader.load("scripts/model.js", function(geometry) { 
     mesh = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial()); 
     mesh.scale.set(10, 10, 10); 
     mesh.position.y = 150; 
     mesh.position.x = 0; 
    }); 

    scene.add(mesh); 

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

    var directionalLight = new THREE.DirectionalLight(0xffffff); 
    directionalLight.position.set(1, 1, 1).normalize(); 
    scene.add(directionalLight); 

    renderer = new THREE.WebGLRenderer(); 
    renderer.setSize(window.innerWidth, window.innerHeight); 

    document.body.appendChild(renderer.domElement); 

} 

function animate() { 

    requestAnimationFrame(animate); 

    mesh.rotation.x += 0.05; 

    renderer.render(scene, camera); 
} 
+0

GitHubのモデルへのリンクが壊れています - 新しいURLに更新できるのですか? –

+0

モデルjsリンクが壊れていた – Gus

答えて

23

モデルのロードが完了する前に、シーンにメッシュを追加しています。

ローダコールバック関数にライン

scene.add(mesh); 

を移動

+4

私はそれが単純なものでなければならないことを知っていました。私のコードを見る時間をとってくれてありがとう –

5

が、これは、より正確な答えを検索し、誰に役立つかもしれないと思った:完全なローダーrefrenceにも

loader.onLoadComplete=function(){scene.add(mesh)} 

を、こちらを参照してください。

http://threejs.org/docs/index.html#Reference/Loaders/Loader

は、このことができます願っています。

0

animate()も、コンソールエラーを取り除くためにコールバック関数に含める必要があります。

関連する問題