2015-06-14 33 views
0

我绘制了一个带边框的网格。 当我使用鼠标旋转场景时,边缘看起来反应速度是网格的两倍。 结果是当场景旋转时,边缘不再适合网格。当场景旋转时,EdgesHelper失去其网格

我在做什么错?

<html> 
    <body onmousemove="bmousemove(event);"> 
    <script src="three.min.js"></script> 
    <script> 
     var prevX = 0, prevY = 0; 
     var scene = new THREE.Scene(); 
     var camera = new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight, 1,10000); 
     var renderer = new THREE.WebGLRenderer(); 

     renderer.setSize(window.innerWidth, window.innerHeight); 
     document.body.appendChild(renderer.domElement); 

     geometry = new THREE.BoxGeometry(10, 20, 40, 1, 1, 1); 
     material = new THREE.MeshBasicMaterial({ color: 0xff0000 }); 
     object = new THREE.Mesh(geometry, material); 

     edges = new THREE.EdgesHelper(object, 0xffffff); 

     camera.position.z = 100; 

     scene.add(object); 
     scene.add(edges); 
     render(); 

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

     function bmousemove(e) 
     { 
     if (prevX == 0) 
     { 
      prevX = e.clientX; 
      prevY = e.clientY; 
     } 

     scene.rotation.y += (e.clientX - prevX)/100; 
     scene.rotation.x += (e.clientY - prevY)/100; 

     prevX = e.clientX; 
     prevY = e.clientY; 
     } 
    </script> 
    </body> 
</html> 

我使用Windows 7版本下R71

回答

0

是的,这是一个如何EdgesHelper(和一些其他佣工)已经实施的结果。

如果你想使用EdgesHelper,你必须坚持两个原则:

  1. EdgesHelper必须直接添加到场景。

  2. scene不能应用变换(例如,旋转)。

因此,您将不得不旋转网格。

three.js r.71