我刚刚开始使用我从一本书中自学的openGL。在我的书中,有人告诉我使用三角形条来构建四边形,因为它更有效。本书使用这些顶点来创建四边形。
vertices.push_back(-0.5f);
vertices.push_back(0.0f);
vertices.push_back(0.0f);
vertices.push_back(0.5f);
vertices.push_back(0.0f);
vertices.push_back(0.0f);
vertices.push_back(-0.5f);
vertices.push_back(0.0f);
vertices.push_back(-1.0f);
vertices.push_back(0.5f);
vertices.push_back(0.0f);
vertices.push_back(-1.0f);
我不明白为什么 z 轴不是恒定的,似乎 z 轴应该保持恒定而 y 轴应该改变以使正方形显示为 2d。我不明白为什么使用 z 轴。
这是其余的代码
在缓冲区中加载顶点
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * vertices.size(), &vertices[0], GL_STATIC_DRAW);
显示正方形
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(0.0, 5.0, 0.1, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
glVertexPointer(3, GL_FLOAT, 0, 0);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
尽管我不明白这一点,但正方形仍然正确显示,所以它必须工作。