查看视锥体可视化

时间:2011-03-24 14:55:27

标签: math trigonometry frustum

考虑到摄像机的3D位置,摄像机的3D目标位置(摄像机指向的点),远离摄像机的距离,视野和纵横比,如何计算摄像机中的四个3D点。远飞机?这应该可以通过基本的三角学来实现,但我得不到正确的结果。

1 个答案:

答案 0 :(得分:0)

它可能是2D中的基本触发,但问题在3D中更精细。我没有给你一个具体的答案,但这可能会给你一些探索的途径。

Rougly,步骤如下:

  1. 查找图像平面的等式
  2. 查找FOV半径
  3. 找到FOV圈的等式
  4. 找到与该宽高比相对应的该圆上的四个点
  5. 该圆所在的平面可以通过point and normal vector获得,然后允许您在3D中确定该圆的方程(该点是相机的位置,矢量是两者之间的线相机和目标)。

    圆的半径可以通过关系r = d tan(theta / 2)来确定,其中d是摄像机和目标之间的距离,θ是以度为单位的FOV角度。

    可以根据半径和法线向量定义circle in 3D的等式。

    最后,你需要找到给定纵横比为inscribed in that circle的矩形,你的四个点是矩形和圆的交点。

    您还需要考虑相机是否可以倾斜或是否水平。这将改变点,但它们仍将位于同一个圆/平面上。

    根据您的目标,如果摄像机始终位于(0,0,0)并与其中一个轴对齐(即目标位于其中一个轴上),则可能有助于简化问题。