matrix_build_lookat

这个函数基于下面列出的指定参数构建一个“观察(look-at)”(视图)矩阵。因为这个函数修改的是视图矩阵而不是投影矩阵,所以你应该首先使用另一个矩阵函数matrix_build_projection_perspective()初始化投影矩阵,然后使用这个函数在投影中移动视图摄像机。

要设置视图,首先需要定义从查看的位置,该位置由参数(xfrom, yfrom, zfrom)表示。接下来你必须指定你看的方向,这是通过参数(xto, yto, zto)给出第二个点来完成的。最后,你仍然可以绕着从视点到观察点的直线旋转相机,为了指定这一点,我们必须给出一个“向上(up)”向量 -相机的向上方向。这是由最后三个参数(xup, yup, zup)给出的。

 

语法:

matrix_build_lookat(xfrom, yfrom, zfrom, xto, yto, zto, xup, yup, zup);

参数类型描述
xfromReal观察的位置的 x 坐标。
yfromReal观察的位置的 y 坐标。
zfromReal观察的位置的 z 坐标。
xtoReal看向的位置的x坐标。
ytoReal看向位置的 y 坐标。
ztoReal看向位置的 z 坐标。
xupReal"向上"向量的 x 坐标。
yupReal“向上”向量的 y 坐标。
zupReal"向上"向量的 z 坐标。

 

返回:

Matrix Array

 

例子:

viewmat = matrix_build_lookat(640, 240, -10, 640, 240, 0, 0, 1, 0);
projmat = matrix_build_projection_ortho(640, 480, 1.0, 32000.0);
camera_set_view_mat(view_camera[0], viewmat);
camera_set_proj_mat(view_camera[0], projmat);

上面的代码创建了一个新的观察矩阵和正交矩阵,将它们的id存储在局部变量中,然后使用它们设置分配给视图端口[0]的摄像机的视图和投影矩阵。