OpenGL ผูกพันและความสัมพันธ์ระหว่างหน่วยงาน


12

นี่เป็นคำถามเกี่ยวกับเอกสารส่วนใหญ่ ฉันหวังว่านี่เป็นสถานที่ที่เหมาะสมในการถามและไม่เช่นโปรแกรมเมอร์หรือสแต็คโอเวอร์โฟลว์

ฉันไม่ได้อ่านข้อกำหนด OpenGL แต่จากหนังสือ (Red Book) และบทช่วยสอนต่าง ๆ ฉันไม่สามารถเข้าใจได้ว่าวัตถุและส่วนต่างๆของ API โต้ตอบและเชื่อมโยงกันอย่างไร

ตัวอย่างเช่นฉันรู้ว่าถ้า VAO ถูกผูกไว้แล้วผูก VBO และการตั้งค่าคุณลักษณะจะส่งผลให้ VBO ถูกผูกไว้กับ VAO

แต่มีวัตถุมากมายความสัมพันธ์ของพวกเขาอาจแตกต่างกันไป ตัวอย่างเช่น VAO ไม่เกี่ยวข้องอย่างสมบูรณ์กับโปรแกรมการแรเงาปัจจุบัน แต่ผลลัพธ์ของการดำเนินการวาดอาจขึ้นอยู่กับทั้งสองอย่าง

ในบรรดาองค์ประกอบต่างๆของ OpenGL ฉันสามารถเห็นความสัมพันธ์บางอย่างเช่น A-binds-to-B หรือ A-and-B-are-by-C ความสัมพันธ์ทั้งหมดเหล่านี้เห็นพ้องกันในการพิจารณาว่าใครสามารถเปลี่ยนแปลงสถานะของบริบทวิธีที่จะเปลี่ยนแปลงสิ่งต่าง ๆ จะบันทึกสิ่งต่าง ๆ เข้าด้วยกันและปรับให้เหมาะสมได้อย่างไร

ฉันกำลังมองหาทรัพยากรอธิบายเพียงความสัมพันธ์เหล่านี้ เช่นเดียวกับแผนภาพ UML กราฟหรือแม้แต่เอกสารข้อความที่ไม่ได้มุ่งเน้นไปที่การโทร แต่อธิบายอย่างกระชับว่าองค์ประกอบ OpenGL ต่างๆมีการโต้ตอบและเชื่อมโยงซึ่งกันและกัน

คุณรู้หรือไม่ว่าจะหาแหล่งข้อมูลนั้นได้จากที่ไหน?


3
เป็นคำถามที่ดีมาก ฉันมีทั้งห้องสมุด OpenGL / เครื่องยนต์ของฉันและทำงานโดยไม่มีคำตอบที่ชัดเจนสำหรับคำถามที่สำคัญ
David van brink

1
การผูก VBO ไม่ได้ผูกกับ VAO glVertexAttribPointer()นี่คือความสำเร็จแทนด้วย แผนภาพสำหรับวัตถุ OpenGL นั้นค่อนข้างตื้นและเรียบง่ายจริงๆแล้วมันมีอะไรไม่มากไปกว่าวัตถุหนึ่งชิ้นใน OpenGL VAO ใช้บัฟเฟอร์สำหรับแอตทริบิวต์ พื้นผิวบัฟเฟอร์ได้รับการสนับสนุนโดยบัฟเฟอร์ Framebuffers มีไฟล์แนบพื้นผิว คำสั่งการวาดใช้ VAO ปัจจุบันโปรแกรมปัจจุบัน framebuffer ปัจจุบันการตั้งค่าตัวอย่างปัจจุบันและบัฟเฟอร์ดัชนี / บัฟเฟอร์ทางอ้อมปัจจุบัน คุณอาจวาดแผนภาพด้วยตัวเอง
Dietrich Epp

1
ขออภัยฉันจะไม่วาดรูปให้คุณ
Dietrich Epp

2
คำถามที่ดีและจากที่ฉันยืนอยู่ขอให้โชคดีได้รับคำตอบที่ครอบคลุมโดยไม่ต้องให้ความสำคัญกับมันมากนัก
วิศวกร

2
การออกแบบของ OpenGL คืออาร์กิวเมนต์ที่ดีเกี่ยวกับเหตุผลที่คุณไม่ควรใช้ตัวแปรทั่วโลก;)(API ของทั้งเป็นหนึ่งในระเบียบมากของข้อมูลทั่วโลก)
glampert

คำตอบ:


7

ดังนั้นฉันจึงลองวาดแผนภาพของตัวเอง มันไม่ครอบคลุมส่วนใหญ่เป็นเพราะฉันไม่น่าสนใจในบางสิ่งตอนนี้ แต่เพราะฉันต้องการให้อ่านได้ (แม้ว่าจะไม่ใช่กราฟที่ระบุอย่างเป็นทางการฉันคิดว่ามันควรอ่านได้ง่าย)

นอกจากนี้เนื่องจากดูเหมือนว่าจะเป็นที่สนใจของบางคนฉันต้องการแบ่งปันที่นี่เพื่อรับข้อเสนอแนะและตรวจสอบแล้ว ฉันใช้วิกิ OpenGL เป็นข้อมูลอ้างอิงเพื่อตรวจสอบความถูกต้อง แต่อาจมีข้อผิดพลาดเกิดขึ้น

นอกจากนี้หากข้อมูลที่ให้ไว้ไม่เพียงพอสำหรับคุณหรือฉันทิ้งความสัมพันธ์ที่สำคัญซึ่งควรค่าแก่การรวมไว้ในแผนภาพรู้สึกฟรีเพื่อแนะนำและฉันจะพยายามปรับปรุงให้ทันสมัยอยู่เสมอ

แผนภาพผูกสัมพันธ์ OpenGL

อีกครั้งโปรดรายงานข้อผิดพลาดปัญหาหรือข้อเสนอแนะพวกเขายินดีอย่างอบอุ่น

แก้ไข

  1. ความสัมพันธ์ระหว่างรูปวาดและแอตทริบิวต์หายไป: ต้องเปิดใช้งานคุณลักษณะให้มีประสิทธิภาพเมื่อแสดงผล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.