ทศวรรษที่ 80s เป็นช่วงเวลาที่เริ่มมีความหลากหลายของคอมพิวเตอร์ โดยเริ่มจุดประกายโดย Xerox Star ทำให้เกิดคอมพิวเตอร์ส่วนบุคคลขึ้นหลากหลาย เช่น Apple Lisa ตามมาด้วย Macintosh ในฝั่ง PC ก็วิวัฒนาการจาก DOS ไปสู่ Windows และเครื่องระดับ Workstation ก็ผุดขึ้นมาทั้ง Sun, NeXT, IBM, HP และ Silicon Graphics
การเขียนโปรแกรมด้านกราฟฟิกในเวลานั้นยังไม่มีมาตรฐานใดๆ นักพัฒนาต้องเขียนโปรแกรมกราฟฟิกในระดับ driver ขึ้นเองสำหรับ hardware รุ่นต่างๆ
ผู้นำด้านกราฟฟิกในตอนนั้นคือ Silicon Graphics Inc. (SGI) ซึ่งพัฒนา API ชื่อ IRIS GL ขึ้นมาใช้กับเครื่องของตนเอง ไม่ได้เปิดเป็น public ได้ชื่อว่าเป็น API ที่ใช้ง่าย และ render แบบ immediate mode
บรรดาบริษัท workstation อื่น คือ Sun, IBM และ HP ก็รวมตัวกันสร้าง API ขึ้นมาแข่งชื่อว่า PHIGS แต่ยังมีความสามารถน้อยกว่า IRIS GL มาก แต่ด้วยอำนาจทางการตลาดของบริษัทยักษ์ใหญ่เหล่านี้ กลับทำให้ส่วนแบ่งตลาดของ SGI ลดน้อยลงเรื่อยๆ
เพื่อให้ตลาดยอมรับมากขึ้น SGI จึงตัดสินใจเปิดให้ IRIS GL เป็น Open Standard แต่ติดปัญหาเรื่อง license และ patent จึงสร้าง API ขึ้นใหม่ชื่อ OpenGL ซึ่งสร้างขึ้นโดยใช้ IRIS GL เป็นฐาน
ในปี 1992 SGI ก็ตั้งคณะกรรมการชื่อ OpenGL Architectural Review Board (ARB) ประกอบด้วยตัวแทนจาก SGI, Microsoft, IBM, DEC และ Intel ทำหน้าที่กำหนดและปรับปรุง specification ของ OpenGL ต่อมาจำนวนกรรมการเพิ่มเป็น 9 คนที่โหวดจากบริษัทต่างๆ
OpenGL พัฒนาเรื่อยมา โดยออก major version มาแล้ว 4 เวอร์ชั่น ที่ใช้กันแพร่หลายได้แก่เวอร์ชั่น 1.0, 2.1, 3.2 และ 4.x ด้วยเหตุที่ OpenGL พัฒนามาแล้ว 30 ปี จึงต้องมีการปรับให้เข้ากับฮาร์ดแวร์ใหม่ๆ
การปรับใหญ่เกิดขึ้นในเวอร์ชั่น 3.0 ที่ปรับกับชนิดที่ ARB ทะเลาะกันเละ เพราะต้องเอา API เก่าๆที่ล้าสมัยออกไปเป็นจำนวนมาก (legacy GL) แล้วแทนที่ด้วย API ใหม่ที่เรียกว่า “Modern GL” และยังกำหนด profile ขึ้นสองแบบคือ OpenGL Core และ Compatibility Profile
Compatibility Profile จะมี Modern GL API ผสมกับ Legacy GL ทำให้การ port โปรแกรมเก่าทำได้เป็นขั้นตอน ส่วน Core Profile จะมีแต่ Modern GL เท่านั้น ดังนั้นหากพูดถึง “Moder GL” เรามักจะหมายถึง OpenGL Core Profile เป็นหลัก
ในปี 2006 คณะกรรมการ OpenGL ARB ก็โอนหน้าที่ควบคุมและพัฒนา OpenGL spec ไปยัง Khronos Group ดูแลต่อ
เนื่องจาก Windows มีการพัฒนา DirectX ขึ้นมาเป็น Graphics Library ของตัวเอง เลยไม่ค่อยสนับสนุน OpenGL เวอร์ชั่นสุดท้ายที่มากับ Windows คือ OpenGL 1.1 แต่บรรดาการ์ดจอต่างๆทั้ง Nvidia, AMD, Intel ต่างก็พร้อมใจกันติดตั้ง OpenGL มาพร้อมกับ driver ของการ์ดจอของตัวเอง
เมื่อ GPU เร็วขึ้นเร็วขึ้น และโปรแกรมกราฟฟิกและเกมซับซ้อนขึ้น OpenGL ก็ปรับใหญ่อีกครั้งในเวอร์ชั่น 4 (GL 4.4) ผลักการทำงานไปยัง GPU มากขึ้น มี GLSL Compute Shader และใช้เทคนิคใหม่ๆที่ทำให้ลดการทำงานของ CPU ลงมาก แต่อย่างไรก็ตาม OpenGL และ DirectX 11 ก็เริ่มถึงขีดจำกัด
AMD เห็นแนวโน้มว่า OpenGL จะตอบสนองโปรแกรมและเกมสมัยใหม่ไม่ได้ จึงสร้าง Graphics API ใหม่ชื่อ Mantle แล้วเสนอต่อ Khronos จึงพัฒนาขึ้นเป็น API ใหม่ชื่อ Vulkan ในขณะเดียวกัน Microsoft ก็พัฒนา DirectX 12 ในทำนองเดียวกัน
ฝั่ง Apple จะขยับด้านกราฟฟิกช้ากว่าฝั่ง PC ใช้ OpenGL 2.1 มาเรื่อย จนคนอื่นไป 3.0 และ 4.0 กันแล้ว ถึงจะออก OpenGL 3.2 บน Mac ในปี 2012 แถมยังไม่ยอมมี Compatibility Mode ทำให้นักพัฒนาไม่ค่อยทำโปรแกรมกราฟฟิกใน Mac กัน
และพอ Apple ออก OpenGL สำหรับ Mac มาถึง GL 4.1 ซึ่งค่อนข้างจะง่อยๆ ขาด features ไปหลายอย่าง และด้วยความเป็น Apple ก็ไม่ยอมใช้ Vulkan ประกาศยุติการอัพเดท OpenGL และทำ API ของตัวเองชื่อ Metal
และเนื่องจากมือถือมีอีกมาตรฐานคือ OpenGL ES ทำให้ยุ่งไปอีกเพราะถ้าเขียนบนมือถือกับคอมพิวเตอร์ก็ต้องทำเพิ่ม Google ก็แก้ปัญหาโดยการออก Angle ขึ้นมาเป็น API ที่ครอบ OpenGL ES ทำให้ใช้ได้ทั้งมือถือและคอมพิวเตอร์
และมีอีกมาตรฐานคือ WebGL และต่อมาคือ WebGPU ก็ทำให้ปวดหัวถ้าต้องเขียนทั้ง Web ทั้ง Native ทำให้ Google ต้องออก Dawn มาครอบอีกตัว
ตอนนี้มาตรฐาน Graphics API จึงมี 6 ตัวคือ OpenGL (ซึ่งยังใช้กันมากอยู่), DirectX 12, Vulkan, Metal, Angle และ Dawn
และนั่นคือความปวดหัวของคนทำโปรแกรมกราฟฟิก….