焦距到视野

时间:2013-12-13 18:09:29

标签: unity3d

我正在将一些3D模型从Rhino 3D导入Unity。这样做时,我需要导入相机视图。在Rhino中,他们拥有Focal长度属性,在Unity中我们有视野。 我需要将焦距转换为视野。我在这里找到了一个转换值的公式 http://paulbourke.net/miscellaneous/lens/
我打算用这个公式 垂直视场= 2 atan(0.5高度/焦距)
我的问题是如何找到高度的值。我不确定在Unity中我能从哪里获得它。

由于

2 个答案:

答案 0 :(得分:2)

数学不是我的强项,但我记得这个公式用于某个BFBC2 fov tool

hFov = 2 * atan(tan( vFov/2 ) * width/height)

宽度和高度是当前屏幕分辨率的尺寸。 我希望这对你的目的是正确的。

答案 1 :(得分:2)

要回答我的问题,这是我最后使用的公式。希望对任何有类似问题的人都有用。

Unity中C#中的代码

// Standard film size
int filmHeight = 24;
int filmWidth = 36;

// Formula to convert focalLength to field of view - In Unity they use Vertical FOV.
// So we use the filmHeight to calculate Vertical FOV.
double fovdub = Mathf.Rad2Deg * 2.0 * Math.Atan(filmHeight  / (2.0 * focalLen));
float fov = (float) fovdub;