API-urile grafice, cum ar fi OpenGL și DirectX, acționează ca o punte între software-ul și hardware-ul grafic folosit pentru a juca jocuri. Aceste API-uri oferă metode standardizate de afișare a graficelor 2D și 3D pe ecran. Ele au devenit fundamentale pentru dezvoltarea jocurilor în ultimele două decenii.

Motoarele precum Unity oferă posibilitatea de a alege între API-urile grafice pe care le folosesc, dar cum ar trebui să alegi opțiunea potrivită pentru jocul tău? Alăturați-vă nouă în timp ce comparăm OpenGL cu DirectX pentru a vă oferi o idee despre care dintre aceste instrumente este cel mai bine pentru dvs.

DirectX vs. OpenGL: Prezentare generală a caracteristicilor principale

La bază, atât DirectX, cât și OpenGL împărtășesc aceeași conductă grafică și au de mulți ani. Ambele API-uri folosesc puncte numite vârfuri pentru a construi primitive grafice complexe. Fiecare vârf stochează propriile coordonate și alte informații importante. Dar modul în care fiecare bibliotecă folosește vârfurile este diferit.

instagram viewer

Ele pot îndeplini funcții similare, dar veți observa diferența dintre OpenGL și DirectX dacă lucrați cu ele.

DirectX vs. OpenGL: Domeniul API

Înainte de a merge mult mai departe, este important să rețineți că, deși ambele sunt API-uri grafice, OpenGL și DirectX au domenii diferite. OpenGL este un API de grafică de rasă, ceea ce înseamnă că nu se ocupă cu nimic altceva decât cu grafica 2D și 3D. DirectX, pe de altă parte, este o colecție de grafică, audio, rețele și alte API-uri hardware care funcționează toate împreună.

În unele cazuri, OpenGL va folosi DirectX pentru a îndeplini funcții pe care nu le poate face singur. Restul acestui articol va ignora această diferență între cele două API-uri, concentrându-se pe elementele grafice ale fiecărui instrument.

OpenGL vs. DirectX: Platforme

OpenGL este un API gratuit gestionat de o companie non-profit numită Khronos Group, în timp ce DirectX este realizat de Microsoft. DirectX funcționează în principal pe Windows și Xbox, cu alte platforme, cum ar fi Linux, primind asistență încet. OpenGL este multiplatformă, făcându-l utilizabil pentru dezvoltarea jocurilor într-o gamă largă de sisteme de operare și console de jocuri.

DirectX vs. OpenGL: Resurse hardware

DirectX lasă dezvoltatorului gestionarea hardware-ului, oferindu-vă posibilitatea de a aloca resurse în mod eficient, pe măsură ce aveți nevoie de ele. OpenGL se ocupă de gestionarea hardware-ului, dar acest lucru poate veni cu propriile sale beneficii, deoarece nu trebuie să vă faceți griji cu privire la gestionarea resurselor.

DirectX vs. OpenGL: Documentație

Accesul la documentația detaliată poate face dezvoltarea jocului mult mai ușoară atunci când lucrați cu API-uri. DirectX și OpenGL oferă documentație actualizată în mod regulat și comunități utile de dezvoltatori. Ambele API-uri primesc actualizări anuale mari pentru a se asigura că oferă cele mai bune funcții disponibile.

Utilizarea OpenGL vs. DirectX pentru dezvoltarea jocurilor

Dezvoltatorii au realizat multe jocuri frumoase și bine optimizate pe piața modernă folosind atât OpenGL, cât și DirectX. Există câteva lucruri pe care ar trebui să le luați în considerare atunci când alegeți un API pentru grafică 2D/3D. Unii dezvoltatori se vor baza pur și simplu pe instrumentul cu care se simt cel mai confortabil.

OpenGL sau DirectX: Platforme

Am abordat deja platformele, dar aceasta este o considerație crucială pentru dezvoltatori. Dacă doriți să creați jocuri pentru Nintendo Switch, Playstation 4 sau Linux, va trebui să lucrați cu OpenGL sau un alt API cu suport pentru acestea. DirectX este creat pentru Windows și Xbox și are o compatibilitate limitată cu alte sisteme.

OpenGL sau DirectX: Compatibilitate cu motor

Majoritatea dezvoltatorilor de jocuri folosesc motoare precum Unity și Unreal pentru a-și crea jocurile, în zilele noastre. Ambele motoare acceptă OpenGL și DirectX, la fel ca și alte motoare de dezvoltare de jocuri multiplatformă.

OpenGL sau DirectX: ușurință în utilizare

Unii ar argumenta că OpenGL este mai ușor de lucrat decât DirectX. Pe lângă resursele hardware, OpenGL se ocupă doar de grafică, făcându-l mai simplu prin natură. Faptul că funcționează pe mai multe platforme face, de asemenea, mai ușoară lansarea de jocuri cu această cerință.

Ușurința de utilizare a API-ului grafic nu este la fel de importantă ca înainte pentru dezvoltatorii de jocuri. Cu motoare precum Unity interfața cu API-urile grafice din culise, este nevoie doar de un clic pe un buton pentru a schimba API-ul pe care îl utilizați. Cu excepția cazului în care creați un joc de la zero, este puțin probabil să observați o diferență în ușurința de utilizare a fiecărui API.

OpenGL sau DirectX: caracteristici grafice

Cu excepția cazului în care sunteți o carcasă marginală, este puțin probabil să vedeți o diferență uriașă în funcțiile pe care le aveți disponibile între acestea API-uri. Ambele acceptă capacitățile plăcii dvs. grafice, iar acest lucru se va schimba doar dacă GPU-urile văd schimbări dramatice în viitor.

OpenGL sau DirectX: Performanța jocului

Există multe dezbateri între dezvoltatori cu privire la performanța acestor API-uri. Este greu de imaginat că OpenGL sau DirectX are diferențe semnificative de performanță, deși afirmația că OpenGL este mai fluidă și mai eficientă este comună pe net.

Singura modalitate de a afla care dintre aceste API-uri funcționează cel mai bine este prin testare. Datorită compatibilității Unity cu ambele API-uri, putem crea un proiect și testa un exemplu de joc cu ambele API-uri pentru a creați un etalon de performanță.

Aceste teste au fost efectuate atât cu grafică 2D, cât și 3D pentru a se asigura că conductele lor diferite nu sunt un factor considerabil. Fiecare test rulează timp de 120 de secunde de joc obișnuit și cadrele pe secundă sunt măsurate pentru a determina performanța. Toate testele au fost efectuate pe același PC.

Test de performanță 3D: Unity Carting Microgame

Unity Carting Microgame este un șablon gratuit care conține tot ce aveți nevoie pentru a construi un joc de curse simplu. Vine cu tutoriale, dar ne interesează mai mult jocul în sine. Am construit Carting Microgame atât cu OpenGL, cât și cu DirectX pentru a le compara performanța, iar rezultatele au fost următoarele:

Cel mai scăzut Cel mai inalt In medie
DirectX 331 848 365.05
OpenGL 247 819 283.7

DirectX a depășit OpenGL în benchmark-ul nostru 3D, obținând rate de cadre impresionante pe tot parcursul. Rezultatele OpenGL sunt încă mai mult decât redate.

Test de performanță 2D: Unity Platformer Microgame

La fel ca Microjocul Carting, Unity Platformer Microgame este gratuit și plin cu instrumente excelente de învățare. După cum era de așteptat, jocul 2D din testele noastre funcționează mai bine decât cel 3D, dar puteți evalua singur rezultatele.

Cel mai scăzut Cel mai inalt In medie
DirectX 599 850 767.367
OpenGL 302 604 515.417

După cum puteți vedea din rezultatele de mai sus, DirectX a obținut o rată medie a cadrelor mult mai mare în testele noastre. Deși diferența poate părea dramatică, ambele rezultate sunt foarte ușor de jucat.

OpenGL sau DirectX 11: Concluzie de performanță

În timp ce mulți oameni spun că OpenGL are performanțe mai bune decât DirectX, cel din urmă API a obținut rezultate mai bune în ambele benchmark-uri. Acest lucru este departe de a fi concludent, cu mulți factori care joacă un rol în dictarea performanței unui joc, mai ales că devin mai complexe.

DirectX sau OpenGL: pe care ar trebui să le folosiți pentru dezvoltarea jocurilor?

Alegerea API-ului grafic potrivit depinde de mai mulți factori. DirectX este cel mai utilizat API grafic. Mulți dezvoltatori de jocuri își creează jocurile pentru Windows și Xbox înainte de a le porta pe OpenGL pentru alte platforme. Dacă publicați un joc exclusiv în afara Windows și Xbox, ați putea beneficia de la utilizarea OpenGL de la început.

Performanța este, de asemenea, un factor de luat în considerare, deși testele noastre arată că acest lucru este destul de neglijabil atunci când utilizați instrumente de motor precum Unity. În esență, diferențele dintre aceste două API-uri grafice contează doar pentru cei care caută caracteristici specifice de nișă.