Grafik-API: er, som OpenGL och DirectX, fungerar som en brygga mellan programvaran och grafikhårdvaran som används för att spela spel. Dessa API: er tillhandahåller standardiserade metoder för att visa 2D- och 3D-grafik på skärmen. De har blivit grundläggande för spelutveckling under de senaste decennierna.
Motorer som Unity erbjuder ett val mellan de grafiska API: er de använder, men hur ska du välja rätt alternativ för ditt spel? Följ med oss när vi jämför OpenGL med DirectX för att ge dig en uppfattning om vilket av dessa verktyg som är bäst för dig.
DirectX vs. OpenGL: Översikt över huvudfunktioner
I grunden delar både DirectX och OpenGL samma grafikpipeline, och det har de gjort i många år. Båda API: erna använder punkter som kallas hörn för att bygga komplexa grafiska primitiver. Varje vertex lagrar sina egna koordinater och annan viktig information. Men sättet som varje bibliotek använder hörn på är olika.
De kan utföra liknande funktioner, men du kommer att märka skillnaden mellan OpenGL och DirectX om du arbetar med dem.
DirectX vs. OpenGL: API Scope
Innan vi går mycket längre är det viktigt att notera att även om de båda är grafiska API: er, har OpenGL och DirectX olika omfattningar. OpenGL är ett renrasigt grafik-API, och det betyder att det inte hanterar något annat än 2D- och 3D-grafik. DirectX, å andra sidan, är en samling av grafik, ljud, nätverk och andra hårdvaru-API: er som alla fungerar tillsammans.
I vissa fall kommer OpenGL att använda DirectX för att utföra funktioner som den inte kan göra på egen hand. Resten av den här artikeln kommer att ignorera denna skillnad mellan de två API: erna, med fokus på de grafiska elementen i varje verktyg.
OpenGL vs. DirectX: Plattformar
OpenGL är ett gratis API som hanteras av ett ideellt företag som heter Khronos Group, medan DirectX görs av Microsoft. DirectX fungerar främst på Windows och Xbox, med andra plattformar, som Linux, som sakta får stöd. OpenGL är plattformsoberoende, vilket gör den användbar för spelutveckling över en rad olika operativsystem och spelkonsoler.
DirectX vs. OpenGL: Hårdvaruresurser
DirectX överlåter hårdvaruhanteringen till utvecklaren, vilket ger dig möjligheten att allokera resurser effektivt när du behöver dem. OpenGL hanterar hårdvaruhantering, men detta kan komma med sina egna fördelar, eftersom du inte behöver oroa dig för att hantera resurser själv.
DirectX vs. OpenGL: Dokumentation
Tillgång till detaljerad dokumentation kan göra spelutveckling mycket enklare när du arbetar med API: er. DirectX och OpenGL erbjuder regelbundet uppdaterad dokumentation och användbara utvecklargemenskaper. Båda dessa API: er får stora årliga uppdateringar för att säkerställa att de erbjuder de bästa tillgängliga funktionerna.
Att använda OpenGL vs. DirectX för spelutveckling
Utvecklare har gjort många vackra och väloptimerade spel på den moderna marknaden med både OpenGL och DirectX. Det finns flera saker du bör tänka på när du väljer ett 2D/3D-grafik-API. Vissa utvecklare kommer helt enkelt att förlita sig på det verktyg de är mest bekväma med.
OpenGL eller DirectX: Plattformar
Vi har redan berört plattformar, men detta är en avgörande faktor för utvecklare. Om du vill göra spel för Nintendo Switch, Playstation 4 eller Linux måste du arbeta med OpenGL eller ett annat API med stöd för dem. DirectX är gjort för Windows och Xbox och har begränsad kompatibilitet med andra system.
OpenGL eller DirectX: Engine Compatibility
De flesta spelutvecklare använder motorer som Unity och Unreal för att skapa sina spel, nuförtiden. Båda dessa motorer stöder OpenGL och DirectX, liksom andra plattformsoberoende spelutvecklingsmotorer.
OpenGL eller DirectX: Användarvänlighet
Vissa skulle hävda att OpenGL är lättare att arbeta med än DirectX. Vid sidan av hårdvaruresurser hanterar OpenGL bara grafik, vilket gör det enklare till sin natur. Att det fungerar på fler plattformar gör det också lättare att släppa spel med detta krav.
Graphics API användarvänlighet är inte lika viktigt som det brukade vara för spelutvecklare. Med motorer som Unity gränssnitt med grafik-API: er bakom kulisserna, tar det bara ett klick på en knapp för att byta API du använder. Om du inte skapar ett spel från början är det osannolikt att du kommer att märka någon skillnad i användarvänligheten för varje API.
OpenGL eller DirectX: Grafikfunktioner
Om du inte är ett fransfall är det osannolikt att du kommer att se en stor skillnad i de funktioner du har tillgängliga mellan dessa API: er. De båda stöder ditt grafikkorts funktioner, och detta kommer bara att förändras om GPU: er ser dramatiska förändringar i framtida.
OpenGL eller DirectX: Spelprestanda
Det finns mycket debatt mellan utvecklare angående prestandan för dessa API: er. Det är svårt att föreställa sig att OpenGL eller DirectX har betydande prestandaskillnader, även om påståendet att OpenGL är smidigare och effektivare är vanligt uppkopplad.
Det enda sättet att ta reda på vilka av dessa API: er som presterar bäst är genom testning. Tack vare Unitys kompatibilitet med båda API: erna kan vi skapa ett projekt och testa ett exempelspel med båda API: erna för att skapa ett prestandariktmärke.
Dessa tester har utförts med både 2D- och 3D-grafik för att säkerställa att deras olika pipelines inte är en betydande faktor. Varje test körs under 120 sekunders vanligt spelande och bilder per sekund mäts för att fastställa prestanda. Alla tester har utförts på samma PC.
3D-prestandatest: Unity Carting Microgame
Unity Carting Microgame är en gratis mall som innehåller allt du behöver för att bygga ett enkelt racingspel. Det kommer med tutorials, men vi är mer intresserade av själva spelet. Vi byggde Carting Microgame med både OpenGL och DirectX för att jämföra deras prestanda och resultaten var följande:
Lägst | Högsta | Medel | |
---|---|---|---|
DirectX | 331 | 848 | 365.05 |
OpenGL | 247 | 819 | 283.7 |
DirectX överträffade OpenGL i vårt 3D-riktmärke och uppnådde imponerande bildhastigheter genomgående. OpenGL: s resultat är fortfarande mer än spelbara.
2D Performance Test: Unity Platformer Microgame
Ungefär som Carting Microgame är Unity Platformer Microgame gratis och packat med fantastiska inlärningsverktyg. Som väntat presterar 2D-spelet i våra tester bättre än 3D-spelet, men du kan bedöma resultaten själv.
Lägst | Högsta | Medel | |
---|---|---|---|
DirectX | 599 | 850 | 767.367 |
OpenGL | 302 | 604 | 515.417 |
Som du kan se från resultaten ovan, uppnådde DirectX en mycket högre genomsnittlig bildfrekvens i våra tester. Även om skillnaden kan se dramatisk ut, är båda resultaten mycket spelbara.
OpenGL eller DirectX 11: Prestanda slutsats
Medan många säger att OpenGL presterar bättre än DirectX, uppnådde det senare API bättre resultat i båda våra benchmarks. Detta är långt ifrån avgörande, med många faktorer som spelar en roll för att diktera ett spels prestanda, särskilt när de blir mer komplexa.
DirectX eller OpenGL: Vilket ska du använda för spelutveckling?
Att välja rätt grafik-API beror på flera faktorer. DirectX är det mest använda grafik-API. Många spelutvecklare skapar sina spel för Windows och Xbox innan de porteras till OpenGL för andra plattformar. Om du publicerar ett spel uteslutande utanför Windows och Xbox kan du ha nytta av att använda OpenGL från början.
Prestanda är också en faktor att ta hänsyn till, även om våra tester visar att detta är ganska försumbart när man använder motorverktyg som Unity. I grund och botten spelar skillnaderna mellan dessa två grafiska API: er bara roll för dem som letar efter specifika nischfunktioner.