Three.js - 视图宽度

Lep*_*osy 17 javascript three.js

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

例如,如果我们有一个宽度为100的网格,但是使用一定级别的缩放进行渲染...如何计算在屏幕中渲染的网格部分的宽度?

Wes*_*ley 32

你必须在这里准确.

您可以从相机计算出相机的视野camera.fov和给定距离的可见矩形区域dist.

由于物体可能具有深度,因此您必须通过网格选择一个平面,并在该距离处进行计算.

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

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
Run Code Online (Sandbox Code Playgroud)

three.js r.87

  • 真的...我误解了,从`dist`发生了什么..在代码中看不到it值的先前定义,请描述一下,`dist`是什么?Dtis = 远 - 近与否?谢谢! (2认同)