Grafički API-ji, poput OpenGL-a i DirectX-a, djeluju kao most između softvera i grafičkog hardvera koji se koristi za igranje igara. Ovi API-ji pružaju standardizirane metode za prikaz 2D i 3D grafike na zaslonu. Oni su postali temelj razvoja igara tijekom posljednjih nekoliko desetljeća.

Motori poput Unityja nude izbor između grafičkih API-ja koje koriste, ali kako odabrati pravu opciju za svoju igru? Pridružite nam se dok uspoređujemo OpenGL s DirectX-om kako bismo vam dali ideju koji je od ovih alata najbolji za vas.

DirectX vs. OpenGL: Pregled glavnih značajki

U svojoj srži, i DirectX i OpenGL dijele isti grafički cjevovod, i to već dugi niz godina. Oba API-ja koriste točke koje se nazivaju vrhovima za izgradnju složenih grafičkih primitiva. Svaki vrh pohranjuje svoje koordinate i druge važne informacije. Ali način na koji svaka knjižnica koristi vrhove je drugačiji.

Oni mogu obavljati slične funkcije, ali ćete primijetiti razliku između OpenGL-a i DirectX-a ako radite s njima.

DirectX vs. OpenGL: API opseg

instagram viewer

Prije nego što idemo puno dalje, važno je napomenuti da, iako su oboje grafički API-ji, OpenGL i DirectX imaju različite opsege. OpenGL je čistokrvni grafički API, a to znači da se ne bavi ničim drugim osim 2D i 3D grafikom. DirectX je, s druge strane, skup grafičkih, audio, mrežnih i drugih hardverskih API-ja koji rade zajedno.

U nekim slučajevima, OpenGL će koristiti DirectX za obavljanje funkcija koje ne može učiniti sam. Ostatak ovog članka zanemarit će ovu razliku između dva API-ja, fokusirajući se na grafičke elemente svakog alata.

OpenGL vs. DirectX: Platforme

OpenGL je besplatni API kojim upravlja neprofitna tvrtka Khronos Group, dok DirectX proizvodi Microsoft. DirectX prvenstveno radi na Windowsima i Xboxu, dok druge platforme, poput Linuxa, polako dobivaju podršku. OpenGL je višeplatforma, što ga čini upotrebljivim za razvoj igara u nizu operativnih sustava i igraćih konzola.

DirectX vs. OpenGL: Hardverski resursi

DirectX prepušta upravljanje hardverom programeru, dajući vam mogućnost učinkovitog dodjeljivanja resursa, kako vam zatrebaju. OpenGL upravlja hardverskim upravljanjem, ali to može imati svoje prednosti, jer ne morate sami brinuti o upravljanju resursima.

DirectX vs. OpenGL: Dokumentacija

Pristup detaljnoj dokumentaciji može znatno olakšati razvoj igara pri radu s API-jima. DirectX i OpenGL nude redovito ažuriranu dokumentaciju i korisne zajednice programera. Oba ova API-ja primaju velika godišnja ažuriranja kako bi se osiguralo da nude najbolje dostupne značajke.

Korištenje OpenGL vs. DirectX za razvoj igara

Programeri su napravili mnoge lijepe i dobro optimizirane igre na modernom tržištu koristeći OpenGL i DirectX. Postoji nekoliko stvari koje biste trebali uzeti u obzir pri odabiru API-ja za 2D/3D grafiku. Neki programeri će se jednostavno osloniti na alat koji im najviše odgovara.

OpenGL ili DirectX: Platforme

Već smo se dotaknuli platformi, ali to je ključno za razvojne programere. Ako želite napraviti igre za Nintendo Switch, Playstation 4 ili Linux, morat ćete raditi s OpenGL-om ili drugim API-jem s podrškom za njih. DirectX je napravljen za Windows i Xbox i ima ograničenu kompatibilnost s drugim sustavima.

OpenGL ili DirectX: Kompatibilnost motora

Većina programera igara danas koristi motore kao što su Unity i Unreal za stvaranje svojih igara. Oba ova motora podržavaju OpenGL i DirectX, kao i ostali motori za razvoj igara na više platformi.

OpenGL ili DirectX: Jednostavnost upotrebe

Neki bi tvrdili da je s OpenGL-om lakše raditi nego s DirectX-om. Uz hardverske resurse, OpenGL obrađuje samo grafiku, što ga čini jednostavnijim po prirodi. Činjenica da radi na više platformi također olakšava izdavanje igara s ovim zahtjevom.

Jednostavnost upotrebe grafičkog API-ja nije toliko važna kao što je to bila za programere igara. S motorima kao što je Unity sučelja s grafičkim API-jima iza kulisa, potreban je samo jedan klik gumba za zamjenu API-ja koji koristite. Osim ako ne stvarate igru ​​od nule, malo je vjerojatno da ćete primijetiti razliku u jednostavnosti korištenja svakog API-ja.

OpenGL ili DirectX: grafičke značajke

Osim ako niste futrola, malo je vjerojatno da ćete vidjeti ogromnu razliku u značajkama koje imate na raspolaganju između ovih Apis. Oboje podržavaju mogućnosti vaše grafičke kartice, a to će se promijeniti samo ako GPU-ovi uoče dramatične promjene u budućnost.

OpenGL ili DirectX: Performanse igre

Postoji mnogo rasprava između programera u vezi s izvedbom ovih API-ja. Teško je zamisliti da OpenGL ili DirectX ima značajne razlike u performansama, iako je uobičajena tvrdnja da je OpenGL glatkiji i učinkovitiji na liniji.

Jedini način da saznate koji od ovih API-ja ima najbolju izvedbu je testiranje. Zahvaljujući Unityovoj kompatibilnosti s oba API-ja, možemo stvoriti projekt i testirati oglednu igru ​​s oba API-ja za stvoriti mjerilo performansi.

Ovi su testovi provedeni s 2D i 3D grafikom kako bi se osiguralo da njihovi različiti cjevovodi nisu značajan faktor. Svaki test se izvodi tijekom 120 sekundi regularnog igranja i mjere se okviri u sekundi kako bi se odredila izvedba. Sva testiranja su provedena na istom računalu.

Test 3D izvedbe: Unity Carting Microgame

Unity Carting Microgame je besplatni predložak koji sadrži sve što vam je potrebno za izradu jednostavne trkaće igre. Dolazi s tutorijalima, ali nas više zanima sama igra. Sagradili smo Carting Microgame s OpenGL-om i DirectX-om kako bismo usporedili njihove performanse i rezultati su bili sljedeći:

Najniže Najviši Prosječno
DirectX 331 848 365.05
OpenGL 247 819 283.7

DirectX je nadmašio OpenGL u našem 3D mjerilu, postižući impresivne brzine kadrova. Rezultati OpenGL-a i dalje su više nego igrivi.

Test 2D performansi: Unity Platformer Microgame

Slično kao i Carting Microgame, Unity Platformer Microgame je besplatna i prepuna sjajnih alata za učenje. Očekivano, 2D igra na našim testovima ima bolje rezultate od 3D, ali rezultate možete procijeniti sami.

Najniže Najviši Prosječno
DirectX 599 850 767.367
OpenGL 302 604 515.417

Kao što možete vidjeti iz gornjih rezultata, DirectX je postigao mnogo veći prosječni broj sličica u sekundi u našem testiranju. Iako razlika može izgledati dramatično, oba su rezultata vrlo igriva.

OpenGL ili DirectX 11: Zaključak o performansama

Iako mnogi ljudi kažu da OpenGL radi bolje od DirectX-a, potonji API je postigao bolje rezultate u oba naša mjerila. Ovo je daleko od konačnog, s mnogo čimbenika koji igraju ulogu u diktiranju izvedbe igre, pogotovo kada postaju složenije.

DirectX ili OpenGL: što biste trebali koristiti za razvoj igara?

Odabir pravog grafičkog API-ja ovisi o nekoliko čimbenika. DirectX je najčešće korišteni grafički API. Mnogi programeri igara kreiraju svoje igre za Windows i Xbox prije nego što ih prenesu na OpenGL za druge platforme. Ako objavljujete igru ​​isključivo izvan sustava Windows i Xbox, možda će vam koristiti OpenGL od samog početka.

Performanse su također faktor koji treba uzeti u obzir, iako naše testiranje pokazuje da je to prilično zanemarivo kada se koriste alati motora kao što je Unity. U biti, razlike između ova dva grafička API-ja bitne su samo onima koji traže specifične nišne značajke.