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
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.