【发布时间】:2012-08-21 06:15:33
【问题描述】:
如何防止THREE.PerspectiveCamera 产生否定的position.y?
我正在使用稍微修改过的 TrackballControl 来用鼠标控制相机,这会阻止相机在 z 轴上旋转,但希望让我的相机保持在“地面”上方
【问题讨论】:
标签: javascript webgl three.js
如何防止THREE.PerspectiveCamera 产生否定的position.y?
我正在使用稍微修改过的 TrackballControl 来用鼠标控制相机,这会阻止相机在 z 轴上旋转,但希望让我的相机保持在“地面”上方
【问题讨论】:
标签: javascript webgl three.js
假设您有 2 个摄像头。其中之一由TrackballControls 控制。另一个用于渲染。这是渲染循环的样子:
controls.update();
camera2.position.copy( camera.position );
if ( camera2.position.y < 0 ) camera2.position.y = 0;
renderer.render( scene, camera2 );
【讨论】:
TrackballControls,否则这是我能想到的唯一解决方案。
看看THREE.OrbitControls,它将保持相机直立而不会被黑客入侵。
如果您使用THREE.OrbitControls,并且想要限制天顶角以使相机保持在地面上方,则需要一个简单的技巧。
在OrbitControls.update()中,替换这一行:
phi = Math.max( EPS, Math.min( Math.PI - EPS, phi ) );
用这个:
phi = Math.max( EPS, Math.min( Math.PI/2 - EPS, phi ) );
【讨论】: