一个立方体有六个面,每个面是一个正方形,好,绘制六个正方形就可以了。
glBegin(GL_QUADS);
glVertex3f(...);
glVertex3f(...);
glVertex3f(...);
glVertex3f(...);
glEnd();
为了绘制六个正方形,我们为每个正方形指定四个顶点,最终我们需要指定 6*4=24
个顶点。但是我们知道,一个立方体其实总共只有八个顶点,要指定 24 次,就意味
着每个顶点其实重复使用了三次。
如果我们定义一个数组,把八个顶点都放到数组里,然后每次指定顶点都使用指针,
而不是使用直接的数据,这样就避免了在指定顶点时考虑大量的数据,于是减少了代
码出错的可能性。
static const GLfloat vertex_list[][3] = {
-0.5f, -0.5f, -0.5f,
0.5f, -0.5f, -0.5f,
};
glBegin(GL_QUADS);
glVertex3fv(vertex_list[0]);
glVertex3fv(vertex_list[2]);
glVertex3fv(vertex_list[3]);
glVertex3fv(vertex_list[1]);
glEnd();
static const GLfloat vertex_list[][3] = {
-0.5f, -0.5f, -0.5f,
0.5f, -0.5f, -0.5f,
-0.5f, 0.5f, -0.5f,
0.5f, 0.5f, -0.5f,
-0.5f, -0.5f, 0.5f,
0.5f, -0.5f, 0.5f,
-0.5f, 0.5f, 0.5f,
0.5f, 0.5f, 0.5f,
};
static const GLint index_list[][4] = {
0, 2, 3, 1,
0, 4, 6, 2