OpenGL

Uit Wikipedia, de vrije encyclopedie
OpenGL
Logo
Ontwikkelaar(s) Khronos Group
Uitgebracht 1 juli 1992 (31 jaar geleden)
Recentste versie 4.6 (31 juli 2017)[1] Bewerken op Wikidata
Status Inactief
Besturingssysteem Multiplatform
Geschreven in C
Categorie Video
Licentie(s) Opensourcelicentie en andere[2]
Website (en) Projectpagina
Portaal  Portaalicoon   Informatica
Vrije software

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.

Computerspellen outsourcen de real-time renderingsberekeningen naar de GPU over OpenGL. De gerenderde resultaten worden niet teruggezonden naar het hoofdgeheugen, maar in plaats daarvan naar de framebuffer van het videogeheugen. De beeldcontroller zal dan deze data doorsturen naar het scherm.

Geschiedenis[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

Op andere Wikimedia-projecten

Externe link[bewerken | brontekst bewerken]