消失点反推 FOV 计算器

修正焦距公式;输入两个互相垂直方向的消失点完整像素坐标

1. 截图尺寸

坐标原点取截图左上角;主点暂按截图中心 C=(W/2,H/2) 估计。消失点可以在截图之外,X 或 Y 坐标允许小于 0 或大于截图尺寸。

2. 腰射截图

分别找到两组在三维场景中互相垂直的平行线,并延长得到各自的消失点。

消失点 V₁
消失点 V₂
腰射 FOV:--
焦距:-- 像素

3. 开镜截图(开镜不建议用此方法,建议用尺寸法)

请从开镜截图单独测量两个消失点;不能直接沿用腰射截图中的坐标。

消失点 V₁
消失点 V₂
开镜 FOV:--
焦距:-- 像素

焦距与 FOV 公式

C = (W/2, H/2)
f² = −[(X₁−Cₓ)(X₂−Cₓ) + (Y₁−Cᵧ)(Y₂−Cᵧ)]
f = √(f²)
水平 FOV = 2 × atan(W / 2f)

这里的 f 是以像素为单位的焦距。旧版只用 X 坐标且采用错误的焦距公式,已改为完整二维坐标关系。

使用前注意

1. 只建议测腰射FOV,开镜的灭点很容易跑出图外。

2. 开镜建议用尺寸法,尺寸法即:

知道腰射FOV后,对比腰射和开镜的两个物体长度(准星不动),用画图工具看有多长像素点。

然后通过计算器算出结果。

坐标怎么量

截图左上角是 (0,0),向右 X 增大,向下 Y 增大。用图片编辑器延长两组平行线,读出各自交点的 X、Y 坐标。交点可以在画面外,因此坐标超出宽高范围是允许的。

注意:初始坐标仅用于试运行,不代表任何具体游戏的真实 FOV。请用你自己的截图重新测量。

4. 交互图示:消失点距离 → 焦距 → FOV

下面两幅图演示上面那条公式的几何含义:两组互相垂直的平行线在画面中各汇聚成一个消失点,两个消失点到主点的距离 a、b 共同决定焦距 f = √(a·b),再由 f 换算出水平 / 垂直 FOV。拖动滑块即可看到透视结构实时变化。滑块范围对应示例画布上的水平 FOV 约从 110°(a、b 取最小值)到 60°(取最大值)。

地平线(灭点应落在其上) a=220 b=220 V₁ V₂ 主点 c
网格线家族 A,延长交于 V₁
网格线家族 B,延长交于 V₂
a=220 b=220 V₁ V₂ 主点 c
棱族 A(纵深):延长交于 V₁
棱族 B(横向):延长交于 V₂
竖直棱:互相平行,灭点在无穷远,不参与计算
水平 FOV(示例画布 W=560)
--
垂直 FOV(示例画布 H=280)
--
焦距 f = √(a·b)
--px
V₁ 到主点的距离 a 220
V₂ 到主点的距离 b 220

本图示与上方计算器使用同一关系式 f² = −(V₁−C)·(V₂−C)。当两个消失点分别位于主点的左右两侧、且都落在地平线上时,该式化简为 f² = a·b;上方计算器则直接使用完整的二维坐标式,因此消失点不在地平线上也能计算。窄 FOV 时消失点会远到画面之外,图中射线会从画布外射入,这与真实截图的观感一致。

作者:西岛海