此函数使用下面列出的指定参数,基于近裁剪平面的尺寸构建透视投影矩阵。
请注意,相机的视野将根据指定的 width、height 和 znear 值而变化,因为投影宽度和高度放置在指定的 Z 位置 znear 参数。
例如,给定 640x480 的恒定尺寸,如果 znear 离相机较近,视野会更宽,但如果 znear 离相机较远,视野会变窄。 此行为在以下视觉效果中进行了演示:
因此,建议使用与投影宽度相同的 znear 值,从而使视野与等效正交投影一致。
matrix_build_projection_perspective(width, height, znear, zfar);
参数 | 类型 | 描述 |
---|---|---|
w | Real | 近 Z 位置投影的宽度。 |
h | Real | 近 Z 位置的投影高度。 |
znear | Real | 近裁剪平面。 |
zfar | Real | 远剪裁平面。 |
var projmat = matrix_build_projection_perspective(640, 480, 640.0, 32000.0);
camera_set_proj_mat(view_camera[0], projmat);
上面的代码创建了一个透视投影,然后使用返回的矩阵来设置分配给视口 [0] 的相机。