OpenGL® Quad คืออะไร?

รูปสี่เหลี่ยมOpenGL®หรือรูปสี่เหลี่ยมในการเขียนโปรแกรมคอมพิวเตอร์และกราฟิกเป็นรูปทรงสามมิติ (3D) หรือที่เรียกว่ารูปหลายเหลี่ยมที่มีสี่ด้านและสี่จุด แต่ละจุด 3D ที่แสดงถึงมุมเดียวของ Quad OpenGL นั้นรู้จักกันในชื่อจุดสุดยอดและถูกกำหนดด้วยตัวเลขสามตัวที่เกี่ยวข้องกับตำแหน่งพิกัดในพื้นที่เสมือน จุดยอดของรูปสี่เหลี่ยมไม่จำเป็นต้องทำตามแนวทางจริงใด ๆ ยกเว้นว่าจะต้องมีสี่ของพวกเขา ไม่เช่นนั้นรูปร่างจะเรียกว่ารูปหลายเหลี่ยมสามเหลี่ยมหรือเส้นขึ้นอยู่กับจำนวนจริง ภาพดิจิทัลส่วนใหญ่เป็นสี่เหลี่ยมจริงดังนั้นรูปสี่เหลี่ยมOpenGL®อาจเป็นรูปร่างที่มีประโยชน์เนื่องจากภาพสามารถแมปพื้นผิวกับพื้นผิวได้โดยไม่ผิดเพี้ยนจำนวนมากและไม่จำเป็นต้องใช้เทคนิคการทำแผนที่พื้นผิวที่ซับซ้อน อย่างไรก็ตามการใช้รูปสี่เหลี่ยมOpenGL®มีความท้าทายเป็นของตัวเองและมีโปรแกรมเมอร์จำนวนมากที่แนะนำให้หลีกเลี่ยงการใช้งานอย่างสมบูรณ์

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

ข้อได้เปรียบของการใช้รูปสี่เหลี่ยมOpenGL®ตามที่โปรแกรมเมอร์บางคนคิดว่าเป็นการง่ายกว่าที่จะคิดว่าการรวมตัวกันของสี่คนนั้นดีอย่างไรเมื่อเทียบกับการมองเห็นว่ารูปสามเหลี่ยมประกอบกันอย่างไร นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับรูปร่าง 3 มิติอย่างง่ายเช่นลูกบาศก์ที่แต่ละรูปสี่เหลี่ยมมีด้านเดียว ด้วยตาข่ายสามเหลี่ยมคุณจะต้องรวมสามเหลี่ยมสองอันเพื่อสร้างรูปสี่เหลี่ยมที่ทำด้านเดียว ล่ามสามารถปรับเปลี่ยนมุมมองหรือเอฟเฟกต์อื่น ๆ ได้อย่างง่ายดายภายในสภาพแวดล้อมที่มีการเรียงต่อกันหรือจัดแนวกับตาราง

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

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

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