Grafická rozhraní API, jako je OpenGL a DirectX, fungují jako most mezi softwarem a grafickým hardwarem používaným k hraní her. Tato rozhraní API poskytují standardizované metody pro zobrazení 2D a 3D grafiky na obrazovce. V posledních několika desetiletích se staly základem vývoje her.

Motory jako Unity nabízejí výběr mezi grafickými rozhraními API, které používají, ale jak byste měli vybrat tu správnou volbu pro vaši hru? Připojte se k nám, když porovnáváme OpenGL s DirectX, abyste měli představu, který z těchto nástrojů je pro vás nejlepší.

DirectX vs. OpenGL: Přehled hlavních funkcí

V jádru DirectX i OpenGL sdílejí stejný grafický kanál, a to již mnoho let. Obě rozhraní API používají body zvané vertices k vytváření složitých grafických primitiv. Každý vrchol ukládá své vlastní souřadnice a další důležité informace. Ale způsob, jakým každá knihovna používá vrcholy, je jiný.

Mohou vykonávat podobné funkce, ale pokud s nimi pracujete, všimnete si rozdílu mezi OpenGL a DirectX.

DirectX vs. OpenGL: Rozsah API

instagram viewer

Než půjdeme mnohem dále, je důležité poznamenat, že ačkoli se jedná o grafická rozhraní API, OpenGL a DirectX mají různé rozsahy. OpenGL je čistokrevné grafické API, což znamená, že se nezabývá ničím jiným než 2D a 3D grafikou. Na druhé straně DirectX je sbírka grafických, zvukových, síťových a dalších hardwarových rozhraní API, které všechny spolupracují.

V některých případech bude OpenGL používat DirectX k provádění funkcí, které samo o sobě dělat nemůže. Zbytek tohoto článku bude tento rozdíl mezi těmito dvěma API ignorovat a zaměří se na grafické prvky každého nástroje.

OpenGL vs. DirectX: Platformy

OpenGL je bezplatné API spravované neziskovou společností Khronos Group, zatímco DirectX vyrábí Microsoft. DirectX funguje primárně na Windows a Xbox, další platformy, jako je Linux, pomalu získávají podporu. OpenGL je multiplatformní, takže je použitelný pro vývoj her napříč řadou operačních systémů a herních konzolí.

DirectX vs. OpenGL: Hardwarové zdroje

DirectX ponechává správu hardwaru na vývojáři, což vám dává možnost efektivně alokovat zdroje, jak je potřebujete. OpenGL se stará o správu hardwaru, ale to může mít své vlastní výhody, protože se nemusíte starat o správu zdrojů sami.

DirectX vs. OpenGL: Dokumentace

Přístup k podrobné dokumentaci může výrazně usnadnit vývoj her při práci s API. DirectX a OpenGL nabízejí pravidelně aktualizovanou dokumentaci a užitečné komunity vývojářů. Obě tato rozhraní API dostávají velké roční aktualizace, aby bylo zajištěno, že nabízejí nejlepší dostupné funkce.

Použití OpenGL vs. DirectX pro vývoj her

Vývojáři vytvořili mnoho krásných a dobře optimalizovaných her na moderním trhu pomocí OpenGL i DirectX. Při výběru 2D/3D grafického API byste měli zvážit několik věcí. Někteří vývojáři budou prostě spoléhat na nástroj, který jim nejvíce vyhovuje.

OpenGL nebo DirectX: Platformy

Již jsme se dotkli platforem, ale to je pro vývojáře zásadní úvaha. Pokud chcete dělat hry pro Nintendo Switch, Playstation 4 nebo Linux, budete muset pracovat s OpenGL nebo jiným API s jejich podporou. DirectX je vytvořen pro Windows a Xbox a má omezenou kompatibilitu s jinými systémy.

OpenGL nebo DirectX: Kompatibilita s enginem

Většina herních vývojářů dnes k tvorbě svých her používá enginy jako Unity a Unreal. Oba tyto enginy podporují OpenGL a DirectX, stejně jako jiné multiplatformní enginy pro vývoj her.

OpenGL nebo DirectX: Snadné použití

Někdo by mohl namítnout, že OpenGL je jednodušší na práci než DirectX. Kromě hardwarových prostředků OpenGL zpracovává pouze grafiku, takže je přirozeně jednodušší. Skutečnost, že funguje na více platformách, také usnadňuje vydávání her s tímto požadavkem.

Snadné použití grafického API není pro vývojáře her tak důležité, jak bývalo. S motory jako Unity rozhraní s grafickými rozhraními API v zákulisí, stačí kliknout na tlačítko a vyměnit API, které používáte. Pokud nevytváříte hru od nuly, je nepravděpodobné, že si všimnete rozdílu ve snadnosti použití jednotlivých API.

OpenGL nebo DirectX: Grafické funkce

Pokud nejste okrajový případ, je nepravděpodobné, že uvidíte obrovský rozdíl ve funkcích, které máte k dispozici mezi těmito API. Oba podporují možnosti vaší grafické karty a to se změní pouze v případě, že GPU zaznamenají dramatické změny budoucnost.

OpenGL nebo DirectX: Herní výkon

Mezi vývojáři existuje mnoho debat o výkonu těchto API. Těžko si představit, že OpenGL resp DirectX má výrazné rozdíly ve výkonu, i když tvrzení, že OpenGL je plynulejší a efektivnější, je běžné online.

Jediný způsob, jak zjistit, které z těchto API funguje nejlépe, je testování. Díky kompatibilitě Unity s oběma API můžeme vytvořit projekt a otestovat ukázkovou hru s oběma API. vytvořit měřítko výkonu.

Tyto testy byly provedeny s 2D i 3D grafikou, aby bylo zajištěno, že jejich odlišná potrubí nepředstavují významný faktor. Každý test běží po dobu 120 sekund běžného hraní a jsou měřeny snímky za sekundu, aby se určil výkon. Všechny testy byly provedeny na stejném PC.

3D test výkonu: Unity Carting Microgame

Unity Carting Microgame je bezplatná šablona, ​​která obsahuje vše, co potřebujete k sestavení jednoduché závodní hry. Dodává se s tutoriály, ale nás více zajímá samotná hra. Postavili jsme Carting Microgame s OpenGL i DirectX, abychom porovnali jejich výkon a výsledky byly následující:

Nejnižší Nejvyšší Průměrný
DirectX 331 848 365.05
OpenGL 247 819 283.7

DirectX překonalo OpenGL v našem 3D benchmarku a dosáhlo působivé obnovovací frekvence. Výsledky OpenGL jsou stále více než hratelné.

2D test výkonu: Unity Platformer Microgame

Stejně jako Carting Microgame je i Unity Platformer Microgame zdarma a nabitá skvělými výukovými nástroji. Podle očekávání si 2D hra v našich testech vede lépe než 3D, ale výsledky můžete posoudit sami.

Nejnižší Nejvyšší Průměrný
DirectX 599 850 767.367
OpenGL 302 604 515.417

Jak můžete vidět z výsledků výše, DirectX dosáhlo v našem testování mnohem vyšší průměrné snímkové frekvence. I když rozdíl může vypadat dramaticky, oba výsledky jsou velmi hratelné.

OpenGL nebo DirectX 11: Výkonový závěr

Zatímco mnoho lidí říká, že OpenGL funguje lépe než DirectX, druhé API dosáhlo lepších výsledků v obou našich benchmarcích. To není zdaleka jednoznačné, protože při diktování výkonu hry hraje roli mnoho faktorů, zvláště když jsou stále složitější.

DirectX nebo OpenGL: Které byste měli používat pro vývoj her?

Výběr správného grafického API závisí na několika faktorech. DirectX je nejrozšířenější grafické rozhraní API. Mnoho vývojářů her vytváří své hry pro Windows a Xbox předtím, než je přenesou do OpenGL pro jiné platformy. Pokud publikujete hru výhradně mimo Windows a Xbox, můžete mít prospěch z používání OpenGL od začátku.

Výkon je také faktorem, který je třeba vzít v úvahu, i když naše testování ukazuje, že při používání nástrojů motoru, jako je Unity, je to docela zanedbatelné. Rozdíly mezi těmito dvěma grafickými rozhraními API jsou v podstatě důležité pouze pro ty, kteří hledají specifické speciální funkce.