我画了一个带有edgehelper的网格。 当我使用鼠标旋转场景时,边缘的反应速度似乎是网格的两倍。 结果是边缘不适合"当场景旋转时,网格周围再次出现。
我做错了什么?
<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 :(得分:0)
是的,这是EdgesHelper
(以及其他一些帮助者)实施方式的结果。
如果您想使用EdgesHelper
,则必须遵守两条规则:
EdgesHelper
必须直接添加到场景中。
scene
无法应用变换(例如,可以旋转)。
因此,您必须旋转网格。
three.js r.71