2016-10-18 3 views
0

obj 및 JSON 파일을 구문 분석 할 수있는 three.js 파서에서 작업 중입니다.three.js를 사용하여 카메라 위치를 동적으로 설정하는 방법

문제는 서로 다른 개체 정렬입니다. camera.position.z의 값을 하드 코딩해야합니다. 그러나 이것은 역동적이지 않습니다.

어떻게이 값을 동적으로 계산할 수 있습니까? 이미 @WestLangley의 솔루션을 시도했지만 작동하지 않습니다. 어쩌면 나는 그것을 잘못하고있다. 기능 - 당신은 렌더링()를 호출 할 필요가

camera = new THREE.PerspectiveCamera(45, width/ height, 1, 10000); 
camera.position.z = 200; 

// scene 
scene = new THREE.Scene(); 

scene.add(camera); 

THREE.Loader.Handlers.add(/\.dds$/i, new THREE.DDSLoader()); 

var mtlLoader = new THREE.MTLLoader(); 
mtlLoader.setPath(object_path.dir); 
mtlLoader.load(object_path.mtl, function(materials) { 

    materials.preload(); 
    var objLoader = new THREE.OBJLoader(); 
    objLoader.setMaterials(materials); 
    objLoader.setPath(object_path.dir); 
    objLoader.load(object_path.object, function (object) { 

     // object.position.y = - 95; 
     camera.lookAt(object.position); 
     scene.add(object); 

    }, onProgress, onError); 
}); 

renderer = new THREE.WebGLRenderer({preserveDrawingBuffer: true }); 
renderer.setPixelRatio(window.devicePixelRatio); 
renderer.setSize(width, height); 
container.appendChild(renderer.domElement); 

controls = new THREE.OrbitControls(camera, renderer.domElement); 
+0

@WestLangley 여기에서 도와주세요. 나는 무엇을 잘못하고 있는지 알지 못한다. ..! : / – rut2

답변

0

:

여기 내 코드입니다. 그리고이 함수에서 현재 상태에 따라 camera.z를 동적으로 계산할 수 있습니다. 좋아요 :

 var render = function() { 
      requestAnimationFrame(render); 

      camera.position.z = ... 
      renderer.render(scene, camera); 
     }; 

     render(); 
관련 문제