4
Vertex Array Objects คืออะไร?
วันนี้ฉันเพิ่งเริ่มเรียนรู้ OpenGL จากบทช่วยสอนนี้: http://openglbook.com/the-book/ ฉันมาถึงบทที่ 2 ซึ่งฉันวาดรูปสามเหลี่ยมและฉันเข้าใจทุกอย่างยกเว้น VAO (ตัวย่อนี้ใช้ได้หรือไม่) บทช่วยสอนมีรหัสนี้: glGenVertexArrays(1, &VaoId); glBindVertexArray(VaoId); แม้ว่าฉันเข้าใจว่ารหัสนั้นจำเป็น แต่ฉันก็ไม่รู้ว่ามันทำอะไร แม้ว่าฉันจะไม่เคยใช้ VaoId เลยจุดนี้ (ยกเว้นจะทำลายมัน) แต่โค้ดก็ไม่ทำงานหากไม่มีมัน ฉันคิดว่านี่เป็นเพราะมันจำเป็นต้องถูกผูกมัด แต่ฉันไม่รู้ว่าทำไม รหัสที่แน่นอนนี้จำเป็นต้องเป็นส่วนหนึ่งของโปรแกรม OpenGL ทุกโปรแกรมหรือไม่ บทช่วยสอนอธิบาย VAO เป็น: Vertex Array Object (หรือ VAO) เป็นอ็อบเจ็กต์ที่อธิบายวิธีการจัดเก็บแอ็ตทริบิวต์จุดยอดใน Vertex Buffer Object (หรือ VBO) ซึ่งหมายความว่า VAO ไม่ใช่ออบเจ็กต์จริงที่จัดเก็บข้อมูลจุดยอด แต่เป็นตัวบอกข้อมูลของจุดยอด แอตทริบิวต์ Vertex สามารถอธิบายได้ด้วยฟังก์ชัน glVertexAttribPointer และฟังก์ชันน้องสาวสองตัว glVertexAttribIPointer และ …
116
opengl
vbo
vertex-array
vao