Grafikos API, kaip „OpenGL“ ir „DirectX“, veikia kaip tiltas tarp programinės įrangos ir grafinės įrangos, naudojamos žaidimams žaisti. Šios API suteikia standartizuotus būdus, kaip rodyti 2D ir 3D grafiką ekrane. Per pastaruosius porą dešimtmečių jie tapo pagrindiniais žaidimų kūrimo elementais.
Varikliai, tokie kaip „Unity“, siūlo pasirinkti tarp jų naudojamų grafinių API, bet kaip jūs turėtumėte pasirinkti tinkamą žaidimo parinktį? Prisijunkite prie mūsų, kai lyginame OpenGL su DirectX, kad suprastumėte, kuris iš šių įrankių jums tinkamiausias.
DirectX vs. OpenGL: pagrindinių funkcijų apžvalga
„DirectX“ ir „OpenGL“ iš esmės naudoja tą patį grafikos vamzdyną, ir jie turi daug metų. Abi API naudoja taškus, vadinamus viršūnėmis, kad sukurtų sudėtingus grafikos primityvus. Kiekviena viršūnė saugo savo koordinates ir kitą svarbią informaciją. Tačiau kiekvienos bibliotekos viršūnių naudojimo būdas yra skirtingas.
Jie gali atlikti panašias funkcijas, tačiau pastebėsite skirtumą tarp OpenGL ir DirectX, jei dirbsite su jomis.
DirectX vs. OpenGL: API taikymo sritis
Prieš einant toliau, svarbu pažymėti, kad nors jie abu yra grafinės API, OpenGL ir DirectX taikymo sritis skiriasi. OpenGL yra grynaveislė grafikos API, o tai reiškia, kad ji nesusijusi su niekuo kitu, išskyrus 2D ir 3D grafiką. Kita vertus, „DirectX“ yra grafikos, garso, tinklų ir kitos aparatinės įrangos API, kurios veikia kartu, rinkinys.
Kai kuriais atvejais „OpenGL“ naudos „DirectX“, kad atliktų funkcijas, kurių ji pati negali atlikti. Likusioje šio straipsnio dalyje bus ignoruojamas skirtumas tarp dviejų API, daugiausia dėmesio skiriant kiekvieno įrankio grafiniams elementams.
OpenGL vs. „DirectX“: platformos
„OpenGL“ yra nemokama API, kurią valdo ne pelno siekianti įmonė „Khronos Group“, o „DirectX“ kuria „Microsoft“. „DirectX“ pirmiausia veikia „Windows“ ir „Xbox“, o kitos platformos, pvz., „Linux“, pamažu gauna palaikymą. OpenGL yra kelių platformų, todėl ją galima naudoti kuriant žaidimus įvairiose operacinėse sistemose ir žaidimų pultuose.
DirectX vs. OpenGL: aparatinės įrangos ištekliai
„DirectX“ aparatinės įrangos valdymą palieka kūrėjui, suteikdama galimybę efektyviai paskirstyti išteklius, kai jų reikia. „OpenGL“ tvarko aparatūros valdymą, tačiau tai gali turėti savų pranašumų, nes jums nereikia jaudintis dėl išteklių valdymo patiems.
DirectX vs. OpenGL: dokumentacija
Prieiga prie išsamios dokumentacijos gali palengvinti žaidimų kūrimą dirbant su API. „DirectX“ ir „OpenGL“ siūlo reguliariai atnaujinamą dokumentaciją ir naudingas kūrėjų bendruomenes. Abi šios API kasmet atnaujinamos, kad būtų užtikrintos geriausios galimos funkcijos.
Naudojant OpenGL vs. „DirectX“ žaidimų kūrimui
Kūrėjai sukūrė daug gražių ir gerai optimizuotų žaidimų šiuolaikinėje rinkoje naudodami OpenGL ir DirectX. Rinkdamiesi 2D / 3D grafikos API turėtumėte atsižvelgti į keletą dalykų. Kai kurie kūrėjai tiesiog pasikliaus tuo įrankiu, kuris jiems patogiausias.
OpenGL arba DirectX: platformos
Mes jau palietėme platformas, tačiau tai yra esminis kūrėjų aspektas. Jei norite kurti žaidimus, skirtus „Nintendo Switch“, „Playstation 4“ ar „Linux“, turėsite dirbti su „OpenGL“ arba kita juos palaikančia API. „DirectX“ sukurta „Windows“ ir „Xbox“ ir yra ribotai suderinama su kitomis sistemomis.
OpenGL arba DirectX: variklio suderinamumas
Šiais laikais dauguma žaidimų kūrėjų savo žaidimams kurti naudoja tokius variklius kaip Unity ir Unreal. Abu šie varikliai palaiko OpenGL ir DirectX, kaip ir kiti kelių platformų žaidimų kūrimo varikliai.
OpenGL arba DirectX: paprastas naudojimas
Kai kas ginčytųsi, kad su OpenGL dirbti lengviau nei su „DirectX“. Be aparatinės įrangos išteklių, OpenGL tvarko tik grafiką, todėl ji iš prigimties yra paprastesnė. Tai, kad jis veikia daugiau platformų, taip pat leidžia lengviau išleisti žaidimus su šiuo reikalavimu.
Grafikos API naudojimo paprastumas nėra toks svarbus kaip anksčiau žaidimų kūrėjams. Su tokiais varikliais kaip „Unity“. Sąsaja su grafinėmis API užkulisiuose, tereikia spustelėti mygtuką, kad pakeistumėte naudojamą API. Nebent kuriate žaidimą nuo nulio, mažai tikėtina, kad pastebėsite skirtumą tarp kiekvienos API naudojimo paprastumo.
OpenGL arba DirectX: grafikos funkcijos
Vargu ar pastebėsite didžiulį skirtumą tarp šių funkcijų, nebent esate paprasti API. Jie abu palaiko jūsų vaizdo plokštės galimybes, ir tai pasikeis tik tuo atveju, jei GPU pastebės dramatiškus pokyčius ateitis.
OpenGL arba DirectX: žaidimo našumas
Kūrėjai daug diskutuoja dėl šių API veikimo. Sunku įsivaizduoti, kad OpenGL ar „DirectX“ turi didelių našumo skirtumų, nors teiginys, kad „OpenGL“ yra sklandesnis ir efektyvesnis, yra įprastas prisijungęs.
Vienintelis būdas sužinoti, kuri iš šių API veikia geriausiai, yra testavimas. Dėl Unity suderinamumo su abiem API, galime sukurti projektą ir išbandyti žaidimo pavyzdį su abiem API. sukurti našumo etaloną.
Šie bandymai buvo atlikti su 2D ir 3D grafika, siekiant užtikrinti, kad jų skirtingi vamzdynai nebūtų reikšmingas veiksnys. Kiekvienas bandymas vyksta 120 sekundžių įprasto žaidimo ir matuojami kadrai per sekundę, siekiant nustatyti našumą. Visi bandymai buvo atlikti tame pačiame kompiuteryje.
3D našumo testas: Unity Carting Microgame
„Unity Carting Microgame“ yra nemokamas šablonas, kuriame yra viskas, ko reikia norint sukurti paprastą lenktynių žaidimą. Jis pateikiamas su vadovėliais, bet mus labiau domina pats žaidimas. Sukūrėme Carting Microgame su OpenGL ir DirectX, kad palygintume jų našumą, o rezultatai buvo tokie:
Žemiausia | Aukščiausias | Vidutinis | |
---|---|---|---|
„DirectX“. | 331 | 848 | 365.05 |
OpenGL | 247 | 819 | 283.7 |
„DirectX“ pranoko OpenGL mūsų 3D etalonu ir pasiekė įspūdingą kadrų dažnį. „OpenGL“ rezultatus vis dar galima žaisti.
2D našumo testas: Unity Platformer Microgame
Panašiai kaip Carting Microgame, Unity Platformer Microgame yra nemokamas ir pilnas puikių mokymosi priemonių. Kaip ir tikėtasi, mūsų testuose 2D žaidimas veikia geriau nei 3D, tačiau rezultatus galite įvertinti patys.
Žemiausia | Aukščiausias | Vidutinis | |
---|---|---|---|
„DirectX“. | 599 | 850 | 767.367 |
OpenGL | 302 | 604 | 515.417 |
Kaip matote iš aukščiau pateiktų rezultatų, „DirectX“ mūsų bandymų metu pasiekė daug didesnį vidutinį kadrų dažnį. Nors skirtumas gali atrodyti dramatiškas, abu rezultatai yra labai tinkami.
OpenGL arba DirectX 11: našumo išvada
Nors daugelis žmonių sako, kad „OpenGL“ veikia geriau nei „DirectX“, pastaroji API pasiekė geresnių rezultatų abiejuose mūsų etalonuose. Tai toli gražu nėra įtikinama, nes žaidimo našumą lemia daugybė veiksnių, ypač kai jie tampa sudėtingesni.
„DirectX“ arba „OpenGL“: kurį turėtumėte naudoti žaidimų kūrimui?
Tinkamos grafikos API pasirinkimas priklauso nuo kelių veiksnių. „DirectX“ yra plačiausiai naudojama grafinė API. Daugelis žaidimų kūrėjų kuria savo žaidimus, skirtus „Windows“ ir „Xbox“, prieš perkeldami juos į „OpenGL“ kitoms platformoms. Jei skelbiate žaidimą tik ne „Windows“ ir „Xbox“, jums gali būti naudinga naudoti OpenGL nuo pat pradžių.
Našumas taip pat yra veiksnys, į kurį reikia atsižvelgti, nors mūsų bandymai rodo, kad tai yra gana nereikšminga naudojant variklio įrankius, tokius kaip „Unity“. Iš esmės šių dviejų grafinių API skirtumai svarbūs tik tiems, kurie ieško konkrečių nišinių funkcijų.