如何防止THREE.PerspectiveCamera
出现否定position.y
?
我正在使用稍微修改过的TrackballControl,用我的鼠标来控制相机,这会阻止相机在z轴上旋转,但是想让我的相机保持在“地面”之上
答案 0 :(得分:1)
假设您有2台相机。其中一个由TrackballControls
控制。另一个用于渲染。这就是渲染循环的样子:
controls.update();
camera2.position.copy( camera.position );
if ( camera2.position.y < 0 ) camera2.position.y = 0;
renderer.render( scene, camera2 );
答案 1 :(得分:1)
看看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 ) );