OpenGL | ||||
---|---|---|---|---|
Ontwikkelaar(s) | Khronos Group | |||
Uitgebracht | 1 juli 1992 (32 jaar geleden) | |||
Recentste versie | 4.6 (31 juli 2017)[1] | |||
Status | Inactief | |||
Besturingssysteem | Multiplatform | |||
Geschreven in | C | |||
Categorie | Video | |||
Licentie(s) | Opensourcelicentie en andere[2] | |||
Website | (en) Projectpagina | |||
|
OpenGL (Open Graphics Library) is een programmeertaal-onafhankelijke, multi-platform application programming interface om 2D- en 3D-vectorafbeeldingen te genereren. De API wordt typisch gebruikt om via een grafische processor (GPU) hardware-versnelde beelden te genereren. In plaats van elke pixel apart uit te laten rekenen door de CPU en dit videosignaal naar de grafische kaart te transporteren, worden complete objecten, cameraposities en lichtinstellingen aan de GPU geleverd. De GPU gaat daarna zelfstandig het beeld punt voor punt berekenen en dat beeld wordt uiteindelijk naar de monitor gestuurd. Voorheen werd de grafische kaart enkel gebruikt om het beeld op de monitor te laten verschijnen.
Geschiedenis
OpenGL ontstond in 1992 uit het door Silicon Graphics Inc. ontwikkelde IRIS GL. Silicon Graphics Inc. begon OpenGL te ontwikkelen in 1991 en bracht de eerste versie uit in januari 1992.
Vanaf 2006 werd de ontwikkeling overgenomen door het non-profit technologieconsortium Khronos Group.
Voorbeeld
Om een aantal stuiterende ballen op het scherm te tonen zou een applicatie zonder OpenGL voor alle punten op het scherm (al snel meer dan een miljoen) moeten berekenen of een deel van een van de ballen op die pixel zichtbaar zou zijn. Ook moet gekeken worden welke bal dichter bij de kijker is. Daarna moet er berekend worden welke belichting dat punt ontvangt, zodat de kleur goed is. Daarna kan de pixel verstuurd worden naar de grafische kaart.
Met OpenGL zal een applicatie eerst de camerapositie en de lichtinstellingen doorsturen naar de GPU. Daarna moeten alleen de posities en andere eigenschappen van de ballen naar de GPU gestuurd worden. De GPU zorgt verder voor het grafische rekenwerk. De CPU kan verdergaan met ander rekenwerk.
Gebruik
Toepassingen waar veel gebruikgemaakt wordt van OpenGL zijn simulatoren, CAD, foto- en videobewerkingsprogramma's en computerspellen, maar ook programma's om complexe moleculen te bekijken.
Met behulp van WebGL is het mogelijk 3D-computergraphics weer te geven in een webpagina. OpenGL wordt ondersteund door Google Chrome en Mozilla Firefox.
Versiegeschiedenis
De eerste versie van OpenGL, versie 1.0, werd gepubliceerd in januari 1992 door Mark Segal en Kurt Akeley. Daarna zijn regelmatig nieuwe versies gepubliceerd. Die definiëren een nieuwe basisset van functies die alle grafische kaarten moeten ondersteunen, en waarmee nieuwe uitbreidingen gemakkelijker geschreven kunnen worden. Elke nieuwe versie bouwt ook verscheidene nieuwe uitbreidingen (extensions) in die niet tot de kernfunctionaliteit behoren, maar wel veel ondersteuning genieten bij leveranciers van grafische kaarten. Het kan voorkomen dat zo'n uitbreiding wordt opgewaardeerd tot kernfunctionaliteit, en in dat geval kan de functionaliteit ook veranderen.
Vulkan
Vulkan, vroeger ook "Next Generation OpenGL Initiative" (glNext) genoemd, is een volledig opnieuw ontworpen opvolger van OpenGL. Vulkan is ook gemaakt om OpenGL en OpenGL ES samen te smelten in een gezamenlijke API die niet compatibel is met bestaande versies van OpenGL.[3][4][5]
De eerste versie van de Vulkan-API werd gepubliceerd op 16 februari 2016.[6][7]
Zie ook
- DirectX
- OpenAL
- OpenCL
- Mesa (software), voor de implementatie in Linux
Externe link
- (en) Projectpagina
- ↑ Khronos Releases OpenGL 4.6 with SPIR-V Support.
- ↑ (en) Licentie-informatie
- ↑ Ryan Smith, Khronos Announces Next Generation OpenGL Initiative. Geraadpleegd op 2 april 2018.
- ↑ (en) OpenGL 4.5 released, next-gen OpenGL unveiled: Cross-platform Mantle killer, DX12 competitor - ExtremeTech. ExtremeTech (11 augustus 2014). Geraadpleegd op 2 april 2018.
- ↑ (en) Khronos Publishes Its Slides About OpenGL-Next - Phoronix. www.phoronix.com. Geraadpleegd op 2 april 2018.
- ↑ (en) Khronos Releases Vulkan 1.0 Specification. The Khronos Group (16 februari 2016). Geraadpleegd op 2 april 2018.
- ↑ Khronos brengt Vulkan 1.0-api uit. Tweakers. Geraadpleegd op 2 april 2018.