2012-12-01 11 views
18

Po prostu nie można zobaczyć modeli zaimportowanych do sceny three.js. Geometria wygląda dobrze, ale model nie jest wyświetlany bez względu na materiał, który do niego stosuję.za pomocą three.js JSONLoader

Jestem nowym użytkownikiem WebGL, więc trudno mi go zdiagnozować, ale domyślam się, że coś jest nie tak podczas wywołania zwrotnego JSONLoader.

Dzięki za pomoc.

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

link do modelu na GitHub jest uszkodzony - czy możesz zaktualizować go do nowego adresu URL? –

+0

model js link broken – Gus

Odpowiedz

23

możliwość dodawania oczek na scenie przed model zakończeniu ładowania.

Przesuń linię

scene.add(mesh); 

do funkcji ładowarki zwrotnego.

+4

Wiedziałem, że musi to być coś tak prostego. Dziękuję za poświęcenie czasu na zapoznanie się z moim kodem –

0

animate() powinien również znajdować się w funkcji wywołania zwrotnego, aby usunąć błędy konsoli.

Powiązane problemy