2014-09-23 2 views
0

WebGL로드를 지원하지 않는 컴퓨터와 함께 큰 obj 파일을로드해야하므로 너무 느려서 전체 개체 전후에 조명 개체를 업로드해야합니다. 이렇게하려면 전체 개체를 처리하는 동안 뷰를 회전 할 때 렌더링 프로세스를 중지해야합니다. 그 문제를 해결하는 함수가 있습니까? 고마워요!Three.js 중지 렌더링 프로세스

내 코드 : 나는 한 번에 하나의 개체를로드하려고 시도합니다

var renderWire = function() { 
     renderer.render(wireScene, camera); 
     render(); 
    }; 
    var render = function() { 
     renderer.render(scene, camera); 
    }; 

    $(document).ready(function() { 
     $(document).keypress(function(event) { 
      switch(event.keyCode) { 
       case 100: //destra 
        //rotation 
        break; 
       case 97: //sinistra 
        //rotation 
        break; 
       default: 
        //not set 
        break 
      } 

      //here i have to stop render if running and start a new render 

      renderWire(); 
     }); 
    }); 
+0

실제로 파일을로드하는 것은 WebGL과 아무 관련이 없습니다. – gaitat

답변

0

. 이렇게하면로드 프로세스의 흐름을 제어 할 수 있습니다. 3 개의 개체를로드해야하는 것 같습니다.

var firstTexture = THREE.ImageUtils.loadTexture("images/firstTexture.png", undefined, firstObject); 
function firstObject (texture) { 
      var material = new THREE.SpriteMaterial({ map: texture }); 
      firstObject = new THREE.Sprite(material); 
      scene.add(firstObject); 
      var secoundTexture = THREE.ImageUtils.loadTexture("images/secoundTexture.png", undefined, secoundObject); 
     }; 

     function secoundObject (texture) { 
      var material = new THREE.SpriteMaterial({ map: texture }); 
      secoundObject = new THREE.Sprite(material); 
      scene.add(secoundObject); 
      var thirdTexture = THREE.ImageUtils.loadTexture("images/thirdTexture.png", undefined, thirdObject); 
     }; 

     function thirdObject (texture) { 
      var material = new THREE.SpriteMaterial({ map: texture }); 
      thirdObject = new THREE.Sprite(material); 
      scene.add(thirdObject); 
      codeAfterloading(); 
     }; 

     function codeAfterloading() { 

     }; 

이 정보가 도움이 되었기를 바랍니다.