สอน

▷ Opengl: มันคืออะไรและมีไว้เพื่ออะไร

สารบัญ:

Anonim

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

ดัชนีเนื้อหา

ประวัติศาสตร์

ใน ยุค 80 ซอฟต์แวร์ที่พัฒนา ซึ่ง เข้ากันได้ กับ ฮาร์ดแวร์หลากหลาย ที่เกี่ยวข้องกับโลกกราฟิกนั้นเป็น ความท้าทายที่แท้จริงสำหรับนักพัฒนาซอฟต์แวร์ คุณต้องจัดการกับ อินเทอร์เฟซที่ แตกต่างกันมากและเขียน ไดรเวอร์เฉพาะสำหรับฮาร์ดแวร์แต่ละประเภท ซึ่งมี ราคาแพง มากดังนั้นทีมงานของโปรแกรมเมอร์จึงได้รับการว่าจ้างจากภายนอกเพื่อเร่งการพัฒนา เนื่องจากแต่ละทีมทำงานแยกกันในส่วนต่อประสานของพวกเขาจึงมีการสร้างรหัสซ้ำซ้อนจำนวนมาก ใน ปี 1992 SGI เป็นผู้นำในการสร้าง OpenGL Architecture Review Board (OpenGL ARB) ซึ่งเป็นกลุ่ม บริษัท ที่จะรักษาและขยายข้อกำหนดในปีต่อ ๆ มา OpenGL พัฒนาจาก IRIS GL แก้ปัญหาการพึ่งพาฮาร์ดแวร์โดยเสนอซอฟต์แวร์จำลองสำหรับคุณสมบัติที่ไม่สนับสนุนเหล่านั้น ดังนั้นแอปพลิเคชันสามารถใช้กราฟิกขั้นสูงในระบบที่ค่อนข้างอ่อนแอ

เพื่อให้เข้าใจ ว่า OpenGL คืออะไร เราต้องรู้ว่า API คืออะไร

ทำความเข้าใจกับ OpenGL API คืออะไร

API หรือ Application Programming Interface เป็น ชุดของรหัส ที่สามารถใช้สำหรับ แอพพลิเคชั่นต่าง ๆ ในการสื่อสารซึ่งกันและกัน มันเป็นสิ่งที่ทำงานคล้ายกับส่วนติดต่อผู้ใช้ในการส่งเสริมการ มีปฏิสัมพันธ์ ระหว่าง บุคคลและโปรแกรม เท่านั้นใช้เฉพาะและโดยเฉพาะภายใน สภาพแวดล้อมซอฟต์แวร์ มันถูกใช้เพื่อเชื่อมต่อรหัสหรือฟังก์ชั่นระหว่างแพลตฟอร์มที่แตกต่างกันเพื่อให้คุณ สามารถใช้ประโยชน์จากบริการของเว็บไซต์หนึ่งในอีก

OpenGL คืออะไร

โดยส่วนใหญ่แล้วจะถือว่าเป็น API ที่ให้ ชุดฟังก์ชั่น ที่ยอดเยี่ยมที่เราสามารถใช้เพื่อจัดการกับ กราฟิกและรูปภาพ 3 มิติและ 2 มิติ อย่างไรก็ตามด้วยตัวมันเองมันไม่ได้เป็นเพียงแค่ API แต่เป็น ข้อมูลจำเพาะที่ พัฒนาและดูแลโดย Khronos Group นอกจากนี้ยังใช้สำหรับ การพัฒนาวิดีโอเกม ซึ่งแข่งขันกับ Direct3D บนแพลตฟอร์ม Microsoft

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

นักพัฒนาของ ห้องสมุด OpenGL มักจะเป็น ผู้ผลิต กราฟิกการ์ด GPU แต่ละตัวรองรับ API เฉพาะรุ่น นี้ซึ่งเป็นรุ่น OpenGL ที่พัฒนาขึ้นโดยเฉพาะสำหรับการ์ดกราฟิกนั้น ตัวอย่างเช่นเมื่อใช้ระบบจาก บริษัท เช่น Apple พวกเขาดูแลห้องสมุด OpenGL และภายใต้ Linux มีการผสมผสานระหว่างเวอร์ชั่นของผู้ให้บริการกราฟิกและการดัดแปลงสำหรับไลบรารีเหล่านี้ นี่อาจหมายความว่าเมื่อใดก็ตามที่ OpenGL แสดง พฤติกรรมแปลก ๆ ที่ไม่ควรเป็นไปได้ว่าเป็นความผิดของผู้ผลิตการ์ดกราฟิก เมื่อใดก็ตามที่มี ข้อผิดพลาดในการใช้งาน ก็มักจะแก้ไขได้โดยการปรับปรุง ไดรเวอร์การ์ดกราฟิก ไดรเวอร์เหล่านั้นมีเวอร์ชั่นล่าสุดที่ GPU ของคุณรองรับ ด้วยเหตุนี้จึงแนะนำให้อัพเดทไดรเวอร์เสมอ

เป้าหมาย OpenGL

วัตถุประสงค์หลักคือ:

  • ลด ความซับซ้อน ของอินเทอร์เฟซด้วยกราฟิกการ์ดต่าง นำเสนอโปรแกรมเมอร์ด้วย API ที่ไม่เหมือนใครและสม่ำเสมอ ซ่อน ความสามารถที่ แตกต่างกันของแพลตฟอร์มฮาร์ดแวร์ต่างๆ โดย กำหนดให้การใช้งานทั้งหมดสนับสนุนคุณสมบัติ OpenGL แบบเต็มชุด (โดยใช้การจำลองซอฟต์แวร์หากจำเป็น)

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

ส่วนขยาย

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

เราขอแนะนำให้คุณ Mad Max เปิดตัวการสนับสนุน Vulkan ในเบต้าสาธารณะใหม่สำหรับ Linux

วิวัฒนาการ OpenGL

ในเดือนมีนาคม 2558 Vulkan API ได้รับการแนะนำให้เป็น ผู้สืบทอดของ OpenGL ในการประชุม Game Developers Conference เริ่มแรกรู้จักกันในชื่อ "Next Generation OpenGL" หรือ "glNext" ส่วนต่อประสานการเขียนโปรแกรมเป็นโอเพ่นซอร์สและข้ามแพลตฟอร์ม ความแตกต่างกับ OpenGL คือ ความสนใจมากขึ้น กับฮาร์ดแวร์ในระหว่างการเขียนโปรแกรมซึ่ง เพิ่ม พลังงาน อย่างมีนัยสำคัญ เกมพีซีบางเกมรองรับ Vulkan อยู่แล้ว แต่ส่วนใหญ่ใช้ DirectX Vulkan ยังได้รับการพัฒนาโดย Khronos Group

เราขอแนะนำให้อ่านการ์ดกราฟิกที่ดีที่สุดในตลาด

จนถึงบทความของเราเกี่ยวกับ OpenGL หวังว่าคุณจะเข้าใจว่ามันประกอบด้วยอะไรและอีกมากมาย อย่างไรก็ตามคุณสามารถทิ้งคำถามไว้ในความคิดเห็น

สอน

ตัวเลือกของบรรณาธิการ

Back to top button