ฉันเพิ่งเริ่มใช้ 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);
แม้ว่าฉันจะไม่เข้าใจเรื่องนี้ แต่จัตุรัสก็ยังคงแสดงอย่างถูกต้อง ดังนั้นจึงต้องใช้งานได้