Graafika API-d, nagu OpenGL ja DirectX, toimivad sillana mängude mängimiseks kasutatava tarkvara ja graafika riistvara vahel. Need API-d pakuvad standardiseeritud meetodeid 2D- ja 3D-graafika kuvamiseks ekraanil. Need on viimase paarikümne aasta jooksul muutunud mängude arendamisel oluliseks.
Mootorid nagu Unity pakuvad valikut nende kasutatavate graafika API-de vahel, kuid kuidas peaksite oma mängu jaoks õige valiku valima? Liituge meiega, kui võrdleme OpenGL-i DirectX-iga, et anda teile aimu, milline neist tööriistadest on teie jaoks parim.
DirectX vs. OpenGL: põhifunktsioonide ülevaade
Nii DirectX kui ka OpenGL jagavad oma põhiolemuselt sama graafikakonveieri ja seda juba aastaid. Mõlemad API-d kasutavad keeruliste graafikaprimitiivide koostamiseks punkte, mida nimetatakse tippudeks. Iga tipp salvestab oma koordinaadid ja muu olulise teabe. Kuid viis, kuidas iga raamatukogu tippe kasutab, on erinev.
Need võivad täita sarnaseid funktsioone, kuid kui nendega töötate, märkate erinevust OpenGL-i ja DirectX-i vahel.
DirectX vs. OpenGL: API ulatus
Enne palju kaugemale minekut on oluline märkida, et kuigi need mõlemad on graafika API-d, on OpenGL-il ja DirectX-il erinev ulatus. OpenGL on puhtatõuline graafika API ja see tähendab, et see ei tegele millegi muuga kui 2D- ja 3D-graafika. DirectX seevastu on graafika, heli, võrgunduse ja muu riistvara API kogum, mis kõik koos töötavad.
Mõnel juhul kasutab OpenGL DirectX-i funktsioonide täitmiseks, mida ta ise teha ei saa. Ülejäänud selles artiklis ignoreeritakse seda erinevust kahe API vahel, keskendudes iga tööriista graafilistele elementidele.
OpenGL vs. DirectX: platvormid
OpenGL on tasuta API, mida haldab mittetulundusühing nimega Khronos Group, samas kui DirectX-i teeb Microsoft. DirectX töötab peamiselt Windowsis ja Xboxis ning teistele platvormidele, nagu Linux, saavad aeglaselt tuge. OpenGL on platvormideülene, mistõttu on see kasutatav mängude arendamiseks paljudes operatsioonisüsteemides ja mängukonsoolides.
DirectX vs. OpenGL: riistvararessursid
DirectX jätab riistvarahalduse arendaja hooleks, andes teile võimaluse ressursse tõhusalt jaotada vastavalt vajadusele. OpenGL tegeleb riistvarahaldusega, kuid sellega võivad kaasneda oma eelised, kuna te ei pea ise ressursside haldamise pärast muretsema.
DirectX vs. OpenGL: dokumentatsioon
Juurdepääs üksikasjalikule dokumentatsioonile võib muuta mängude arendamise API-dega töötamisel palju lihtsamaks. DirectX ja OpenGL pakuvad regulaarselt uuendatavat dokumentatsiooni ja abistavaid arendajakogukondi. Mõlemad API-liidesed saavad igal aastal suuri värskendusi, et tagada nende parimate funktsioonide pakkumine.
OpenGL-i kasutamine vs. DirectX mängude arendamiseks
Arendajad on teinud kaasaegsele turule palju ilusaid ja hästi optimeeritud mänge, kasutades nii OpenGL-i kui ka DirectX-i. 2D/3D graafika API valimisel peaksite arvestama mitme asjaga. Mõned arendajad loodavad lihtsalt tööriistale, mis neile kõige mugavam on.
OpenGL või DirectX: platvormid
Oleme juba platvorme puudutanud, kuid see on arendajate jaoks ülioluline. Kui soovite teha mänge Nintendo Switchi, Playstation 4 või Linuxi jaoks, peate töötama OpenGL-i või mõne muu neid toetava API-ga. DirectX on loodud Windowsi ja Xboxi jaoks ning sellel on piiratud ühilduvus teiste süsteemidega.
OpenGL või DirectX: Mootori ühilduvus
Enamik mänguarendajaid kasutab tänapäeval oma mängude loomiseks mootoreid nagu Unity ja Unreal. Mõlemad mootorid toetavad OpenGL-i ja DirectX-i, nagu ka muud platvormidevahelised mänguarendusmootorid.
OpenGL või DirectX: kasutuslihtsus
Mõned väidavad, et OpenGL-iga on lihtsam töötada kui DirectX-iga. Lisaks riistvararessurssidele käsitleb OpenGL ainult graafikat, muutes selle oma olemuselt lihtsamaks. Asjaolu, et see töötab rohkematel platvormidel, muudab selle nõudega mängude vabastamise lihtsamaks.
Graafika API kasutuslihtsus pole mänguarendajate jaoks nii oluline kui varem. Selliste mootoritega nagu Unity graafika API-dega kulisside taga liidestades kulub kasutatava API vahetamiseks vaid ühe nupuvajutusega. Kui te ei loo mängu nullist, on ebatõenäoline, et märkate erinevusi iga API kasutuslihtsuses.
OpenGL või DirectX: graafikafunktsioonid
Kui te ei ole erijuht, on ebatõenäoline, et näete nende funktsioonide vahel tohutut erinevust API-d. Mõlemad toetavad teie graafikakaardi võimalusi ja see muutub ainult siis, kui GPU-d näevad graafikas dramaatilisi muutusi. tulevik.
OpenGL või DirectX: mängu jõudlus
Nende API-de toimivuse üle on arendajate vahel palju vaidlusi. Raske on ette kujutada, et OpenGL või DirectX-il on märkimisväärsed jõudluserinevused, kuigi väide, et OpenGL on sujuvam ja tõhusam, on tavaline võrgus.
Ainus viis teada saada, milline neist API-dest kõige paremini toimib, on testimine. Tänu Unity ühilduvusele mõlema API-ga saame luua projekti ja testida näidismängu mõlema API-ga luua tulemuslikkuse etalon.
Need testid on läbi viidud nii 2D- kui ka 3D-graafikaga tagamaks, et nende erinevad torujuhtmed ei ole arvestatav tegur. Iga test kestab 120 sekundit tavalist mängu ja jõudluse määramiseks mõõdetakse kaadreid sekundis. Kõik testid on läbi viidud samas arvutis.
3D jõudluse test: Unity Carting Microgame
Unity Carting Microgame on tasuta mall, mis sisaldab kõike, mida vajate lihtsa võidusõidumängu loomiseks. Sellega on kaasas õpetused, kuid meid huvitab rohkem mäng ise. Ehitasime Carting Microgame'i nii OpenGL-i kui ka DirectX-iga, et võrrelda nende jõudlust ja tulemused olid järgmised:
Madalaim | Kõrgeim | Keskmine | |
---|---|---|---|
DirectX | 331 | 848 | 365.05 |
OpenGL | 247 | 819 | 283.7 |
DirectX edestas OpenGL-i meie 3D-etaldis, saavutades kogu ulatuses muljetavaldava kaadrisageduse. OpenGL-i tulemused on endiselt enam kui mängitavad.
2D jõudluse test: Unity Platformer Microgame
Sarnaselt Carting Microgame'iga on Unity Platformer Microgame tasuta ja täis suurepäraseid õppevahendeid. Nagu oodatud, toimib meie testides olev 2D-mäng paremini kui 3D-mäng, kuid saate tulemusi ise hinnata.
Madalaim | Kõrgeim | Keskmine | |
---|---|---|---|
DirectX | 599 | 850 | 767.367 |
OpenGL | 302 | 604 | 515.417 |
Nagu ülaltoodud tulemustest näha, saavutas DirectX meie testimisel palju suurema keskmise kaadrisageduse. Kuigi erinevus võib tunduda dramaatiline, on mõlemad tulemused väga mängitavad.
OpenGL või DirectX 11: jõudluse järeldus
Kuigi paljud inimesed ütlevad, et OpenGL toimib paremini kui DirectX, saavutas viimane API mõlemas võrdlusaluses paremaid tulemusi. See pole kaugeltki lõplik, kuna mängu jõudluse määramisel mängivad rolli paljud tegurid, eriti kui need muutuvad keerukamaks.
DirectX või OpenGL: kumba peaksite mängude arendamiseks kasutama?
Õige graafika API valimine sõltub mitmest tegurist. DirectX on kõige laialdasemalt kasutatav graafika API. Paljud mänguarendajad loovad oma mängud Windowsi ja Xboxi jaoks enne nende teisaldamist OpenGL-i teistele platvormidele. Kui avaldate mängu ainult väljaspool Windowsi ja Xboxi, võite OpenGL-i kasutamisest algusest peale kasu saada.
Arvesse tuleb võtta ka jõudlust, kuigi meie testid näitavad, et see on mootoritööriistade (nt Unity) kasutamisel üsna tühine. Sisuliselt on erinevused nende kahe graafika API vahel olulised ainult neile, kes otsivad konkreetseid nišifunktsioone.