Nézzünk szembe a tényekkel: a DirectX 11 és az OpenGL kicsit öregszik. A DirectX 11-et 2009-ben vezették be a Windows 7-rel, az OpenGL 4.0 egy évvel később. A szoftveres években ezek a technológiák ma már régiek, és az általuk használt hardver jelenlegi termése még a rajztáblán sem volt, amikor ezeket a grafikus API-kat kiadták. Figyelembe véve ezt a nyilvánvaló szakadékot, mit csinál az ipar az időkkel? Nos, megnézzük a közeljövőt és megnézhetjük, de kezdetben elmagyarázzuk, mi az API és milyen funkciót szolgál a játékhoz.
Mi az API?
Az API vagy alkalmazásprogramozási felület a szoftverek összeállításához használt protokollok és eszközök halmaza. A Grafikus API valójában csak egy speciális API, amely a 3D grafika előállításának megkönnyítésére épült. A grafikus API-k megkönnyítik a 3D-s képek készítését, de lehetővé teszik azt is, hogy megmondják az API-nak, hogy tegyen valamit (pl. Rajzoljon egy téglalapot), és viszont hagyja, hogy az API kommunikáljon a hardverrel a feladat elvégzéséhez. Ez a fő oka annak, hogy oly sok különféle speciális hardver GPU képes ugyanazon játékok futtatására. API hiányában ugyanazt a játékot különféle módon kell írni, hogy kommunikálni lehessen az egyes hardverkészletekkel. Ez súlyosan korlátozná a hardvergyártást, és jelentősen megnöveli a játékok építésének költségeit, és ezt a költséget végül a végfelhasználóra hárítanák.
Annak érdekében, hogy a fenti magyarázat kissé könnyebben megérthető legyen, analógiát fogok használni: Gondolj egy API-ra, mint építkezés menedzserére. Feladata, hogy átvegye az építész ötletét, és bontja azt, ütemezze, hogy a legénységnek hol és mikor kell lennie, és gondoskodjon arról, hogy mindenki ugyanazon az oldalon legyen, és mit kell tennie.
Jelenleg használt grafikus API-k
Most, hogy megértettük egy grafikus API feladatát, nézzük meg közelebbről a jelenlegi felállást. A mai piac legnagyobb szereplője a Microsoft DirectX, amelyet egészen 1995-ben vezettek be. A kiadás óta többször frissítették, és szerepel a Microsoft Windows operációs rendszerében. A DirectX az egyetlen grafikus API, amelyet szinte minden PC-re kiadott játék támogatni fog. Valójában ez olyan általános, hogy valójában a mai PC-s játék szabványa. A DirectX kizárólag a Windows és a Microsoft termékekre vonatkozik, ami sajnos nagyon zárt rendszerré teszi. A következő sorban az OpenGL, az egyetlen fő nyílt forráskódú grafikus API. Az OpenGL 1992-ben jelent meg, és több platformon működik, vagyis több operációs rendszerrel működik, köztük a Windows, a Linux és a Mac OS. Végül megvan a legújabb grafikus API, a Mantle. A Mantle-t 2013-ban fejlesztették ki az AMD és a Dice partnerségén keresztül. A Mantle Windows rendszeren érhető el, és csak az AMD GPU-khoz.
Image Source; Képek jóváírása: Intel
DirectX 12
A DirectX 12 várhatóan idén ősszel jelenik meg a Windows 10 rendszerrel, és sok új fejlesztés várható. Az egyik nagy fejlesztés a sokrétű jobb támogatás. A munka nagyobb része a processzor több magjára oszlik, lehetővé téve a CPU sokkal jobb és hatékonyabb kihasználását. Sokszor a DirectX 11nek csak egy teljes processzortartalmú magja lesz teljes kihasználva, míg a többi mag üresjáratban ül. A DirectX 12 megígéri, hogy ezt a munkaterhelést egyenletesebben elosztja a CPU-magok között, így a játékoknak sokkal több CPU-energiát kell használniuk. A következő nagy fejlesztés, amelyet a DirectX 12 ígért, az a képesség, hogy még sok további hívást kezelni tudjon. A sorsolás bármikor megtörténik, amikor a játékmotor valamit rajzolni akar a képernyőn. A sok sorsolásos hívás követelménye általában nagyon adóztatja a CPU-t. A DirectX 12 állítólag akár 600 000 hívási hívást képes kezelni. A perspektíva szempontjából a DirectX 9 csak 6000 hívási hívást képes kezelni, vagyis a DirectX 12 képességeinek 100% -át.
Évek óta lehetséges több GPU futtatása SLI / Crossfire módban. Az egyik nagy korlátozás az volt, hogy a kártyákba beépített VRAM nem rakódott össze, hogy egy nagy, folyamatos medencét képezzen. Például, ha van két GPU-ja, amelyek mindegyikében 2 GB VRAM van, akkor ténylegesen csak 2 GB VRAM volt, mert minden kártyának ugyanazon információknak kell lennie. A DirectX 12 reméli, hogy ezt a problémát megoldja AFR vagy alternatív keretmegjelenítés használatával. Az egyes keretek egyes részét megjelenítő GPU-k helyett a GPU-k ehelyett mindegyiknek egy-egy teljes képkocka lesz. Ez lehetővé teszi az egyes kártyákon található VRAM független használatát, és remélhetőleg lehetővé teszi, hogy a kisebb VRAMmennyiségű kártyák jó és hosszabb időn át a játékhoz életképesek legyenek. Feltételezhető, hogy sok más új funkció is szerepel a DirectX 12-ben, amelyek a grafikus grafikákat tovább tolják, mint valaha. Ugyanakkor a Microsoft még mindig nagyon zajosan tárgyalja, hogy mi az új szolgáltatás. Remélhetőleg többet tudunk róluk, amint az API kiadása közelebb kerül.
3. ábra: A DirectX 12 API általános költségei csökkennek, ha többmagos CPU-kat használnak.Image Source; Kép jóváírása: nVidia GeForce
Vulkán
A Vulkanról nem annyira tudunk, mint a DirectX 12-ről, ahogyan azt a GDC 2015-ben bejelentették. Tudjuk, hogy az OpenGL, a Khronos Group alkotói a glNext nevet dobták a Vulkan javára. Úgy tűnik, hogy a Vulkan a Mantle-ből származik, amelyet már említettem a cikkben. Úgy tűnik továbbá, hogy az AMD a Khronos Csoporttal együttműködésben a Vantán asztalához hozza a Mantle legjobb részeit. A Vulkan-nek állítólag sok hasonló előnye van a DirectX 12-nek, de nem kapcsolódik egyetlen platformhoz, mint a Windows. Ehelyett sok különböző platformon elérhető lesz, beleértve a Linuxot és akár a mobil eszközöket is. A Vulkan illesztőprogramjai mind a Windows, mind a Linux számára teljesen nyílt forráskódúak lesznek, ellentétben a DirectX-rel. A Vulkan javítja a többszálú menetválasztást, és ezért sokkal jobban kihasználja a ma elérhető CPU-teljesítményt azáltal, hogy a munkaterhelést több CPU-magra elosztja. Ahogy korábban utaltunk rá, a CPU terhelésének csökkentése lehetővé teszi, hogy a GPU-k ne legyenek olyan szűk keresztmetszetben, mint most. Ennek meglehetősen jelentős keretet kell növelnie a játék során. A Source 2, amelyet a Valve nemrégiben jelentett be, lesz az első új játékmotor, amely teljes mértékben támogatja a Vulkan-t, bár biztos vagyok benne, hogy a közeljövőben még sok más bejelentésre kerül. A Dota 2, a CPU-igényes játék, a 2. forrásban fut az új Vulkan API-val, az Intel integrált grafikájával a CPU-n. Ez olyasmi, ami minden bizonnyal nem lett volna kívánatos a DirectX 11 alatt, de a Vulkan esetében úgy tűnt, hogy a játék ésszerű keretsebességet tart fenn az egész. Dan Baker, aki az oxid játékok fejlesztõje, azt is elmondta, hogy „amíg a GPU gyártók össze nem készülnek, és a GPU-kat tízszer gyorsabbá teszik, mint jelenleg, addig nem tudjuk kihasználni a CPU-t”. Ez jó hír azoknak az embereknek, akik lassabb processzorral működnek, vagy akik jelenleg nagyon sok GPU-val rendelkeznek, mert ez azt jelenti, hogy sokkal jobb teljesítmény érhető el ugyanazon hardverkészlettel.
Image Source; Kép jóváírás: Khronos
Mit jelent ez a játék jövője szempontjából?
Nos, jó ideje, a GPU-teljesítmény sokkal gyorsabban növekszik, mint a CPU-teljesítmény. Öt évvel ezelőtt az Intel még azt is kijelentette, hogy néhány GPU 14-szer gyorsabb volt, mint a saját processzoruk. Ezeket a teszteket nVidia GTX 280 vs. i7 960 Intel CPU-val végezték - ez most már viszonylag elavult hardver. Az nVidia GTX Titan X (vagy akár az nVidia GTX 980) és a jelenlegi mainstream CPU erőmű - az Intel i7-4790k CPU - közötti távolságnak sokkal nagyobbnak kell lennie. Arra gondolok, hogy egyre több játékot látunk a falon a teljesítmény miatt a CPU miatt. Kérdezze meg bárkit, aki magas frissítési gyakorisággal rendelkezik, milyen nehéz fenntartani a 100 + fps sebességet az aktuális CPU-kkal néhány játékban. Őszintén szólva, csak akkor nehezebbé válna ezek az új API-k, és nem tudnák hatékonyan felhasználni a processzor teljesítményét. Ezen új API-k bevezetése hatalmas növekedést jelenthet a teljesítmény szempontjából a legtöbb ember számára. Ezenkívül lehetővé tenné a fejlesztők számára, hogy sokkal több CPU-igényes játékot építsenek, mint most. Képzelje el például egy olyan játékot, mint az Assasins Creed, amelynek több ezer NPC-je jelenik meg a képernyőn egyszerre, és amelyek mindegyike kölcsönhatásba lép egymással és a karaktereddel, miközben városba barangol. Vagy olyan játékokhoz, mint a Star Citizen, ahol nagyon erős CPU-ra van szükség bármilyen stabil és elfogadható képátviteli sebesség eléréséhez, a közeljövőben a legjobb esetben egy átlagos CPU-ra és egy erős GPU-ra lehet szükség egy szép szilárd 60 kép / mp-es sebesség fenntartásához.
Végül nagyon izgalmas idő játékosok lenni. Amikor megjelennek ezek az új grafikus API-k, hosszú időn keresztül a játéktechnika legnagyobb ugrását láthatjuk. Csak reméljük, hogy ezek az API-k megfelelnek annak a hypenek, amelyet már maguknak felépítettek.