版本:Unity 6 (6000.0)
语言:English
使摄像机视角倾斜
来自摄像机的射线

计算视锥体在特定距离处的尺寸

在距摄像机一个组件,用于创建场景中特定视点的图像。输出要么绘制到屏幕上,要么捕获为纹理。更多信息
参见 词汇表
一定距离处的视锥体横截面在世界空间中定义了一个矩形,该矩形框定可见区域。有时需要计算此矩形在给定距离处的尺寸,或查找矩形为给定尺寸的距离。例如,如果移动的摄像机需要始终将对象(例如玩家)完全保持在拍摄范围内,则它不能靠得太近,以至于该对象的一部分被切掉。

可以使用以下公式获得给定距离(均以世界单位表示)处视锥体的高度

 var frustumHeight = 2.0f * distance * Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad);

…并且可以反转此过程以计算获得指定视锥体高度所需的距离

 var distance = frustumHeight * 0.5f / Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad);

也可以在已知高度和距离的情况下计算 FOV 角

 var cameraFieldOfView = 2.0f * Mathf.Atan(frustumHeight * 0.5f / distance) * Mathf.Rad2Deg;

每个计算都涉及视锥体的高度,但可以很容易地从宽度(反之亦然)获得此高度

var frustumWidth = frustumHeight * camera.aspect;
var frustumHeight = frustumWidth / camera.aspect;
使摄像机视角倾斜
来自摄像机的射线