ฉันต้องกังวลเกี่ยวกับการแสดงผลแบบ quad-based ในสถานการณ์จริงหรือไม่?


9

ส่วนใหญ่ในบทแรกของหนังสือแบบสุ่มเกี่ยวกับเทคนิคการแรสเตอร์และการเรนเดอร์ฉันพบวลีบางอย่างเกี่ยวกับระบบการเรนเดอร์แบบสามเหลี่ยมและแบบสี่ภาค

ฉันไม่เคยเจอ GPU หรือไปป์ไลน์แบบ quad-based ฉันต้องกังวลเกี่ยวกับเรื่องนั้นเมื่อต้องจัดการกับ OpenGL 3.0+ หรือว่าเป็นเพียงแค่ของดั้งเดิม

คำตอบ:


9

ไม่คุณทำไม่ได้ GPU รุ่นสินค้าทั้งหมดในปัจจุบันใช้ (และใช้งานมานาน) วิธีการแรสเตอร์แบบสามเหลี่ยม แม้ว่า OpenGL เวอร์ชั่นเก่ากว่าจะรองรับGL_QUADSโหมดการเรนเดอร์ แต่มันก็ถูกแปลงเป็นรูปสามเหลี่ยมโดย GPU สินค้าโภคภัณฑ์ เป็นไปได้ว่าGL_QUADSจะส่งผลให้เกิดการ rasterization ตามรูปสี่เหลี่ยมที่เกิดขึ้นจริงบนฮาร์ดแวร์หรือนักวิชาการด้านความลับที่ใช้สำหรับการเรนเดอร์ 3D แบบออฟไลน์ระดับสูงในช่วงต้นยุค 80 หรือ 90s (ฉันไม่มีหลักฐานสนับสนุนการอ้างสิทธิ์นี้

ที่กล่าวว่าการดูรูปสี่เหลี่ยมขนมเปียกปูน (และโดยทั่วไปรูปหลายเหลี่ยม rasterization นอกเหนือจากสามเหลี่ยม rasterization) ยังคงเป็นเรื่องการศึกษาและมีประโยชน์ดังนั้นเพียงแค่ให้มุมมองที่แตกต่างของสิ่งต่าง ๆ อัลกอริทึมที่เกี่ยวข้องกับการทำเช่นนั้นมีประสิทธิภาพน่าสนใจและบางครั้งก็ยังมีแอปพลิเคชันนอกเหนือจากการเขียนโปรแกรมกราฟิก ฉันเคยใช้เทคนิคการแรสเตอร์โพลิกอนรูปหลายเหลี่ยมที่กำลังเดินเป็นวิธีการจำลองน้ำ 2D ปลอมง่าย ๆ อย่างเช่น

นอกจากนี้ยังอาจช่วยให้คุณเข้าใจว่าทำไมการแรสเตอร์สามเหลี่ยมจึงเป็นที่ต้องการส่วนหนึ่งเนื่องจากลักษณะของรูปหลายเหลี่ยมที่ไม่ใช่ระนาบที่ไม่ใช่ระนาบนอกเหนือจากสามเหลี่ยมและเนื่องจากการเพิ่มประสิทธิภาพบางอย่างที่คุณสามารถทำได้ด้วย


7

หากคุณใช้ API การแสดงผลคุณจะต้องกังวลกับสิ่งที่ API นั้นบอกให้คุณกังวล OpenGL ไม่ได้พูดอะไรเกี่ยวกับระบบการเรนเดอร์แบบ quad-based หรือ Triangle ดังนั้นคุณไม่จำเป็นต้องกังวลกับมัน

ไม่ว่าในกรณีใด GPU ระดับผู้บริโภคทั้งหมดใช้สามเหลี่ยม


ฉันสับสนดังนั้นทำไมพูดถึงเรื่องนี้ในหนังสือ OpenGL ถ้า OpenGL API นั้นตั้งอยู่บนสมมติฐานที่ว่ารูปแบบนั้นถูกสร้างขึ้นด้วยรูปสามเหลี่ยม?
user827992

4
@ user827992: อย่าถามฉัน หนังสือจำนวนมากมีข้อมูลที่ไม่จำเป็น คุณไม่เคยแม้แต่จะพูดว่า "หนังสือแบบสุ่ม" ที่คุณเจอมันจริง ๆ แล้วเป็นหนังสือเกี่ยวกับ OpenGL หรือเป็นหนังสือเกี่ยวกับกราฟิกที่ใช้ OpenGL หรือไม่
Nicol Bolas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.