2016-11-02 2 views
1

편집기를 사용하여 준비가 완료된 모델을 게시 한 다음 JSONLoader로로드하려고했습니다. 내가 (그 ObjectLoader를 시도) 그 문제를 해결하려고 노력 해요 - 그것은 중요한 것을 놓친 것 같습니다 : 모델이 나타나지 않을거야. 로더에서 app.json을 게시했습니다.

<body ontouchstart=""> 
    <script src="js/three.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/TrackballControls.js"></script> 
    <script src="js/JSONLoader.js"></script> 
    <script src="js/PerspectiveCamera.js"></script> 

    <script> 




width=window.innerWidth; 
height=window.innerHeight; 
start(); 
animate(); 

function start(){ 

    camera=new THREE.PerspectiveCamera(45,width/height,1,10000); 
    camera.position.set(0,0,-80); 
    control=new THREE.TrackballControls(camera); 
    control.addEventListener("change",render); 
    scene=new THREE.Scene(); 


    var loader = new THREE.JSONLoader(); 
    loader.load('app.json', function (geometry, materials) { 
    var mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials)); 
    loader.onLoadComplete=function(){scene.add(mesh)} 
    }); 




    renderer=new THREE.WebGLRenderer(); 
    renderer.setClearColor(0xaaaaaa); 
    renderer.setSize(width,height); 
    document.body.appendChild(renderer.domElement); 
    renderer.render(scene,camera); 



} 
function animate(){ 
    requestAnimationFrame(animate); 
    control.update(); 
} 
function render(){ 
    renderer.render(scene,camera); 
} 

    </script> 
</body> 

나는이 꽤 지저분 사본 & 붙여 넣기 & 오류가보고 기쁘지 & 재판 것 같다. This is the app.json-file. 누군가 나를 올바른 방향으로 안내 할 수 있습니까?

+0

'loader.onLoadComplete = function() {scene.add (mesh)}'콜백 함수 내에 콜백 함수를 설정 하시겠습니까? 왜 단순히'scene.add (mesh);를 쓰지 않는가? – prisoner849

+0

고마워.하지만 나도 그랬어. 화면이 비어 있습니다. – Lars

+0

아, 당신이 출판했다고 했으니, html, json, js 파일들로 된 아카이브를 얻었습니다. App.json은 전체 장면의 파일입니다. 나는 당신이'File -> Export Object'를 할 필요가 있다고 생각한다. 편집기를 통해 텍스처와 조명을 이미 적용했다면 – prisoner849

답변

0

상자를 만들었습니다. 질감이있는 MeshStanardMaterial을 적용하고 방향성 조명을 배치 한 다음 File -> Export Scene을 입력했습니다. "scene.json"파일이 있습니다.

코드에서이 후 나는 상자와 방향 빛 장면을받은 결과로 ObjectLoader

var loader = new THREE.ObjectLoader(); 
loader.load('scene.json', function(object){ 
    scene.add(object); 
    console.log(scene.children); 
}); 

와 장면을로드.

example

그리고 작은 말, 당신의 예제 코드에서 당신은 animate() 함수에서 render() 함수를 호출하지 않습니다.

+0

작동합니다! 고마워요! – Lars

+0

당신은 환영합니다;) 투표를하고 답변을 수락 한 것으로 표시 할 수 있습니까? ;) – prisoner849

관련 문제