Svetlá budúcnosť hernej počítačovej grafiky
Digitálny herný priemysel si dnes užíva najsilnejšiu pozíciu v doterajšej histórii a naďalej pokračuje v rozkvete a neustálom raste. V roku 2015 vygeneroval príjmy 34 miliárd dolárov (92 miliárd pri započítaní hardvéru) a očakáva sa, že do roku 2018 toto číslo narastie na 45 miliárd dolárov (113 miliárd vrátane hardvéru). Na svete sa občasnému hraniu na počítačoch rôzneho formátu neubráni až 1,8 miliardy ľudí. https://www.youtube.com/watch?v=c4cXG8zu61Y V posledných rokoch raketovo stúpa najmä počet hráčov na mobilných zariadeniach, ktoré lákajú predovšetkým jednoduchšími žánrami v podobe zábavných logických hier alebo nejakej tej „skákačky“. Vrcholnými produktmi herného priemyslu sú pravdaže špičkové tituly s pokročilou grafikou, ktoré sú z dôvodu najvyššieho rozpočtu a tržieb označované skratkou AAA. Tie už vyžadujú hardvérovo výkonnejšie platformy, obvykle založené na architektúre x86. Ide teda predovšetkým o notebooky a desktopy s operačným systémom Windows a herné konzoly Xbox One a PlayStation 4. Na týchto platformách sú omnoho častejšie už aktívni hráči, čo sú osoby, ktoré sa hrám venujú pravidelne a hrajú nejakú hru každý mesiac, týždeň či deň. Na platforme Windows je takýchto aktívnych hráčov až 711 miliónov. Dodnes je pri tom rozšírený mýtus, že počítačové hry hrajú hlavne mladšie ročníky, čo má svoj pôvod niekde v 80. rokoch minulého storočia, keď sa počítačové hry začali rozširovať vo výraznej miere. Pravda je ale taká, že hráči, ktorí začali hrať hry v detstve, v hraní nikdy neprestali. Súčasné štatistiky hovoria jasnou rečou. Priemerný vek hráča je dnes 35 rokov, pričom toto číslo sa postupne zvyšuje už niekoľko desaťročí. Z pravidelných reportov svetovej hernej asociácie (ESA) takisto vieme, že hry vonkoncom nie sú len doménou mužov a až 48 % hráčov tvoria ženy.
Z hľadiska výkonu a schopnosti počítačov prevádzkovať čoraz náročnejšie herné tituly, sa pozornosť často upriamuje výhradne na nový hardvér, teda na nové grafické karty, procesory, operačné pamäte či herné konzoly. Hardvér je však len jedna časť skladačky a nemenej dôležitou časťou je softvér.Nízkoúrovňové API ako jasná cesta vpred
Ak chceme o súčasnosti a takisto budúcnosti počítačovej grafiky v hrách vôbec nejako zmysluplne hovoriť, nevyhneme sa téme aplikačných programovacích rozhraní, skrátene API (Application Programming Interface). Ide o celkom esenciálnu tému, ktorá v poslednej dobe prechádza po dlhej dobe konečne veľkým prerodom a robí obrovský krok vpred. V rámci počítačov s operačným systémom Windows, pričom nejde len o notebooky a desktopy, ale aj o hernú konzolu Xbox, je prioritným a najpoužívanejším aplikačným programovacím rozhraním Direct3D. Ide o súčasť balíka rozhraní DirectX, pričom celkom bežne sa tieto dva termíny aj zamieňajú, pretože Direct3D je najdôležitejším a najpoužívanejším API v tejto kolekcii. Microsoft si DirectX vytvára sám a ide o celkom esenciálnu súčasť operačných systémov Windows. Toto aplikačné rozhranie slúži ako základný medzičlánok medzi samotnou hrou (jej herným enginom) a grafickým jadrom, teda GPU. Medzi grafickými jadrami existuje množstvo odlišností, pričom na trhu je zástup modelov s odlišnými architektúrami nielen v rámci rôznych výrobcov, ale aj v podobe niekoľkých generácií toho istého výrobcu. Ľudia majú vo svojich počítačoch GPU od AMD (Radeon), Nvidie (GeForce) či Intelu a bolo by neudržateľné, ak by programátori museli robiť pre každý typ a verziu GPU hru zvlášť. Tu teda prichádza na pomoc API, ktoré zjednocuje štandardy a princípy a umožňuje programátorom vyvíjať hru bez takéhoto rozporu. Grafické API jasne definuje hranice, kam môžu herní vývojári pri tvorbe hier zájsť, pretože práve ono preberá od herného enginu dáta o virtuálnej scéne hry, spracováva ich a odosiela na výpočet grafickému jadru.
Donedávna sa používali dve majoritné grafické API, ktorými sú už spomenutý DirectX (respektíve Direct3D) a OpenGL. Služobne starším z tejto dvojice je OpenGL, vyvíjaný kontinuálne už od začiatku 90. rokov minulého storočia. Sprvu niekdajším grafickým gigantom Silicon Graphics a od roku 2008 neziskovým združením Khronos. OpenGL je multiplatformné API pre Windows aj Linux, ktoré má veľké zastúpenie hlavne v profesionálnych grafických či strihových programoch (napríklad Adobe Photoshop, Adobe Premiere, 3D Studio Max, Blender a ďalšie). V prípade hier je však jeho pozícia minoritná. Môže za to DirectX, ktorý sa objavil v roku 1995 a s rozšírením Windows sa stal celkom dominantným grafickým API. Niektoré špičkové hry pravdaže OpenGL používali, pričom šlo napríklad o DOOM3, avšak DirectX vždy hral prvé husle s takmer 100 % podielom. OpenGL sa často volil až dodatočne pre porty hier pre Linux, ako napríklad Left 4 Dead, Portal 2 či Half-Life 2. Tie však na platforme Windows stále používali DirectX. DirectX bol od svojho počiatku veľmi výkonným vysokoúrovňovým API. Microsoft ho neustále vyvíja už viac ako 20 rokov (verzia 1.0 sa objavila na Windows 95), pričom obvykle nové varianty cieli a pripravuje pre nové verzie svojho operačného systému Windows. Nanešťastie pre herných vývojárov, obvykle neumožňuje používanie novších verzií DirectX na starých systémoch. Hra síce funguje s použitím tej staršej verzie DirectX, avšak o výhody novšieho API, ktoré podporuje nové efekty a lepšie spracovanie grafických dát, príde. Napríklad Windows XP prišiel na trh v roku 2001 s novým DirectX 8.0 a vzhľadom na dlhú službu tohto systému sa s postupnými servisnými balíčkami dostal až na 9.0c. Tu však jeho cesta skončila. Ďalšia verzia DirectX už bola pripravená len výhradne pre systém Windows Vista, ktorý sa objavil na trhu v roku 2006. Nasledujúci Windows 7 priniesol DirectX 11.0 a jeho servisný balíček zas verziu 11.1. Mierne vylepšená verzia 11.2 sa takisto už objavila v roku 2013 len na Windows 8.1 a jeho dobových ekvivalentoch. Herní vývojári mali kvôli tomuto javu dlhé roky trpkosť na jazyku. Výkon herného hardvéru neustále stúpal, ale za viac ako desaťročie sa DirectX vpred príliš neposunul. Okolo roku 2010 stále drvivá väčšina hráčov používala len DirectX 9.0c, pretože z dôvodu neobľúbenosti Windows Vista zostávali stále na Windows XP. Práca vývojárov s DirectX 10 preto vychádzala vnivoč. Situácia sa následne postupne zlepšovala s rozširovaním Windows 7, takže mnoho hráčov prešlo na DirectX 10, avšak onedlho sa situácia zopakovala s nepopulárnym Windows 8. Do celej situácia začalo vstupovať to, že hardvér z dôvodu čoraz problematickejšieho posunu na nižšie výrobné procesy nerobil už také výkonnostné skoky ako kedysi a optimalizácia a čo najlepšia práca API bola esenciálna. Frustráciu necítili len vývojári hier, ale aj vývojári grafických čipov. Tí totiž vedeli, že obrovský posun vpred je možné spraviť tým, že opustia vysokoúrovňové API a prejde sa k nízkoúrovňovým, ktoré dokážu grafický hardvér ovládať „až na kosť“. Takými sú napríklad API určené na GPGPU, teda riešenia na prevádzkovanie všeobecných výpočtov na grafických jadrách (General-purpose computing on graphics processing units). Kým AMD na svojich herných čipoch Radeon a profesionálnych FirePro používala na GPGPU sprvu svoje nízkoúrovňové API Close To Metal a následne dala prednosť otvorenému štandardu API OpenCL (od združenia Khronos), Nvidia dávala na svojich herných čipoch GeForce a profesionálnych kartách Quadro prednosť svojmu API CUDA. Takéto nízkoúrovňové API umožňujú vývojárom detailný prístup k hardvéru a jeho ovládačom, čím je možné výpočet výrazne optimalizovať, znížiť jeho nároky a dosiahnuť výrazne vyšší výkon. Je tak často možné odstrániť brzdu v podobe procesora, ktorý na rozdiel od GPU nie je uspôsobený na masívny paralelný výpočet. Ten je však pri počítaní grafických scén s obrovským počtom objektov veľmi potrebný a keďže pomocou nízkoúrovňových API je možné všetko naservírovať a nasmerovať do GPU, šlo v hernom priemysle o jasnú cestu vpred. Neexistovali však náznaky, že by sa týmto smerom mali vydať herné API v podobe DirectX a OpenGL. Do boja s touto „nespravodlivosťou“ zasiahla v roku 2013 spoločnosť AMD, ktorá v spolupráci s herným štúdiom EA DICE predstavila svoje nízkoúrovňové API Mantle, ako novú konkurenciu zabehnutým vysokoúrovňovým herným API. Pri predstavení pri tom demonštrovala, ako veľmi sa prejaví nízkoúrovňové API napríklad pri renderovaní grafickej scény, pri ktorej sa volá veľké množstvo vykresľovacích funkcií (draw calls). Kým pri v tej dobe najrozšírenejšej verzii DirectX 11 boli schopní herní vývojári uskutočňovať štyri až päť tisíc volaní v jeden moment (v rámci vykreslenia jednej snímky), nízkoúrovňové API Mantle sa dostalo až na 100 000, teda viac ako desaťnásobok. Šlo teda skutočne o nový svieži vzduch vpustený do stagnujúceho vývoja. Na konferencii APU13, kde k predstaveniu došlo, sa odohrala aj ukážka vývojárov z Oxide Games, ktorí na počítači s grafickou kartou AMD Radeon R9 290X a procesorom AMD FX-8350 znížili frekvenciu CPU o polovicu (z 4 GHz na 2 GHz) bez toho, aby došlo k strate výkonu v hre. Následne zostavu postavili proti počítaču s omnoho výkonnejším procesorom Core i7-4770K a rovnakým GPU, ktoré však pracovalo s DirectX. Kým táto zostava zvládla spracovávať 1000 grafických objektov a 15 000 vykresľovacích požiadaviek na jednu snímku, zostava používajúca Mantle a menej výkonné CPU zvládla vďaka nízkoúrovňovému API až 2000 objektov a 30 000 vykresľovacích požiadaviek.DirectX 12 na plné obrátky
Kritika smerom k DirectX silnela. Známa bola napríklad výčitka Jurjena Katsmana zo spoločnosti Nixxes (firma v minulosti stála napríklad za portami hier Deus Ex, Hitman a Tomb Raider na Windows), ktorý označil DirectX za extrémne nepredvídateľné API a uviedol, že 50 % procesorového času sa spotrebuje na akúsi čudesnú réžiu. Obdobne sa vyjadril aj jeden z hlavných grafických vývojárov AMD Guennadi Riguer, ktorý kritizoval to, že v rámci DirectX neexistuje jednoduchá a priama cesta na preklad príkazov z API na príkazy pre GPU. Presadiť Mantle oproti stálici v podobe DirectX sa však nepodarilo. Herní vývojári sa k nemu stavali síce pozitívne avšak Nvidia o podporu tohto API nakoniec neprejavila záujem a negatívne sa k nemu postavil takisto aj Microsoft, ktorý oznámil, že konzola Xbox One ho podporovať nebude, a to aj napriek tomu, že je toho vďaka hardvéru od AMD schopná (Xbox One obsahuje podobne ako Playstation 4 procesor aj grafický čip od AMD) a bude dávať prednosť výhradne vlastnému DirectX vo verzii 11.2 s vylepšenou réžiou.
Vody sa však napokon v roku 2013 rozhýbali dobrým smerom. O rok neskôr totiž Microsoft svetu odhalil svoj vývoj nového nízkoúrovňového API, ktoré napokon v roku 2015 uviedol na trh spoločne s Windows 10. Ide o novučičký DirectX 12, ktorý sa môže pochváliť zrejme najväčšími zmenami vo svojom doterajšom vývoji. Primárnou zmenou sú pokročilé funkcie pre nízkoúrovňové programovanie, umožňujúce vývojárom implementovať svoju vlastnú súpravu príkazov a bufferov pre GPU, vďaka čomu je možné viac ťažiť z jeho veľkého paralelizmu. V predošlej verzii DirectX odosielal procesor do grafického jadra dáta rad za radom, takže ľahko mohlo dôjsť k tomu, že už viac posielať nestačil, i keď by GPU bez problémov zvládlo spracovať aj omnoho viac. DirectX 12 prišiel po vzore Mantle s odosielaním zoznamu príkazov v rámci jednej „dodávky“ či zoznamu, ktoré následne GPU spracováva samo a na procesor už nemusí čakať. Do grafických čipov je možné „pumpovať“ dáta vo veľkom počte vlákien a výrazne tým znižovať latencie pri renderovaní scény. Jednou z ďalších vlastností je aj natívne používanie viacerých GPU, bez nutnosti spoliehať sa na doplnkové riešenie výrobcov v podobe technológií SLI (Nvidia) a CrossFireX (AMD). Z hľadiska hardvéru výrobcovia grafických čipov zabezpečujú podporu v rámci ovládačov aj pre staršie grafické karty. DirectX 12 si dnes môžu užiť všetci majitelia grafických kariet GeForce 400 a novších modelov a takisto majitelia Radeonov od verzie HD 7700, teda aj všetkých R5/R7/R9 sérií. Podpora teda siaha až na karty staré zhruba päť rokov. Integrované grafické čipy Intelu dostali podporu DirectX 12 spätne až do generácie Haswell. Nutnosť je pravdaže operačný systém Windows 10. V ideálnych prípadoch je možné s DirectX 12 dosiahnuť zlepšenie grafického výkonu o 50 % až 70 %, podobne ako v prípade Mantle. Ide pravdaže len o ideálne prípady, kde narážajú staršie API na svoj limit. Prvá hra ktorá DirectX 12 podporovala bola stratégia Ashes of the Singularity, ktorá bola vydaná v októbri 2015. Spätne sa podpora DirectX 12 objavila už aj na vydaných hrách Rise of the Tomb Raider a Just Cause 3 (prostredníctvom patchu). Najdôležitejšie sú však hry, ktoré sa už na tomto API od základu vyvíjajú, pričom v tomto roku sa tešíme predovšetkým na tituly Quantum Break a Dark Soul 3 (apríl 2016), Total War: Warhammer (máj 2016) či Deus Ex: Mankind Divided (august 2016). Peknú demonštráciu ich grafických schopností môžete vidieť aj na reklamnom videu, ktoré Microsoft vydal v marci na propagáciu DirectX 12. Už aj tu je vidieť zaujímavú zmenu prístupu. V minulosti nové verzie DirectX Microsoft pre používateľov prakticky nepropagoval a rozdiely medzi staršou a novšou verziou obvykle predvádzali len výrobcovia grafických kariet. Čo môže za takúto zmenu prístupu? DirectX totiž nebude jediným nízkoúrovňovým API v rámci hráčskych platforiem. Do boja s ním vstúpil Vulkan, ktorý nemožno brať na ľahkú váhu.Vulkan ako okno do nezviazanej budúcnosti
Nízkoúrovňové API sú v móde, a to je dobre. Touto cestou, ktorú pred troma rokmi naznačilo Mantle od AMD, sa vydal Microsoft na Windows so svojím DirectX12 a takisto aj Apple na svojom systéme OS X (nízkoúrovňové API nazvané Metal). Operačné systémy Apple však v rámci špicových herných AAA titulov žiadnu rolu nehrajú. V prípade mobilnej sféry však je takýto prístup Apple veľmi dôležitý, pretože tam nie je procesorový výkon na rozdávanie a každé percento výkonu, ktoré je možné priniesť vďaka GPU, sa cení. Vo výsledku teda na platforme Windows 10, určenej pre notebooky, desktopy, a takisto hernú konzolu Xbox One nastupuje nízkoúrovňové API DirectX 12 a na mobilnej platforme iOS a desktopovom OS X zas API Metal.
Späť ani krok
Nízkoúrovňové API v podaní DirectX 12 a Vulkan sú výborným počinom, ktorý má potenciál posunúť grafické podanie hier o poriadny kus vpred. Vďaka nim sa herný priemysel a takisto herné platformy dostávajú na celkom novú úroveň, ktorá otvára nové dvere do budúcnosti. To, ktoré API bude nakoniec úspešnejšie ukáže až čas, avšak podobne ako v minulosti v prípade starších vysokoúrovňových API OpenGL a DirectX 11, aj tentoraz majú obe API svoje miesto na trhu a ponúkajú vývojárom možnosť voľby.
Vpred sa posúva takisto grafický hardvér, čo je nevyhnutné aj z dôvodu nástupu 4K rozlíšenia. V tomto roku budú muziku tvrdiť nové 16/14 nm generácie GPU, ktoré budú konečne sviežou vodou oproti 28 nm procesom, na ktorých sme zaseknutí už niekoľko rokov (pre veľké GPU k dispozícii skrátka nič lepšie nebolo). Pozitívne vnímame takisto veľký pokrok z hľadiska nových grafických pamätí HBM (podrobne sme sa im venovali v článku Kam kráča vývoj RAM v augustovom vydaní TOUCHIT), ktoré v tohtoročných generáciách preniknú na trh ešte viac. Zostáva teda len dúfať, že nás herní vývojári nesklamú a naservírujú nám tento aj tie budúce roky poriadnu dávku špičkových titulov. Tento článok vyšiel aj v tlačenom aprílovom vydaní TOUCHIT č. 3/2016, preto sa niektoré skutočnosti uvedené v článku, môžu odlišovať oproti aktuálnemu dátumu publikovania.Podobné články
Insta360 Quick Reader 512 GB: SSD úložisko ľahšie ako minca
Lenovo Legion Go: Podpora a ovládače budú pokračovať až do roku 2029
Problém s OLED displejom. Prečo niektoré pixely blikajú?










