A grafikus API-k, mint például az OpenGL és a DirectX, hidat képeznek a szoftver és a játékokhoz használt grafikus hardver között. Ezek az API-k szabványosított módszereket biztosítanak a 2D és 3D grafika képernyőn történő megjelenítéséhez. Az elmúlt néhány évtizedben alapvető fontosságúakká váltak a játékfejlesztésben.

Az olyan motorok, mint a Unity, választási lehetőséget kínálnak az általuk használt grafikus API-k között, de hogyan kell kiválasztani a megfelelő opciót a játékhoz? Csatlakozzon hozzánk, amikor összehasonlítjuk az OpenGL-t a DirectX-szel, hogy képet kapjon arról, melyik eszköz a legmegfelelőbb az Ön számára.

DirectX vs. OpenGL: Fő jellemzők áttekintése

Lényegében mind a DirectX, mind az OpenGL ugyanazon a grafikus folyamaton osztozik, és már sok éve. Mindkét API csúcsoknak nevezett pontokat használ az összetett grafikai primitívek felépítéséhez. Minden csúcs tárolja a saját koordinátáit és egyéb fontos információkat. De az a mód, ahogy az egyes könyvtárak csúcsokat használnak, eltérő.

instagram viewer

Hasonló funkciókat hajthatnak végre, de észreveheti a különbséget az OpenGL és a DirectX között, ha velük dolgozik.

DirectX vs. OpenGL: API hatókör

Mielőtt sokkal tovább mennénk, fontos megjegyezni, hogy bár mindkettő grafikus API, az OpenGL és a DirectX hatóköre eltérő. Az OpenGL egy fajtatiszta grafikus API, és ez azt jelenti, hogy a 2D és 3D grafikákon kívül semmi mással nem foglalkozik. A DirectX ezzel szemben grafikus, hang-, hálózati és egyéb hardveres API-k gyűjteménye, amelyek együtt működnek.

Egyes esetekben az OpenGL DirectX-et használ olyan funkciók végrehajtására, amelyeket önmagában nem tud. A cikk további része figyelmen kívül hagyja a két API közötti különbséget, és az egyes eszközök grafikus elemeire összpontosít.

OpenGL vs. DirectX: Platformok

Az OpenGL egy ingyenes API, amelyet a Khronos Group nevű non-profit cég kezel, míg a DirectX-et a Microsoft készíti. A DirectX elsősorban Windowson és Xboxon működik, míg más platformokon, például a Linuxon lassan támogatást kapnak. Az OpenGL többplatformos, így számos operációs rendszeren és játékkonzolon használható játékfejlesztéshez.

DirectX vs. OpenGL: Hardver erőforrások

A DirectX a hardverkezelést a fejlesztőre bízza, lehetővé téve az erőforrások hatékony elosztását, amikor szüksége van rájuk. Az OpenGL kezeli a hardverkezelést, de ennek megvannak a maga előnyei, mivel nem kell saját kezűleg kezelnie az erőforrásokat.

DirectX vs. OpenGL: Dokumentáció

A részletes dokumentációhoz való hozzáférés sokkal könnyebbé teheti a játékfejlesztést, ha API-kkal dolgozik. A DirectX és az OpenGL rendszeresen frissített dokumentációt és hasznos fejlesztői közösségeket kínál. Mindkét API jelentős éves frissítéseket kap annak biztosítása érdekében, hogy az elérhető legjobb szolgáltatásokat nyújtsák.

OpenGL vs. DirectX játékfejlesztéshez

A fejlesztők sok szép és jól optimalizált játékot készítettek a modern piacon OpenGL és DirectX használatával. A 2D/3D grafikus API kiválasztásakor több dolgot is figyelembe kell vennie. Egyes fejlesztők egyszerűen arra az eszközre hagyatkoznak, amelyik a leginkább kényelmes.

OpenGL vagy DirectX: Platformok

Már érintettük a platformokat, de ez döntő szempont a fejlesztők számára. Ha Nintendo Switch-re, Playstation 4-re vagy Linuxra szeretne játékokat készíteni, OpenGL-lel vagy más, azokat támogató API-val kell dolgoznia. A DirectX Windowsra és Xboxra készült, és korlátozottan kompatibilis más rendszerekkel.

OpenGL vagy DirectX: Motor kompatibilitás

A legtöbb játékfejlesztő manapság olyan motorokat használ, mint a Unity és az Unreal, hogy létrehozza játékait. Mindkét motor támogatja az OpenGL-t és a DirectX-et, csakúgy, mint a többi többplatformos játékfejlesztő motor.

OpenGL vagy DirectX: Könnyű használat

Egyesek azzal érvelnek, hogy az OpenGL-lel könnyebb dolgozni, mint a DirectX-szel. A hardveres erőforrások mellett az OpenGL csak grafikát kezel, ami természeténél fogva egyszerűbbé teszi. Az a tény, hogy több platformon működik, megkönnyíti a játékok kiadását ezzel a feltétellel.

A Graphics API könnyű használhatósága nem olyan fontos, mint korábban a játékfejlesztők számára. Olyan motorokkal, mint a Unity A színfalak mögött a grafikus API-kkal való interfész, csak egy kattintás szükséges a használt API cseréjéhez. Hacsak nem a semmiből hoz létre egy játékot, nem valószínű, hogy különbséget fog észrevenni az egyes API-k egyszerű használatában.

OpenGL vagy DirectX: Grafikai szolgáltatások

Hacsak nem szegényes, nem valószínű, hogy óriási különbséget fog látni az elérhető funkciók között ezek között API-k. Mindkettő támogatja a grafikus kártya képességeit, és ez csak akkor fog megváltozni, ha a GPU-k drámai változásokat észlelnek a jövő.

OpenGL vagy DirectX: játékteljesítmény

Sok vita folyik a fejlesztők között ezen API-k teljesítményét illetően. Nehéz elképzelni, hogy az OpenGL ill A DirectX jelentős teljesítménybeli különbségekkel rendelkezik, bár gyakori az az állítás, hogy az OpenGL simább és hatékonyabb online.

Az egyetlen módja annak, hogy megtudja, melyik API teljesít a legjobban, a tesztelés. A Unity mindkét API-val való kompatibilitásának köszönhetően létrehozhatunk egy projektet és tesztelhetünk egy mintajátékot mindkét API-val. teljesítmény-benchmark létrehozása.

Ezeket a teszteket 2D-s és 3D-s grafikával is elvégezték annak biztosítására, hogy az eltérő csővezetékeik ne legyenek jelentős tényezők. Minden teszt 120 másodpercig fut a normál játékmenetből, és a másodpercenkénti képkockákat mérik a teljesítmény meghatározásához. Minden tesztet ugyanazon a számítógépen végeztek.

3D teljesítményteszt: Unity Carting Microgame

A Unity Carting Microgame egy ingyenes sablon, amely mindent tartalmaz, ami egy egyszerű versenyjáték felépítéséhez szükséges. Tutorialokkal érkezik, de minket inkább maga a játék érdekel. A Carting Microgame játékot OpenGL-lel és DirectX-szel is megépítettük, hogy összehasonlítsuk a teljesítményüket, és az eredmények a következők voltak:

Legalacsonyabb Legmagasabb Átlagos
DirectX 331 848 365.05
OpenGL 247 819 283.7

A DirectX felülmúlta az OpenGL-t a 3D-s benchmarkunkban, és mindvégig lenyűgöző képkockasebességet ért el. Az OpenGL eredményei még mindig több mint játszhatóak.

2D teljesítményteszt: Unity Platformer Microgame

A Carting Microgame-hez hasonlóan a Unity Platformer Microgame is ingyenes, és tele van nagyszerű tanulási eszközökkel. Ahogy az várható volt, a tesztjeinkben szereplő 2D-s játék jobban teljesít, mint a 3D-s, de az eredményeket saját maga értékelheti.

Legalacsonyabb Legmagasabb Átlagos
DirectX 599 850 767.367
OpenGL 302 604 515.417

Amint a fenti eredményekből látható, a DirectX sokkal magasabb átlagos képkockasebességet ért el tesztünk során. Bár a különbség drámainak tűnhet, mindkét eredmény nagyon játszható.

OpenGL vagy DirectX 11: Összefoglaló a teljesítményről

Bár sokan azt mondják, hogy az OpenGL jobban teljesít, mint a DirectX, az utóbbi API mindkét benchmarkunkban jobb eredményeket ért el. Ez korántsem meggyőző, mivel sok tényező játszik szerepet a játék teljesítményében, különösen, ha egyre bonyolultabbak.

DirectX vagy OpenGL: melyiket használja játékfejlesztéshez?

A megfelelő grafikus API kiválasztása több tényezőtől függ. A DirectX a legszélesebb körben használt grafikus API. Sok játékfejlesztő Windowsra és Xboxra hozza létre játékait, mielőtt más platformokra áthelyezné őket OpenGL-re. Ha kizárólag a Windowson és az Xboxon kívül tesz közzé játékot, akkor előnyös lehet az OpenGL használata a kezdetektől.

A teljesítmény szintén figyelembe veendő tényező, bár teszteléseink azt mutatják, hogy ez meglehetősen elhanyagolható motoreszközök, például Unity használatakor. Lényegében a két grafikus API közötti különbségek csak azok számára számítanak, akik speciális résfunkciókat keresnek.