Als je graag de nieuwste technologieën in de gaten houdt, moet je van Vulkan hebben gehoord. De Vulkan API is de nieuwste en beste grafische API, aangekondigd door Khronos Group, de mensen achter de huidige industriestandaard OpenGL. De projectnaam Vulkan werd officieel aangekondigd op de Game Developers 'Conference in 2015, en de eerste versie van de API werd gelanceerd in februari 2016. De nieuwe API is bedoeld om game graphics naar een hoger niveau te tillen, dus als je geïnteresseerd bent in de details, we zijn hier om het u te geven.
We bespreken wat Vulkan API is, hoe het verschilt van zijn voorganger OpenGL, en hoe Vulkan API de manier waarop games en andere grafisch intensieve applicaties worden ontwikkeld in de nabije toekomst zou kunnen veranderen. Lees verder om meer te weten te komen over deze opwindende ontwikkeling in de wereld van weergave en afbeeldingen.
Wat is Vulkan API?
Een paar jaar geleden toonde AMD Mantle, een API die gericht was op 3D-games en hoewel het veelbelovend was als een snellere oplossing voor het weergeven van afbeeldingen, heeft AMD het project gedood. Vervolgens gaf AMD de Mantle API-componenten aan Khronos Group om een standaard API voor rendering te ontwikkelen. Nou, het resultaat is de nieuwe Vulcan API.
De Vulkan API is een render-API met lage overhead die beter gebruik kan maken van de multi-core CPU's die tegenwoordig alomtegenwoordig zijn en die ook programma's een directere toegang geeft tot de CPU en de GPU van het systeem. Het is ook OS-agnostisch. Dit betekent dat applicaties die Vulkan API gebruiken, gemakkelijk draagbaar zijn.
Omdat we zelf fervente gamers en game-enthousiastelingen zijn, hebben we besloten om een kijkje te nemen in de toekomst van hoe games binnenkort zullen worden ontwikkeld en hoe dit (of helemaal niet) onze game-ervaring zal verbeteren..
Kenmerken
De Vulkan API heeft nogal wat functies die hem anders en beter maken dan zijn voorganger OpenGL:
1. De Vulkan API probeert de verwerkingsbelasting gelijkelijk te verdelen over elke kern in een multi-core omgeving. Dit betekent dat elke core in de processor dus in gebruik wordt genomen maximale efficiëntie.
- Dit zal een zeer merkbaar verschil maken bij het renderen van afbeeldingen die veel draw-calls vereisen.
- Bij verouderde API's is de CPU vaker wel dan niet een bottleneck. Vulkan zet multi-core CPU's echter zo goed in dat het waarschijnlijker is dat een bottleneck in de GPU wordt gevonden..
2. De Vulcan API biedt directe toegang tot GPU, die ervoor zorgen dat onnodige overheadkosten worden vermeden bij het openen van de GPU voor draw-oproepen en andere GPU-faciliteiten.
- Dit betekent dat zwaardere games nu niet zo CPU-intensief zullen zijn als ze momenteel zijn. Ook zullen stuurprogramma's een kleinere rol spelen bij het verlenen van toegang tot de GPU, waardoor de overdracht van informatie veel sneller gaat.
3. De API is ook ontworpen om volledig cross-platform.
- Geen vertakkende API's meer voor mobiele telefoons, desktops en consoles. Vulkan API zal hetzelfde zijn op elk apparaat met een compatibele GPU.
4. Terwijl OpenGL het GPU-geheugengebruik en de synchronisatie verborgen hield, legt Vulkan dit bloot en geeft het de ontwikkelaars nog beter controle over de GPU en hoe het wordt gebruikt.
- Vulkan stelt de ontwikkelaars in staat om te bepalen hoe de GPU texturen opmaakt, geheugen beheert en synchronisatie uitvoert.
- Het verbergt echter nog steeds voldoende informatie om te onderhouden platformonafhankelijke compatibiliteit.
5. Vulkan gebruikt de SPIR-V intermediaire taal voor parallel computergebruik en grafische afbeeldingen. SPIR-V is, net als zijn voorgangers, SPIR1.2 en SPIR2.0, ontwikkeld door de Khronos Group, met het verschil dat SPIR-V geen LLVM gebruikt. Met SPIR-V heeft Vulkan een gemeenschappelijke front-end compiler op elk platform. Ontwikkelaars hoeven ook geen kernel- of shadercode te verzenden en de implementatie van het stuurprogramma is vereenvoudigd.
Hoe Vulkan ons als eindgebruikers zou kunnen helpen
De Vulkan API kan, wanneer het volledig wordt geïmplementeerd door ontwikkelaars, de spelervaring van de eindgebruiker (dat zijn jij en ik!) Drastisch verbeteren. Denken grafische afbeeldingen op console-niveau op mobiele apparaten, misschien zelfs desktop-grade graphics voor high-end vlaggenschepen met bekwame processors!
1. Aangezien de meeste mobiele SoC's tegenwoordig ook multi-core zijn, zal Vulkan dat doen maximaal gebruik maken van de processors mogelijk, waardoor games vloeiender worden (hogere FPS).
2. Omdat Vulkan een lage overhead-toegang tot de GPU van het apparaat biedt, betekent dit dat games nu de tijd die nodig is om toegang te krijgen tot GPU-bronnen in grote mate kunnen verminderen. Nogmaals, dit vertaalt zich in betere graphics met hogere frames per seconde door maximaal gebruik maken van de mogelijkheden van de GPU.
3. Hoewel platformonafhankelijke mogelijkheden, waardoor draagbaarheid voor games gemakkelijker wordt, misschien niet direct van invloed zijn op u als eindgebruiker, betekent dit wel dat uw favoriet games en grafisch intensieve applicaties zijn misschien wel beschikbaar op bijna elk platform buiten. De mogelijkheden zijn eindeloos en worden alleen beperkt door onze verbeeldingskracht.
4. Games zullen ook kunnen zorgen soepelere prestaties door ervoor te zorgen dat de GPU meer aandacht besteedt (lees: wijst meer geheugen toe en geeft voorkeur aan) aan zaken die direct zichtbaar zijn voor de gebruiker, waardoor het spel immuun wordt voor vertragingen en frame drops.
Opties voor ontwikkelaars
Hoewel een low-level, low-overhead API voor grafische afbeeldingen ongetwijfeld een goed idee is, is het niet een voor de hand liggende aantrekkingskracht voor elke ontwikkelaar, vooral niet voor de nieuwe. Programmeren op een lager, dichter bij het hardwareniveau vereist nogal wat meer bekwaamheid dan programmeren op een hoger niveau, dat meer geabstraheerd is. Dit is op geen enkele manier een schok. Het is vrij duidelijk, en dat is precies waarom ontwikkelaars drie verschillende opties hebben om Vulkan te gebruiken voor hun ontwikkelingsprojecten.
1. Gebruik de Vulkan API rechtstreeks
- Dit biedt toegang tot de hardware op het laagste niveau en het zal duidelijk niet voor iedereen een keuze zijn. Dit niveau kan echter worden gebruikt om benchmarking-tools te maken voor andere applicaties die zijn ontwikkeld met Vulkan.
2. Gebruik bibliotheken
- Misschien wel de meest haalbare optie voor ontwikkelaars die overstappen van OpenGL naar Vulkan.
- De meeste bibliotheken zullen open source zijn, dus ontwikkelaars die ervaring hebben met het ontwikkelen met OpenGL kunnen proberen hun OpenGL-applicaties met relatief gemak naar de Vulkan API te porten, in plaats van een volledige revisie te moeten doen of helemaal opnieuw te moeten beginnen..
3. Gebruik game-engines die zijn geoptimaliseerd met Vulkan
- We zijn er zeker van dat dit is waar de meeste ontwikkelaars aan de slag zullen gaan. Game-engines zijn ontworpen en ontwikkeld door gevestigde, ervaren zwaargewichten uit de industrie en kunnen gemakkelijk worden gebruikt door ontwikkelaars (zowel ervaren als beginners) om games te maken die gebruikmaken van de voordelen aangeboden door de Vulkan API.
- Ontwikkelaars zoals Epic Games (Unreal Engine) en Unity (Unity Engine) hebben al Vulkan-ondersteuning aangekondigd in hun aankomende engines, en nog veel meer hebben plannen aangekondigd om te volgen.
ZIE OOK: Inzicht in APFS: het nieuwe bestandssysteem van Apple
Opgewonden raken!
Voor het geval het artikel je niet heeft overtuigd ... raak opgewonden! Nu! Vulkan belooft het soort baanbrekende ontwikkeling in grafische API's te worden die ons gamingleven zal verbeteren. Er bestaan al video's van vergelijkingen tussen Vulkan- en OpenGL-prestaties, en de resultaten zijn - gewoonweg - verbluffend. Als deze video's een indicatie zijn, bereid u dan voor om overal verbluffende grafische kwaliteit te ervaren, inclusief uw mobiele telefoons, allemaal dankzij de komst van de Vulcan API!
Dus, wat vind je van Vulkan? Denk je dat het een grote verbetering zal zijn ten opzichte van de huidige OpenGL-standaard? Laat het ons weten in de comments hieronder.