Three.js – 视图的宽度

有没有办法找出场景的渲染部分的宽度?

例如,如果我们有一个宽度为100的网格,但是具有一定的缩放级别,我将如何计算在屏幕上渲染的网格部分的宽度?

你必须在这里精确。

根据相机的视场, camera.fov和给定的距离dist ,可以计算可见的矩形区域。

由于物体具有深度,因此必须通过网格选取一个平面,然后在该距离处进行计算。

以下是如何计算距相机给定距离dist的可见heightwidth

 var vFOV = THREE.Math.degToRad( camera.fov ); // convert vertical fov to radians var height = 2 * Math.tan( vFOV / 2 ) * dist; // visible height var width = height * camera.aspect; // visible width 

three.js r.87