Grafični API-ji, kot sta OpenGL in DirectX, delujejo kot most med programsko in grafično strojno opremo, ki se uporablja za igranje iger. Ti API-ji zagotavljajo standardizirane metode za prikaz 2D in 3D grafike na zaslonu. V zadnjih nekaj desetletjih so postali temeljni za razvoj iger.

Motorji, kot je Unity, ponujajo izbiro med grafičnimi API-ji, ki jih uporabljajo, toda kako naj bi izbrali pravo možnost za svojo igro? Pridružite se nam, ko primerjamo OpenGL z DirectX, da vam damo idejo, katero od teh orodij je najboljše za vas.

DirectX vs. OpenGL: Pregled glavnih funkcij

V svojem jedru imata tako DirectX kot OpenGL isti grafični cevovod, in to že vrsto let. Oba API-ja uporabljata točke, imenovane oglišča, za izgradnjo kompleksnih grafičnih primitivov. Vsako točko shrani svoje koordinate in druge pomembne informacije. Toda način, kako vsaka knjižnica uporablja oglišča, je drugačen.

Morda opravljajo podobne funkcije, vendar boste opazili razliko med OpenGL in DirectX, če delate z njimi.

DirectX vs. OpenGL: Obseg API-ja

Preden gremo še dlje, je treba omeniti, da imata OpenGL in DirectX različna področja uporabe, čeprav sta grafična API-ja. OpenGL je čistokrvni grafični API, kar pomeni, da se ne ukvarja z ničemer razen z 2D in 3D grafiko. DirectX je po drugi strani zbirka grafičnih, zvočnih, omrežnih in drugih API-jev strojne opreme, ki vsi delujejo skupaj.

V nekaterih primerih bo OpenGL uporabil DirectX za izvajanje funkcij, ki jih ne more narediti sam. Preostanek tega članka bo prezrl to razliko med dvema API-jema in se osredotočil na grafične elemente vsakega orodja.

OpenGL vs. DirectX: Platforme

OpenGL je brezplačen API, ki ga upravlja neprofitno podjetje Khronos Group, medtem ko DirectX izdeluje Microsoft. DirectX deluje predvsem v sistemih Windows in Xbox, druge platforme, kot je Linux, pa počasi dobivajo podporo. OpenGL je večplatformen, zaradi česar je uporaben za razvoj iger v številnih operacijskih sistemih in igralnih konzolah.

DirectX vs. OpenGL: viri strojne opreme

DirectX prepušča upravljanje strojne opreme razvijalcu, kar vam omogoča učinkovito dodeljevanje virov, kot jih potrebujete. OpenGL se ukvarja z upravljanjem strojne opreme, vendar ima to lahko svoje prednosti, saj vam ni treba skrbeti, da boste sami upravljali vire.

DirectX vs. OpenGL: Dokumentacija

Dostop do podrobne dokumentacije lahko bistveno olajša razvoj iger pri delu z API-ji. DirectX in OpenGL ponujata redno posodobljeno dokumentacijo in koristne skupnosti razvijalcev. Oba API-ja prejemata velike letne posodobitve, da zagotovita najboljše razpoložljive funkcije.

Uporaba OpenGL vs. DirectX za razvoj iger

Razvijalci so naredili veliko lepih in dobro optimiziranih iger na sodobnem trgu z uporabo OpenGL in DirectX. Pri izbiri 2D/3D grafičnega API-ja morate upoštevati več stvari. Nekateri razvijalci se bodo preprosto zanašali na orodje, ki jim najbolj ustreza.

OpenGL ali DirectX: platforme

Platform smo se že dotaknili, vendar je to ključnega pomena za razvijalce. Če želite narediti igre za Nintendo Switch, Playstation 4 ali Linux, boste morali delati z OpenGL ali drugim API-jem s podporo zanje. DirectX je narejen za Windows in Xbox in ima omejeno združljivost z drugimi sistemi.

OpenGL ali DirectX: združljivost motorja

Večina razvijalcev iger danes za ustvarjanje svojih iger uporablja motorje, kot sta Unity in Unreal. Oba motorja podpirata OpenGL in DirectX, tako kot drugi motorji za razvoj iger na več platformah.

OpenGL ali DirectX: Enostavnost uporabe

Nekateri bi trdili, da je OpenGL lažje delati kot DirectX. Poleg virov strojne opreme OpenGL obdeluje samo grafiko, zaradi česar je po naravi preprostejša. Dejstvo, da deluje na več platformah, olajša tudi izdajo iger s to zahtevo.

Enostavnost uporabe grafičnega API-ja ni tako pomembna, kot je bila za razvijalce iger. Z motorji, kot je Unity Vmesnik z grafičnimi API-ji v zakulisju, je potreben le en klik gumba, da zamenjate API, ki ga uporabljate. Razen če ne ustvarjate igre iz nič, je malo verjetno, da boste opazili razliko v enostavni uporabi vsakega API-ja.

OpenGL ali DirectX: grafične funkcije

Razen če ste resnična torbica, je malo verjetno, da boste opazili veliko razliko v funkcijah, ki so vam na voljo med temi API-ji. Oba podpirata zmogljivosti vaše grafične kartice in to se bo spremenilo le, če bodo grafični procesorji opazili dramatične spremembe v prihodnost.

OpenGL ali DirectX: zmogljivost igre

Med razvijalci je veliko razprav o učinkovitosti teh API-jev. Težko si je predstavljati, da bi OpenGL oz DirectX ima pomembne razlike v zmogljivosti, čeprav je trditev, da je OpenGL bolj gladka in učinkovitejša, pogosta na spletu.

Edini način, da ugotovite, kateri od teh API-jev je najboljši, je s testiranjem. Zahvaljujoč združljivosti Unity z obema API-jema lahko ustvarimo projekt in preizkusimo vzorčno igro z obema API-jema za ustvarite merilo uspešnosti.

Ti testi so bili izvedeni tako z 2D kot 3D grafiko, da se zagotovi, da njihovi različni cevovodi niso pomemben dejavnik. Vsak test se izvaja za 120 sekund običajnega igranja, število sličic na sekundo pa se meri za določitev učinkovitosti. Vsa testiranja so bila opravljena na istem osebnem računalniku.

Test zmogljivosti 3D: Unity Carting Microgame

Unity Carting Microgame je brezplačna predloga, ki vsebuje vse, kar potrebujete za izdelavo preproste dirkalne igre. Prihaja z vadnicami, vendar nas bolj zanima sama igra. Carting Microgame smo zgradili tako z OpenGL kot DirectX, da bi primerjali njihovo zmogljivost in rezultati so bili naslednji:

Najnižja Najvišje povprečno
DirectX 331 848 365.05
OpenGL 247 819 283.7

DirectX je v našem merilu 3D presegel OpenGL in dosegel impresivno število sličic. Rezultati OpenGL so še vedno več kot uporabni.

Preizkus 2D zmogljivosti: Unity Platformer Microgame

Podobno kot Carting Microgame je tudi Unity Platformer Microgame brezplačna in polna odličnih učnih orodij. Po pričakovanjih je 2D igra na naših testih uspešnejša od 3D, a rezultate lahko ocenite sami.

Najnižja Najvišje povprečno
DirectX 599 850 767.367
OpenGL 302 604 515.417

Kot lahko vidite iz zgornjih rezultatov, je DirectX pri našem testiranju dosegel veliko višjo povprečno hitrost sličic. Čeprav je razlika morda videti dramatična, sta oba rezultata zelo uporabna.

OpenGL ali DirectX 11: Zaključek o zmogljivosti

Čeprav mnogi pravijo, da je OpenGL boljši od DirectX, je slednji API dosegel boljše rezultate v obeh naših merilih. To še zdaleč ni prepričljivo, saj veliko dejavnikov igra vlogo pri narekovanju uspešnosti igre, še posebej, ko postanejo bolj zapletene.

DirectX ali OpenGL: kaj bi morali uporabiti za razvoj iger?

Izbira pravega grafičnega API-ja je odvisna od več dejavnikov. DirectX je najbolj razširjen grafični API. Mnogi razvijalci iger ustvarijo svoje igre za Windows in Xbox, preden jih prenesejo v OpenGL za druge platforme. Če objavljate igro izključno zunaj operacijskega sistema Windows in Xbox, vam bo morda koristila uporaba OpenGL od začetka.

Dejavnik, ki ga je treba upoštevati, je tudi zmogljivost, čeprav naše testiranje kaže, da je to dokaj zanemarljivo pri uporabi orodij motorja, kot je Unity. V bistvu so razlike med tema dvema grafičnima API-jema pomembne samo za tiste, ki iščejo posebne nišne funkcije.