这个函数基于下面列出的指定参数构建一个“观察(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);
参数 | 类型 | 描述 |
---|---|---|
xfrom | Real | 观察的位置的 x 坐标。 |
yfrom | Real | 观察的位置的 y 坐标。 |
zfrom | Real | 观察的位置的 z 坐标。 |
xto | Real | 看向的位置的x坐标。 |
yto | Real | 看向位置的 y 坐标。 |
zto | Real | 看向位置的 z 坐标。 |
xup | Real | "向上"向量的 x 坐标。 |
yup | Real | “向上”向量的 y 坐标。 |
zup | Real | "向上"向量的 z 坐标。 |
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]的摄像机的视图和投影矩阵。