De Vulkan API: een overzicht en geschiedenis van de graphics-programmeringsinterface.

·

·

De Vulkan API: een overzicht en geschiedenis van de graphics-programmeringsinterface

Vulkan is een programmeerapi voor graphics die ontwikkeld is door de Khronos Group, een organisatie bestaande uit toonaangevende bedrijven in de informatica-industrie. Vulkan is voornamelijk gebruikt voor het bouwen van high-performance grafische applicaties en games.

Een geschiedenis van graphics-API’s

Voorbij aan het eind van de jaren 80 was de graphics-programmeringsinterface (API) Direct3D, ontwikkeld door Microsoft, een dominante speler op het gebied van 2D- en 3D-graphics. Daarnaast kwam OpenGL, een open-source API https://vulkan-casino.nl geschikt voor diverse platforms, op in populariteit. De jaren 90 waren ook de tijd waarin DirectX verschijnt als een machtigings-API. Deze ontwikkelde zich uit tot wat nu bekend staat als Direct3D.

DirectX is voornamelijk geïndividualiseerd door Microsoft om high-performance games te ondersteunen, maar was ook openbaar toegankelijk voor gebruikers van Windows-platforms. DirectX 10 en DirectX 11 introduceerden een meer krachtig rendering model dat ondersteuning biedt aan multi-threading en multitasking.

Ondertussen bleef OpenGL actief ontwikkeld door de Khronos Group, inclusief open-source implementaties voor besturingssystemen van derden zoals Linux. Deze API werd populair bij veel gamedevlopers en gamers aangezien deze meer platformonafhankelijk was dan DirectX.

Vulkan’s komst

Eind 2015, na de introductie van OpenGL ES 3.1 voor mobile platforms en andere doorontwikkelde versies van het Open-GL specificeeringsdocumentatiepakket, werd Vulkan gelanceerd als een nieuw standaardisatie initiatief in de industrie. De naam “Vulkan” is gekozen om verwarring met oudere OpenGL-versies te vermijden.

De Khronos Group heeft de uitnodiging van GPU-makers om ondersteuning en input bij dit nieuwe initiatief opgenomen. Aanvankelijk ondervond Vulkan kritiek voor zijn complexiteit in vergelijking tot de voordelen die het bood tegenover OpenGL, maar werd later geaccepteerd als een sterk platform.

Waarom Vulkan?

Een van de belangrijkste redenen waarom Vulkan ontwikkeld is, was dat OpenGL steeds meer leek op te schieten met DirectX. Het Open-GL specifieeringsdocumentatiepakket maakte het onmogelijk om beide API’s in één documentatie aan de slag te nemen en verschillen tussen hen zouden moeilijk begrijpbaar zijn.

Om dit te voorkomen beslotten de Khronos Group-leden dat een volledig nieuw specificeeringsdocumentatiepakket noodzakelijk zou moeten worden ontwikkeld om op een duidelijke manier nieuwe functionaliteit toe te passen. Vulkan is als het ware een combinatie van Direct3D en OpenGL die beschikt over de flexibiliteit van de eerste en de krachtigheid van laatste.

Een meer gedetailleerde kijk op hoe Vulkan werkt

Vulkan maakt gebruik van een geavanceerd pipeline-model, bestaande uit veel eenvoudige schakels in plaats van één complexe. Het API model is flexibel en ondersteunt de meest uiteenlopende applicatieonderdelen met het bereiken van dezelfde niveau van performantie die een gameontwikkelaar zou verwachten.

Vulkan wordt doorgaans beschreven als een programmeerapi voor graphics, hoewel in werkelijkheid meer informatie en technologie is verbonden aan de API. Een aantal belangrijke kenmerken zijn:

  • Vulkan ondersteunt concurrente rendering, waarbij meerdere threads gelijktijdig data van de GPU aflezen kunnen.
  • Vulkan biedt een meer gedetailleerde controle over hoe gegevens in de buffer worden gepresenteerderd en hoe ze worden gebruikt voor renderging.
  • Vulkan kan werken op diverse platforms, hoewel sommige platformen beperkingen hebben.

Vulkan wordt vaak vergeleken met OpenGL en DirectX 11. In tegenstelling tot beiden ondersteunt Vulcan meerdere threads en is dit een belangrijke voordelen om hoge prestaties te behalen bij de runtime van toepassingen die erop draaien.