你如何计算位置?

How do you calculate a position?

我想知道当你知道视点(相机)的x,y,z坐标和视点的旋转(rx,ry,rz)时如何计算一个点的位置。你知道距离(例如 4)。

解决这个问题最简单的方法是指定相对于相机的点,然后应用相机的逆变换以将点放置在世界中space。

从相机的角度来看,你描述的点是

vec4(0, 0, -4, 1)

如果您的转换采用齐次矩阵格式,

M = [ R_3x3 T  ]
    [ 0 0 0 1  ]

然后我们可以按如下方式计算倒数 (Source):

inv(M) = [ inv(R_3x3)   -inv(R_3x3) * T ]
         [   0      0      0      1     ]

现在这是我们的视图-space 到世界-space 矩阵。我们只需将此转换应用于我们的视图-space 点:

V_worldspace = M * vec4(0, 0, -4, 1)