คำถามติดแท็ก vertex-arrays

1
ความแตกต่างใน glDrawArrays และ glDrawElements
ในขณะที่สดชื่นใจของฉันกับ OpenGL ES ฉันมาข้ามและglDrawArraysglDrawElements ฉันเข้าใจว่ามีการใช้งานอย่างไรและเข้าใจว่าทำไมจึงแตกต่างกัน สิ่งที่ฉันดูเหมือนจะไม่เข้าใจก็คือฉันไม่สามารถดูวิธีการglDrawElementsบันทึกการโทรแบบดึง ( การบันทึกการโทรแบบดึงเป็นคำอธิบายที่กล่าวถึงในหนังสือส่วนใหญ่ที่ฉันได้อ่าน ลองนึกภาพสถานการณ์ง่าย ๆ ที่ฉันพยายามวาดรูปสี่เหลี่ยมโดยใช้รูปสามเหลี่ยม 2 รูป ฉันจะต้องมีชุดของ 6 จุดยอดใช้glDrawArraysในขณะที่ใช้glDrawElementsฉันต้องการเพียง 4 นอกเหนือจากอาร์เรย์ดัชนีที่มี 6 องค์ประกอบ รับข้างต้นนี่คือสิ่งที่ฉันไม่เข้าใจ: จะglDrawElementsบันทึกการเรียกสายได้อย่างไรถ้ายังต้องการใช้อาร์เรย์ดัชนี (ดัชนี 6 ตัวในกรณีสี่เหลี่ยม) เพื่อจัดทำดัชนีลงในอาร์เรย์จุดสุดยอดของฉันที่มี 4 องค์ประกอบ (6 ครั้ง) พูดอีกอย่างว่าหมายความว่าglDrawElementsยังคงต้องมีการดึงสายเรียกเข้าทั้งหมด 6 ครั้งglDrawArraysใช่ไหม จะใช้glDrawElementsพื้นที่ประหยัดได้อย่างไรถ้าใครยังคงต้องมี 2 อาร์เรย์คือหนึ่งสำหรับจุดยอดและอีกหนึ่งสำหรับดัชนี? ในกรณีของการวาดรูปสี่เหลี่ยมจัตุรัสจากรูปสามเหลี่ยม 2 รูปแบบเพื่อความง่ายจำนวนการเรียกแบบดึงglDrawElements(จำนวน 4 รายการในอาร์เรย์จุดยอดและ 6 รายการในแถวลำดับดัชนี) และglDrawArrays(6 รายการเฉพาะในจุดสุดยอดอาร์เรย์) ต้องแยกกันหรือไม่? ขอบคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.