有没有办法找出场景渲染部分的宽度?
例如,如果我们有一个宽度为100的网格,但是以一定的缩放级别进行渲染…我如何计算在屏幕上渲染的网格部分的宽度?
您必须在这里精确。
您可以根据给定相机的视场camera.fov和距dist相机的给定距离,计算可见的矩形区域。
camera.fov
dist
由于对象大概具有深度,因此您必须从网格中选取一个平面,然后以该距离进行计算。
这是计算可见光height以及width距dist相机给定距离的方法。
height
width
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