บัฟเฟอร์OpenGL® Vertex คืออะไร

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

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

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

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