gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW);
triangleVertexColorBuffer.itemSize = 4;
triangleVertexColorBuffer.numItems = 3;
我们用列表的形式给每个顶点赋予颜色值,就像位置信息一样。然而,在两个数组对象之间有一个很有意思的区别,每个位置信息只需要3个数字,分别代表X轴、Y轴和Z轴的坐标,但每个颜色信息需要4个数字,分辨代表红、绿、蓝和透明度(R, G, B and Alpha)。透明度的意思就是颜色的透明程度(0代表完全透明,1代表完全不透明),我们在以后的课程中会经常用到它。这个在数组成员数量上的改变,同样也需要反映到我们建立的用来描述它们的itemSize上。
下面,我们用类似的代码来绘制矩形。这一次,因为是一个纯色的矩形,所以我们要为每个顶点赋予相同的颜色值,我们使用一个循环来实现,请看代码中的第169行到第177行的部分。