Grafické rozhrania API, ako napríklad OpenGL a DirectX, fungujú ako most medzi softvérom a grafickým hardvérom používaným na hranie hier. Tieto rozhrania API poskytujú štandardizované metódy na zobrazenie 2D a 3D grafiky na obrazovke. Stali sa základom pre vývoj hier za posledných pár desaťročí.

Motory ako Unity ponúkajú výber medzi grafickými rozhraniami API, ktoré používajú, ale ako by ste si mali vybrať tú správnu možnosť pre svoju hru? Pridajte sa k nám, keď porovnávame OpenGL s DirectX, aby ste mali predstavu o tom, ktorý z týchto nástrojov je pre vás najlepší.

DirectX vs. OpenGL: Prehľad hlavných funkcií

V jadre DirectX aj OpenGL zdieľajú rovnaký grafický kanál, a to už mnoho rokov. Obe rozhrania API používajú body nazývané vrcholy na vytváranie zložitých grafických primitív. Každý vrchol ukladá svoje vlastné súradnice a ďalšie dôležité informácie. Ale spôsob, akým každá knižnica používa vrcholy, je odlišný.

Môžu vykonávať podobné funkcie, ale ak s nimi pracujete, všimnete si rozdiel medzi OpenGL a DirectX.

instagram viewer

DirectX vs. OpenGL: Rozsah API

Predtým, ako pôjdeme oveľa ďalej, je dôležité poznamenať, že hoci sú obe grafické rozhrania API, OpenGL a DirectX majú rôzne rozsahy. OpenGL je čistokrvné grafické API, čo znamená, že sa nezaoberá ničím iným ako 2D a 3D grafikou. Na druhej strane DirectX je zbierka grafických, zvukových, sieťových a iných hardvérových rozhraní API, ktoré všetky spolupracujú.

V niektorých prípadoch bude OpenGL používať DirectX na vykonávanie funkcií, ktoré nemôže robiť sám. Zvyšok tohto článku bude ignorovať tento rozdiel medzi týmito dvoma API a zameria sa na grafické prvky každého nástroja.

OpenGL vs. DirectX: Platformy

OpenGL je bezplatné API spravované neziskovou spoločnosťou s názvom Khronos Group, zatiaľ čo DirectX vyrába Microsoft. DirectX funguje primárne na Windows a Xbox, pričom ostatné platformy, ako je Linux, pomaly získavajú podporu. OpenGL je multiplatformový, vďaka čomu je použiteľný na vývoj hier naprieč celým radom operačných systémov a herných konzol.

DirectX vs. OpenGL: Hardvérové ​​zdroje

DirectX necháva správu hardvéru na vývojára, čo vám dáva možnosť efektívne prideľovať zdroje tak, ako ich potrebujete. OpenGL sa stará o správu hardvéru, ale môže to priniesť svoje výhody, pretože sa nemusíte starať o správu zdrojov sami.

DirectX vs. OpenGL: Dokumentácia

Prístup k podrobnej dokumentácii môže výrazne uľahčiť vývoj hier pri práci s API. DirectX a OpenGL ponúkajú pravidelne aktualizovanú dokumentáciu a užitočné komunity vývojárov. Obe tieto rozhrania API dostávajú veľké ročné aktualizácie, aby sa zabezpečilo, že ponúkajú najlepšie dostupné funkcie.

Používanie OpenGL vs. DirectX pre vývoj hier

Vývojári vytvorili veľa krásnych a dobre optimalizovaných hier na modernom trhu pomocou OpenGL aj DirectX. Pri výbere 2D/3D grafického API by ste mali zvážiť niekoľko vecí. Niektorí vývojári sa jednoducho spoľahnú na nástroj, ktorý im najviac vyhovuje.

OpenGL alebo DirectX: Platformy

Už sme sa dotkli platforiem, ale to je pre vývojárov zásadná úvaha. Ak chcete robiť hry pre Nintendo Switch, Playstation 4 alebo Linux, budete musieť pracovať s OpenGL alebo iným API s ich podporou. DirectX je vytvorený pre Windows a Xbox a má obmedzenú kompatibilitu s inými systémami.

OpenGL alebo DirectX: Kompatibilita s motorom

Väčšina vývojárov hier dnes na vytváranie svojich hier používa motory ako Unity a Unreal. Oba tieto enginy podporujú OpenGL a DirectX, rovnako ako iné multiplatformové enginy na vývoj hier.

OpenGL alebo DirectX: Jednoduché použitie

Niekto by mohol namietať, že OpenGL je jednoduchšie pracovať ako DirectX. Popri hardvérových zdrojoch OpenGL spracováva iba grafiku, takže je prirodzene jednoduchšia. Skutočnosť, že funguje na viacerých platformách, tiež uľahčuje vydávanie hier s touto požiadavkou.

Jednoduché používanie grafického rozhrania API nie je pre vývojárov hier také dôležité ako kedysi. S motormi ako Unity rozhranie s grafickými API v zákulisí, stačí kliknúť na tlačidlo, aby ste vymenili API, ktoré používate. Pokiaľ nevytvárate hru od začiatku, je nepravdepodobné, že si všimnete rozdiel v jednoduchosti použitia každého API.

OpenGL alebo DirectX: Grafické funkcie

Pokiaľ nie ste okrajový prípad, je nepravdepodobné, že uvidíte obrovský rozdiel vo funkciách, ktoré máte k dispozícii medzi týmito API. Obe podporujú možnosti vašej grafickej karty a to sa zmení iba vtedy, ak GPU zaznamenajú dramatické zmeny budúcnosti.

OpenGL alebo DirectX: Herný výkon

Medzi vývojármi existuje veľa diskusií o výkone týchto rozhraní API. Ťažko si predstaviť, že OpenGL resp DirectX má výrazné rozdiely vo výkone, hoci tvrdenie, že OpenGL je plynulejšie a efektívnejšie, je bežné online.

Jediný spôsob, ako zistiť, ktoré z týchto rozhraní API funguje najlepšie, je testovanie. Vďaka kompatibilite Unity s oboma API môžeme vytvoriť projekt a otestovať ukážkovú hru s oboma API. vytvoriť benchmark výkonnosti.

Tieto testy boli vykonané s 2D aj 3D grafikou, aby sa zabezpečilo, že ich rozdielne potrubia nie sú významným faktorom. Každý test beží 120 sekúnd bežného hrania a merajú sa snímky za sekundu, aby sa určil výkon. Všetky testy boli vykonané na rovnakom PC.

3D test výkonu: Unity Carting Microgame

Unity Carting Microgame je bezplatná šablóna, ktorá obsahuje všetko, čo potrebujete na zostavenie jednoduchej závodnej hry. Dodáva sa s tutoriálmi, ale nás viac zaujíma samotná hra. Postavili sme Carting Microgame s OpenGL aj DirectX, aby sme porovnali ich výkon a výsledky boli nasledovné:

Najnižšia Najvyššie Priemerná
DirectX 331 848 365.05
OpenGL 247 819 283.7

DirectX prekonal OpenGL v našom 3D benchmarku a dosiahol pôsobivé obnovovacie frekvencie. Výsledky OpenGL sú stále viac než hrateľné.

2D test výkonnosti: Unity Platformer Microgame

Podobne ako Carting Microgame, aj Unity Platformer Microgame je bezplatná a plná skvelých vzdelávacích nástrojov. Ako sa dalo očakávať, 2D hra v našich testoch funguje lepšie ako 3D, ale výsledky môžete posúdiť sami.

Najnižšia Najvyššie Priemerná
DirectX 599 850 767.367
OpenGL 302 604 515.417

Ako môžete vidieť z výsledkov vyššie, DirectX dosiahlo v našom testovaní oveľa vyššiu priemernú snímkovú frekvenciu. Aj keď rozdiel môže vyzerať dramaticky, oba výsledky sú veľmi hrateľné.

OpenGL alebo DirectX 11: Záver o výkonnosti

Zatiaľ čo veľa ľudí hovorí, že OpenGL funguje lepšie ako DirectX, druhé API dosiahlo lepšie výsledky v oboch našich benchmarkoch. To nie je ani zďaleka presvedčivé, pretože pri diktovaní výkonu hry zohráva úlohu veľa faktorov, najmä keď sú zložitejšie.

DirectX alebo OpenGL: Ktoré by ste mali použiť na vývoj hier?

Výber správneho grafického API závisí od viacerých faktorov. DirectX je najpoužívanejšie grafické rozhranie API. Mnoho vývojárov hier vytvára svoje hry pre Windows a Xbox pred ich portovaním do OpenGL pre iné platformy. Ak publikujete hru výhradne mimo Windows a Xbox, môžete mať prospech z používania OpenGL od začiatku.

Výkon je tiež faktorom, ktorý treba zvážiť, aj keď naše testovanie ukazuje, že pri používaní nástrojov motora, ako je Unity, je to celkom zanedbateľné. Rozdiely medzi týmito dvoma grafickými API sú v podstate dôležité len pre tých, ktorí hľadajú špecifické špeciálne funkcie.