【问题标题】:Formula for calculating camera x y position to force 3d point to appear in center of screen计算相机 x y 位置以强制 3d 点出现在屏幕中心的公式
【发布时间】:2014-09-11 03:29:30
【问题描述】:

我需要计算相机 x y 位置的公式,这将强制给定的 3D 点出现在屏幕的中心。换句话说,相机平移以将点移动到中心,而不改变 FOV、旋转或 z 坐标。

【问题讨论】:

    标签: math 3d


    【解决方案1】:

    假设当前摄像机位置为camPos,其方向为camDir。根据您的投影,有几个选项如何计算屏幕中心的视图光线,但大多数时候它只是:

    ray(t) = camPos + camDir * t
    

    我们不想改变位置的 z 坐标。所以计算参数 t 以击中目标点p 非常简单(假设位置具有正确的 x 和 y 坐标):

    t = (p.z - camPos.z) / camDir.z
    

    我们可以通过以下方式计算屏幕中心在给定深度处的当前点:

    currentScreenCenter = camPos + camDir * t
    

    为了击中pcamPos 必须按此差异进行移动:

    camPos += (p - currentScreenCenter)
            = p - camPos - camDir * (p.z - camPos.z) / camDir.z
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      相关资源
      最近更新 更多