在绘制正方形之前,我们需要两个矩阵。第一个矩阵用来定义正方形在3D坐标系中相对于相机的位置。这个矩阵称为模型视图矩阵,因为它综合了模型的变换和相机之间的关系。在示例中,我们对模型的变换就是将正方形沿着负z轴进行平移(即远离相机-3.333个单位)。我们需要的第二个矩阵就是投影矩阵,这个矩阵将被用于在着色器中将相机空间中模型的3D坐标转换为绘制的视口的2D坐标。
//设置模型视图矩阵和投影矩阵
var projectionMatrix, modelViewMatrix;
function initMatrices() {
//正方形的变换矩阵-相对于相机沿着z轴稍微后移一些
//模型视图矩阵
modelViewMatrix = new Float32Array(
[1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, -3.333, 1
]);
// The projection matrix (for a 45 degree field of view)
// 投影矩阵
projectionMatrix = new Float32Array(
[2.41421, 0, 0, 0,
0, 2.41421, 0, 0,
0, 0, -1.002002, -1,
0, 0, -0.2002002, 0
]);
}