โอเพนจีแอล

โอเพนจีแอล (OpenGL: Open Graphics Library ไลบรารีกราฟิกส์แบบเปิด) คือส่วนต่อประสานโปรแกรมประยุกต์ (API) ด้านการเร็นเดอร์ภาพกราฟิกส์เวกเตอร์สองมิติและสามมิติ ที่ทำงานได้หลายแพลตฟอร์มและหลายภาษา ส่วนต่อประสานนี้มักใช้ทำงานระหว่างหน่วยประมวลผลกราฟิกส์ (GPU) เพื่อให้บรรลุผลการเร็นเดอร์แบบเร่งด้วยฮาร์ดแวร์
โอเพนจีแอลได้รับการพัฒนาขึ้นโดยบริษัทซิลิคอนกราฟิกส์ (Silicon Graphics Inc.: SGI) ตั้งแต่ พ.ศ. 2534 และออกเผยแพร่เมื่อ 30 มิถุนายน พ.ศ. 2535 และใช้งานอย่างกว้างขวางในการออกแบบใช้คอมพิวเตอร์ช่วย (CAD) ความเป็นจริงเสมือน การทำให้เห็นได้เชิงวิทยาศาสตร์ การทำสารสนเทศให้เห็นได้ เครื่องจำลองการฝึกบิน และวิดีโอเกมเป็นต้น โครโนสกรุป ซึ่งเป็นกลุ่มบริษัทด้านเทคโนโลยีที่ไม่แสวงผลกำไร ได้เข้ามาบริหารจัดการโอเพนจีแอลตั้งแต่ปี พ.ศ. 2559
== ประวัติ ==
ตั้งแต่คริสต์ทศวรรษ 1980 การพัฒนาซอฟต์แวร์ที่สามารถทำงานกับฮาร์ดแวร์กราฟิกได้หลากชนิดเป็นความท้าทายอย่างยิ่ง นักพัฒนาซอฟต์แวร์เขียนอินเทอร์เฟซและไดรเวอร์ของตนเองสำหรับฮาร์ดแวร์แต่ละชิ้น ทำให้ต้องใช้ความพยายามทวีคูณและมีราคาแพง
มาถึงต้นคริสต์ทศวรรษ 1990 ซิลิคอนกราฟิกส์เป็นผู้นำในเรื่องภาพกราฟิกส์สามมิติสำหรับเครื่องสถานีงาน เอพีไอชื่อ ไอริสจีแอล (IRIS GL) ของบริษัทนี้ ถือว่า "นำสมัย" และกลายมาเป็นมาตรฐานด้านอุตสาหกรรมตามความนิยม บดบังรัศมี ฟิกส์ (PHIGS) ซึ่งเป็นเอพีไอที่มีพื้นฐานบนมาตรฐานเปิด เนื่องจากไอริสจีแอลใช้งานง่ายกว่าฟิกส์ และรองรับการเร็นเดอร์ในภาวะทันที (immediate mode)
บริษัทคู่แข่งของซิลิคอนกราฟิกส์ (รวมทั้งซันไมโครซิสเต็มส์ ฮิวเลตต์-แพคการ์ด และไอบีเอ็ม) ก็สามารถนำฮาร์ดแวร์สามมิติที่รองรับส่วนขยายต่าง ๆ สำหรับมาตรฐานฟิกส์เข้าสู่ตลาด ทำให้ส่วนแบ่งการตลาดของซิลิคอนกราฟิกส์ลดลงเนื่องจากผู้ผลิตฮาร์ดแวร์ภาพกราฟิกส์สามมิติเข้าสู่ตลาดมากขึ้น ด้วยความพยายามที่จะคงไว้ซึ่งอิทธิพลในตลาด ซิลิคอนกราฟิกส์จึงตัดสินใจเปลี่ยนไอริสจีแอลเป็นมาตรฐานเปิด ซึ่งนั่นก็คือ โอเพนจีแอล
อย่างไรก็ตาม ซิลิคอนกราฟิกส์มีลูกค้าด้านซอฟต์แวร์จำนวนมาก ซึ่งการเปลี่ยนจากไอริสจีแอลเป็นโอเพนจีแอลจะต้องใช้เงินลงทุนมาก ยิ่งไปกว่านั้น ไอริสจีแอลมีฟังก์ชันหลายฟังก์ชันที่ไม่เกี่ยวข้องกับด้านภาพกราฟิกส์สามมิติอยู่ด้วย เช่น เอพีไอที่เกี่ยวกับการจัดแบ่งหน้าต่าง คีย์บอร์ดและเมาส์ เป็นต้น เพราะว่ามันได้พัฒนาขึ้นก่อนที่จะมีเอ็กซ์วินโดวซิสเต็มและระบบนิวส์ของซัน และไลบรารีต่าง ๆ ของไอริสจีแอลไม่เหมาะที่จะเปลี่ยนเป็นมาตรฐานเปิดเนื่องจากปัญหาด้านลิขสิทธิ์และสิทธิบัตร ปัจจัยเหล่านี้ทำให้ซิลิคอนกราฟิกส์จำเป็นต้องคอยสนับสนุนผู้พัฒนาซอฟต์แวร์และเอพีไอที่ใช้ไอริสจีแอลเป็นฐานต่อไป ในขณะที่การสนับสนุนตลาดโอเพนจีแอลก็โตเต็มที่
ข้อจำกัดหนึ่งของไอริสจีแอลก็คือ การเข้าถึงคุณลักษณะที่รองรับโดยฮาร์ดแวร์ที่กำหนดเท่านั้น ถ้าฮาร์ดแวร์กราฟิกไม่รองรับคุณลักษณะอันใดอันหนึ่ง โปรแกรมประยุกต์ก็จะไม่สามารถใช้คุณลักษณะนั้นได้ โอเพนจีแอลได้แก้ปัญหานี้โดยเตรียมซอฟต์แวร์รองรับไว้สำหรับคุณลักษณะที่ไม่มีในฮาร์ดแวร์ ช่วยให้โปรแกรมประยุกต์สามารถใช้กราฟิกขั้นสูงบนระบบค่อนข้างต่ำได้ โอเพนจีแอลได้กำหนดวิธีการเข้าถึงฮาร์ดแวร์ให้เป็นมาตรฐาน ผลักดันภาระการพัฒนาโปรแกรมส่วนต่อประสานฮาร์ดแวร์ให้เป็นของผู้ผลิตฮาร์ดแวร์ และมอบหมายฟังก์ชันการจัดแบ่งหน้าต่างให้ระบบปฏิบัติการทำแทน ด้วยฮาร์ดแวร์กราฟิกมีมากมายหลายหลาก การทำให้ฮาร์ดแวร์ทั้งหมดพูดคุยด้วยภาษาเดียวกันในแนวทางนี้จึงเป็นผลสะท้อนที่โดดเด่น ที่ทำให้นักพัฒนาสามารถพัฒนาซอฟต์แวร์ภาพกราฟิกสามมิติบนแพลตฟอร์มในระดับที่สูงขึ้น
เมื่อ พ.ศ. 2535 ซิลิคอนกราฟิกส์ได้เป็นผู้นำในการตั้งคณะกรรมการทบทวนสถาปัตยกรรมโอเพนจีแอล (OpenGL Architecture Review Board: OpenGL ARB) ขึ้นมา ซึ่งเป็นกลุ่มของบริษัทต่าง ๆ ที่จะคอยบำรุงรักษาและขยายข้อกำหนดของโอเพนจีแอลในอนาคต
เมื่อ พ.ศ. 2537 ซิลิคอนกราฟิกส์ได้มีแนวคิดที่จะสร้างโอเพนจีแอลพลัสพลัส (OpenGL++) ที่มีส่วนประกอบอย่างเช่น เอพีไอ scene-graph (โดยคาดว่าจะใช้เทคโนโลยีเพอร์ฟอร์เมอร์เป็นฐาน) ข้อกำหนดนี้หมุนเวียนกันอยู่ในกลุ่มของบริษัทที่สนใจกลุ่มเล็ก ๆ แต่ก็ไม่ได้กลายมาเป็นผลิตภัณฑ์
เมื่อ พ.ศ. 2538 ไมโครซอฟท์ได้เผยแพร่ไดเรกต์ทรีดี (Direct3D) ออกมา ซึ่งในที่สุดก็กลายมาเป็นคู่แข่งหลักของโอเพนจีแอล ต่อมาวันที่ 17 ธันวาคม พ.ศ. 2540 ไมโครซอฟท์กับซิลิคอนกราฟิกส์ได้ริเริ่มโครงการฟาเรนไฮต์ ซึ่งเป็นความพยายามบรรลุเป้าหมายการรวมส่วนต่อประสานโอเพนจีแอลกับไดเรกต์ทรีดีเข้าด้วยกัน (และเอพีไอ scene-graph ด้วย) และต่อมาฮิวเลตต์-แพคการ์ดก็ได้เข้าร่วมโครงการด้วยใน พ.ศ. 2541 โครงการเริ่มต้นขึ้นด้วยสัญญาที่ว่าจะนำเอพีไอคอมพิวเตอร์กราฟิกส์สามมิติที่โต้ตอบได้มาสู่ชาวโลก แต่เนื่องด้วยข้อจำกัดทางการเงินของซิลิคอนกราฟิกส์ เหตุผลเชิงกลยุทธ์ของไมโครซอฟท์ และการขาดการสนับสนุนด้านอุตสาหกรรมโดยทั่วไป โครงการนี้จึงถูกทอดทิ้งไปเมื่อ พ.ศ. 2542
เมื่อเดือนกรกฎาคม พ.ศ. 2549 คณะกรรมการทบทวนสถาปัตยกรรมโอเพนจีแอล ได้มีมติให้ส่งมอบการควบคุมมาตรฐานเอพีไอของโอเพนจีแอลแก่โครโนสกรุป (Khronos Group)
=== ความเปลี่ยนแปลงในอุตสาหกรรมเกมส์ ===
เมื่อเดือนมิถุนายน พ.ศ. 2561 บริษัทแอปเปิล  ได้ประกาศว่าสถานะของ OpenGL และ OpenCL จะถือเป็น deprecated (เลิกใช้) ในทุกแพลตฟอร์ม (iOS, macOS และ tvOS) โดยเสนอแนะให้นักพัฒนาโปรแกรมหันไปใช้ Metal API ซึ่งเป็นผลิตภัณฑ์ของแอปเปิลแทน เอพีไอดังกล่าวได้รับการเผยแพร่มาตั้งแต่ พ.ศ. 2557
บริษัทไอดีซอฟต์แวร์ (id Software) ได้ใช้โอเพนจีแอลในการสร้างเกมตั้งแต่ GLQuake (เปลี่ยนเทคโนโลยีจาก  Quake มาเป็นโอเพนจีแอลโดยมีการปรับแต่งเล็กน้อย) ซึ่งถูกปล่อยออกมาในปี พ.ศ. 2540  ตัวเอนจิ้นแรกของบริษัทที่ใช้โอเพนจีแอลอย่างถูกต้องมีลิขสิทธิ์คือ Quake II engine หรือ  id Tech 2 ในปี พ.ศ. 2559 พวกเขาได้ปล่อยตัวอัพเดตสำหรับ id Tech 6 ซึ่งใช้ Vulkan อันเป็นเทคโนโลยียุคใหม่ถัดจากโอเพนจีแอล ID Tech 7 จึงเลิกใช้โอเพนจีแอล
เมื่อเดือนมีนาคม พ.ศ. 2566 บริษัทวาล์ว (Valve Corporation) ได้ถอดโอเพ่นจีแอลออกจาก Dota 2
โครโนกรุ๊ปได้ถอดโอเพนจีแอลออกจากเทคโนโลยีคอมพิวเตอร์กราฟฟิกส์สมัยใหม่หลายตัว เช่น เรย์เทรซซิ่ง การเข้ารหัสวีโดโอบนจีพียู การลบรอยหยักในกราฟิกส์ อัลกอริธึมในดีพเลิร์นนิ่ง FidelityFX Super Resolution(FSR) ของ AMD และ Nvidia DLSS
เกมส์ Atypical ซึ่งสนับสนุนโดย Samsung ได้ปรับปรุงเอ็นจิ้นใหม่โดยใช้ Vulkan แทนที่จะเป็นโอเพนจีแอล
นอกจากนี้ Google Stadia และระบบปฏิบัติการ Fuchsia ก็ใช้ Vulkan เป็นกราฟฟิกเอพีไอหลัก รวมทั้งต้องการให้ใช้จีพียูที่สนับสนุน Vulkan ด้วย ทั้งนี้ Fuchsia ตั้งใจที่จะใช้โอเพนจีแอลบนชั้นของ Vulkan ด้วยเลเยอร์ของ ANGLE translation
==ประวัติรุ่น==
โอเพนจีแอลรุ่นแรก หรือเวอร์ชั่น 1.0 เปิดตัวเมื่อ 30 มิถุนายน พ.ศ. 2535 โดยมาร์ค ซีกัล และเคิร์ต อะเคลลีย์ หลังจากนั้นมา โอเพนจีแอลได้รับการปรับปรุงคุณลักษณะหลายเวอร์ชัน ในแต่ละเวอร์ชันได้กำหนดฟีเจอร์ต่าง ๆ ที่เป็นพื้นฐานให้กราฟฟิกการ์ดต้องสนับสนุนหรือรองรับ และต่อต้านส่วนต่อขยายด้วยการเขียนที่ง่ายกว่วา เวอร์ชันใหม่แต่ละเวอร์ชันมีแนวโน้มที่จะรวมส่วนขยายต่างๆ เข้าด้วยกันซึ่งได้รับการสนับสนุนอย่างกว้างขวางจากผู้จำหน่ายกราฟิกการ์ด แม้ว่ารายละเอียดของส่วนขยายเหล่านั้นอาจมีการเปลี่ยนแปลงได้
==แหล่งข้อมูลเรียนรู้-ฝึกฝน==
OpenGL Step by Step ฝึกการเขียนโปรแกรมโดยใช้โอเพนจีแอล ทีละสเต็ป
OpenGL Introduction  แนะนำการเขียนโปรแกรมโดยใช้โอเพนจีแอล
OpenGL SDK  แนะนำเครื่องมือพัฒนาโปรแกรมโดยใช้โอเพนจีแอล
Anton's OpenGL 4 Tutorials  ฝึกการเขียนโปรแกรมโดยใช้โอเพนจีแอล เวอร์ชั่น 4
Getting Started - OpenGL Wiki  เริ่มต้นกับโอเพนจีแอลวิกิ
Learn OpenGL  เรียนรู้โอเพนจีแอล พร้อมซอร์สโค้ด
==วัลแคน==
วัลแคน (Vulkan) เดิมเรียกว่า "Next Generation OpenGL Initiative" (glNext) เป็นการออกแบบระบบใหม่เพื่อหลอมรวม OpenGL และ OpenGL ES ให้เป็น API เดียว ซึ่งจะไม่คำนึงถึงความเข้ากันได้กับเวอร์ชั่นของโอเพนจีแอลที่มีอยู่
วัลแคนเวอร์ชั่นแรก ได้รับการเผยแพร่เมื่อวันที่ 16 กุมภาพันธ์ พ.ศ. 2559
Vulkan เป็น API ใหม่สำหรับกราฟิกที่เร่งความเร็วด้วยฮาร์ดแวร์ (และการคำนวณทั่วไป) ผ่าน GPU ดั้งเดิม โอเพนจีแอลจะยังคงได้รับการพัฒนาต่อไปเนื่องจากเป็น API ระดับสูงกว่า Vulkan เราสามารถอนุมานได้ว่า Vulkan นั้นน่าจะจบลงด้วยการเป็น "OpenGL 5"
== อ้างอิง ==
The Red Book – OpenGL Programming Guide, 6th edition. ISBN 0-321-48100-3
== ดูเพิ่ม ==
คอมพิวเตอร์กราฟิกส์สามมิติ
เรขภาพคอมพิวเตอร์ (คอมพิวเตอร์กราฟิกส์)
ไดเรกเอกซ์
OpenGL ES
GLSL
OpenAL
XNA
เกมคอมพิวเตอร์
== แหล่งข้อมูลอื่น ==
โอเพนจีแอล 
 
1992 software
เอพีไอ
ซอฟต์แวร์ข้ามแพลตฟอร์ม
ไลบรารีกราฟิกส์
มาตรฐานกราฟิกส์
การพัฒนาวิดีโอเกม
ความเป็นจริงเสมือน
เอพีไอกราฟิกส์สามมิติ