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


