2014-09-23 198 views
0

我不得不加载一个大的obj文件,因为不支持WebGL加载的计算机变得太慢,所以我必须在完整对象前后上传一个灯光对象。 为此,我需要在处理完整对象时旋转视图时停止呈现过程。有没有解决这个问题的功能?谢谢!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 2014-09-23 13:11:01

回答

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() { 

     }; 

我希望这可以帮助你。