Občas člověk něco ví a ví to tak dlouho, že to považuje za naprostou samozřejmost. Že to vědí přece všichni. A že tím pádem nemá smysl o tom vůbec mluvit. No, přesto se chci vypsat k jedné věci, která mne v poslední době docela trápí, ačkoliv jde o klasickou otázku. Je technologicky pokročilejší grafika hry vždy automaticky zárukou "lepší" grafiky? Jsou hry vyžadující větší výkon opravdu "hezčí"?
Zatímco v raných letech počítačových her grafika nemohla být z důvodu nedostupné technologie na první místě zájmu vývojařů, soustředili se tito spíše na grafický design, jak i z mála pixelů na obrazovce vymáčkout kýžený dojem z celkové scény. Může jít o Space Invaders, může jít o Pac Mana - ale na černém pozadí s pár barvami navrch v podstatě nešlo vykouzlit více. Grafika hry šla ruku v ruce s hratelností - přehlednost, plynulost a i programový kód - vše vycházelo z toho, kolik pixelů, spritů a podobných objektů bylo v paměti počítače. Stačila i jen malá změna a hra se hrála úplně jinak. Detekce kolizí probíhala obvykle na úrovni grafické, takže bylo logické, že takto designovaná hra nemůže identicky fungovat s jakoukoliv jinou grafikou - například po převedení do 3D by se hra musela řádně upravit a doprogramovat úplně nové funkce, které původní hra neměla. Výsledek v hratelnosti pak může být velice blízký originálu, ale v principu nikdy nemůže být hra stejná.
Pokud vnímáme obrazovku jako plátno malířovo, je dvourozměrné zobrazování grafiky vlastně ideálem. Člověk zodpovědný za grafiku je vlastně autorem každičkého pixelu na obrazovce a přímo posuzuje, zda ten či onen pixel či barva v paletě je opravdu ten nejlepší možný. Pokud ano, má jistotu, že hráč uvidí přesně to, co autor zamýšlel. To mi přijde jako zásadní.
S postupem technologie - udělejme si skok do šestnáctibitové éry - se ale situace pozvolna mění. Například závodní hra typu Lotus Turbo Challenge, Outrun nebo Road Rash evokují trojrozměrný prostor, který je ale kompletně složený z dvourozměrných objektů, spritů. Jak se vypořádat s perspektivou? Bylo několik variant. Sprity se mohly například nakreslit ručně ve více velikostech a program pak jenom chytře tyto sprity vyměňoval. Touto cestou byl grafik vlastně pořád zodpovědný za celkový obraz - ale práce na jediném objektu byla násobena tím, v kolika velikostních variantách musel objekt existovat.
Druhou variantou bylo dynamické zmenšování či zvětšování spritu v reálném čase. Na začátku je tedy grafický sprite, ale k němu je nutno připojit nějaký algoritmus, který uměl sprite škálovat přesně dle potřeby. V takovém případě byl grafik samotný zodpovědný pouze za původní sprite, ale už těžko mohl být zodpovědný za pixely, které program vyplivne, pokud se sprite zobrazí v jiné, než původní velikosti.
Jistě, často se mohlo stát, že algoritmus byl špatně napsaný a výsledky byly špatné. Anebo se ukázalo, že některé sprity mají příliš mnoho detailů, takže při dynamické změně ihned zanikly a grafik musel svou práci předělat. Čili - i pro grafika mělo smysl, aby rozuměl programování a možnostem své platformy (a naopak - programátor byl ve výhodě, když rozuměl grafice). Pointa ale zůstává. I když hra procházela testováním a schvalováním vzhledu, i když počet variant vygenerovaných algoritmem nebyl nijak oslnivý, platí, že za konkrétní pixel na obrazovce již není zodpovědný grafik, ale algoritmus, potažmo programátor.
Takové Super Nintendo šlo ještě o krok dál a dalo vývojařům k dispozici další nástroje, které tuto propast prohlubovaly - slavný režim Mode7 například umí škálovat v reálném čase a na úrovní hardwaru. Zatím co na Mega Drive bylo potřeba jednotlivé algoritmy naprogramovat ručně přímo pro procesor Motorola 68000, na SNESu jste prostě vzali sprite "a čau" - speciální čip na desce se postaral o všechno za vás. A pokud se vám výsledky nelíbily - to byl váš problém. Sprite se dá překreslit, ale funkce algoritmu Mode7 byla neměnná. Někde v těchto okamžicích bych řekl, že začíná nová éra, kdy v grafické podobě her došlo k velké revoluci.
S příchodem trojrozměrné grafiky se situace mění ještě dramatičtěji. Prakticky žádný pixel, co hráč vidí na obrazovce, nevznikl lidskou rukuou, ale takřka výhradně algoritmicky. Grafik byl zodpovědný pouze za dvourozměrné textury, ale ty se pak pomocí mnoha funkcí zbortily do perspektivy. Je to svým způsobem logické - obrazovka je pořád dvourozměrná, takže pixely ve 3D budou vypadat vždy jinak, než byly původně nakreslné. Je to asi jako kdyby malíř na své plátno nalepil botu. Technicky vzato se na opravdové plátno můžeme dívat ze všech stran (a někdy je to skutečně žádoucí), avšak obrazovka počítače je v zásadě dokonale dvourozměrná, na matematické úrovni.
Pokud ještě hovoříme o éře Dooma, když valný obsah hry po grafické stránce byly sprity, mohl člověk grafikovu práci ocenit. Počet barev 256 nebyl tak vysoký na to, aby si mohl autor dovolit nějaké šílené eskapády - měl pořád dost svázané ruce na to, aby věděl, že jeho textury a nepřátelé budou v některém typu světla špatně viditelní, takže je bude muset překreslit. Musel se pořád snažit, aby jeho práce vypadala ve hře dobře a byl pořád zodpovědný za celkový dojem z pixelů na obrazovce - byť ne tolik napřímo. Engine jako převadeč 3D prostoru na 2D obrazovku pozvolna přebíral otěže.
Úplný konec přímé zodpovědnosti tradičního grafika za jednotlivé pixely spatřuji v období, kdy se masově rozšířila 3D akcelerace obrazu a zejména bilineární (a lepší) filtrování. Taková textura měla pak na jedné straně rozlišení třeba 64x64 pixelů a 256 barev. To pak ale prošlo filtrem, kdy se zvedlo rozlišení na 256x256 a vypočítaly se barevné přechody mezi původními pixely, avšak z palety 65536 barev (a posléze se přešlo na 32bit paletu). Můj kamarád Drokk měl ve své době celkem zásadní otázku, proč třeba ve hře Myth: The Fallen Lords je potřeba 3D akcelerace, když do paměti počítače by šlo přece nahrát texturu země už vyhlazenou a ve vysokém rozlišení a tu prostě "jen" zobrazit (a zbylé sprity postaviček jakbysmet). K čemu byla tedy akcelerace dobrá?
Když se podíváme na obrázek ze hry v rozlišení 640x480, tak zdrojová textura pro zemi má nejspíše rozlišení nějakých 128x128 a je složena z několika mála barev, řekněme 256 (v reálu má zřejmě mnohem méně). Datově má jenom pár pouhých kilobajtů. Když se ale má zobrazit, prožene se 3D akcelerátorem, který v reálném čase texturu vyhladí a převede do vyššího rozlišení (256x256x16bit), namapuje na zemi a následně zobrazí. Vtipem ale je, že v paměti počítače ona textura zabírá pořád stejně místa, ono vyhlazování skutečně probíhá v reálném čase, tj. co zrovna oko hráčovo (kamera hry) nevidí, to vyhlazené není. Po čem volal Drokk bylo vlastně, aby se kompletně textura "předhladila" a už vyhlazená a v novém rozlišení byla uložena na disk. To by ale znamenalo mnohonásobně vyšší nároky na paměť a potažmo i na výkon procesoru.
128x128x256 = 16640 bytes
256x256x65636 = 131072 bytes
To je téměř osminásobný rozdíl. A to se bavíme pouze o jedné textuře na zemi, kdyby jich mělo čekat v paměti vícero (a jakože čeká, jak víme), celá hra bude místo 16 MB RAM vyžadovat najednou 128 MB RAM, což by v roce 1997 jaksi komerčně vzato neprošlo (ale zase byste nepotřebovali 3D akcelerační kartu).
Drokkův nápad ale není zas tak moc od věci. Totiž práce grafikova je kolikrát díky filtrování textur naprosto zhacena - pokud by byl grafik zodpovědný i za samotné vyhlazení, mělo by to smysl. Díky tomuto triku vypadala například hra Motorhead (od Gremlins, kde je jim konec?) velice dobře i v softwarovém režimu, posuďte sami:
Software renderer - na silnici jsou patrné pixely, ale v pohybu to vypadá fantasticky. |
3Dfx verze téhož - rozdíl je velmi málo patrný. |
Jenže právě nedostatek ryzího výkonu znamenal pro vývojaře výzvu, jak i s relativně primitivním hardwarem obejít zdánlivě pevně dané limity. To vedlo k vytvoření mnoha grafických standardů a rozhraní, které výpočty usnadňovaly, případně nahrazovali brutální výkon chytrými ochcávkami. Samotné využívání GLide, OpenGL nebo Direct3D sice implikuje, že výsledek na obrazovce bude jiný, než zdrojová grafika na obrazovce grafika, ale zároveň šlo o standartizované a řekněme "kvalitní" rozhraní, na které se dalo spolehnout. Takže při pohledu na ukázku ze hry Quake by člověk měl automaticky říci, že verze "po akceleraci" vypadá lépe, než verze "před".
Na druhou stranu ale také víme, že nevhodným mapováním a filtrováním můžeme obraz totálně pokazi. Zářným špatným příkladem je první Playstation, který se s texturami lidově řečeno nepáral a dost často jsme pak viděli zrůdnosti, jako je tohle:
Věnujte svou pozornost dolní části obrazovky, zeď vpravo - ano, ta textura je nakreslená rovně, ale jaksi Playstation při nejlepší možné vůli není designovaný na hezké pixely, nýbrž na rychlé pixely. A občas to ujede až takhle moc. Občas pořád. Tohle grafik vážně nezamýšlel. Vinny jsou čipy v konzoli.
Co tím chci říci - někdy v polovině devadesátých let, podpořeno masovým nástupem 3D akcelerace, se mění filozofie tvorby grafiky. Člověk už není zodpovědný za konkrétní pixel na obrazovce, ale grafik začíná řešit dojem z obrazu, jako z celku. Ještě pro Mega Drive jste si museli napsat vlastní vzorec na škálování, ale od SNESu výše dostali k dispozici hardwarové a později i softwarové prostředky, kterým jste jenom řekli co mají s texturami dělat, ale už vás nemuselo zajímat, jak se to přesně dělá. Asi tohle je můj osobní důvod, proč preferuji ruční grafiku (ať už 2D nebo 3D) - tehdy musel autor hry dokonale rozumět všemu, co ovlivňuje finální obraz. Čím méně se musel grafik domlouvat s programátorem, čím více se začal spoléhat na unifikovaná rozhraní, tím méně přímé zodpovědnosti za konkrétní pixel nesl.
Ale to neznamená, že s příchodem 3D akcelerace je veškerý můj respekt ke grafice v kelu. Vůbec ne, jenom se změnila ona filozofie tvorby. Vývojař sice není zodpovědný za pixel, ale je pořád zodpovědný za celkovou scénu. Se zvýšením rozlišení už přestalo záležet na jednotlivých pixelech tak jako tak, čili jsme v době polygonové, kdy se výkonem nemusí šetřit... anebo?
Jedna ze základních věcí, na kterou každý 3D grafik / modelář / texturář narazí, je pořád ono prokleté omezení fyzickými pixely na obrazovce. Můžete mít sebedetailnější model čehokoli, ale stačí ho vrazit do mlhy anebo prostě jen do větší vzdálenosti a celá jeho práce je v prachu. Třista tisíc polygonů, gigabajty textur a výsledkem je prachmizerných dvacet pixelů na obrazovce, protože model je prostě někde vzadu...
Bohužel, i v takovém případě, že model samotný v reálné hře vůbec nevynikne, zabírá tento v paměti úplně stejně místa, jako by byl vykreslovaný v popředí. A obecně - výpočetní výkon potřebný na zobrazení objektu je rovněž úplně stejný, ať už je objekt vpředu nebo vzadu. Na první pohled je všechno v pořádku, vždyť výkonu máme dost... jenže trik je právě v tom, že výkonu není nikdy dost.
Opakuje se nám situace, kterou řešily hry před dvaceti lety, avšak tehdy šlo o úroveň spritů. Vložit do paměti více modelů o různé velikosti, s různou hladinou detailu? Anebo škálovat v reálném čase jenom jeden model?
Definice vzdálenosti pro vykreslování různě detailních 3D modelů ve hře Assassin's Creed: Black Flag. |
Ta druhá varianta se zdá být vlastně "poctivější". Modelář vyrobí jeden dokonalý 3D model a engine se už postará o to, aby model zabral v souřadnicové síti ty správné pixely. Jestli těch pixelů bude milion nebo pět, na tom vůbec nesejde. V praxi je to ale nebetyčné plýtvání výpočetními prostředky. Považte skrz následující příklad.
Model má 3000 polygonů a 10 MB textur. Máme hardware, který umí spočítat 30.000 polygonů za vteřinu. To znamená, že na scéně může být právě 10 takových objektů a máme jistotu, že za jakékoliv situace pojede hra plynule, protože je na scéně právě 30.000 polygonů.
Jenže ve skutečnosti pro účely hry zde máme zbytečně velkou volnost, my od enginu nepotřebujeme, aby uměl zobrazit těchto deset objektů kdykoli a kdekoli. Obvykle máme na mysli nějakou scénu, kdy se některé objekty objevují blízko k hráči (a tehdy vynikne krása 3D modelu naplno), ale většinu času jsou tyto objekty někde v pozadí, mimo primární zájem hráče. Náhle zjistíme, že model kdesi vzadu je ve výsledku zodpovědný za pár pixelů na obrazovce, avšak výpočetně vzato sežere úplně stejné množství výkonu jako týž model umístěný v popředí. Co s tím?
Možností, jak ušetřit vykreslované pixely je skutečně mnoho. V takovéto scéně to lze řešit prostě tím, že některé pixely se vynechají. Poznali byste to? |
Čistě pro účely tohoto příkladu, zkusme si udělat alternativní scénu, ve které místo jediného budu mít dva tytéž objekty, ale vymodelované pokaždé s jiným počtem polygonů. Objekt A má pořád zmíněné 3000, kdežto objekt B bude mít pouze 1000 polygonů. V enginu pak uděláme programátorskou kličku. Stanovíme, že je-li objekt od kamery ve větší vzdálenosti, než třeba deset metrů, použije se pro výpočet model B, pakliže je kamera blíže, použijeme model A.
Dejme tomu, že máme na scéně deset objektů celkem, pět je do vzdálenosti deseti metrů, ostatních pět je dále. Najednou zjistíme, že náš počítač počítá pouhých 20.000 polygonů, ale to, co hráč vidí na obrazovce, se od předchozí scény v podstatě nijak neliší. Pravdou je, že objekty v pozadí mají jen třetinu detailů / polygonů, avšak protože jsou dost daleko, v rastrové síti naší obrazovky zabírají tak malé množství reálné plochy, že tyto detaily by zanikly i v případě, že by model měl původních 3000 polygonů.
Otázka za sto bodů - co s ušetřetným výkonem?
Variant je několik. Můžete ušetřený výkon použít ke zvýšení plynulosti celé hry, zvednout o třetinu počet snímků za vteřinu. Můžete zvednout počet objektů na scéně - ať už v popředí (kde lze v klidu přidat jeden) nebo v pozadí (kam jich lze nacpat pět navíc). Anebo můžete zvednout detailnost modelů v popředí.
Totiž to co jsem popsal funguje oběma směry. Zatím co se vzdalující objekt od kamery stává jen maličkým a nepodstatným shlukem pixelů, když se k objektu přibližujete (nebo se na něj díváte skrz dalekohled - bere-li hra v potaz to, že dalekohled je vlastně jiná kamera a jen nezoomujete do dálky, kde jsou low-poly modely), narazíte na to, že polygonová síť je vlastně velice hrubá a prokouknete iluzi objektu. Spatříte jeho základní stavební kameny. Různé hry a enginy se s tímto problémem poposavaly různým způsobem. Někdy nám není dovoleno se dívat tak zblízka, jindy to hra prostě přizná, že tady má limity dané svou technologií.
Abych dokončil svůj příklad výše, pojďme objekt A přemodelovat a dát mu 5000 polygonů. Hladina detailů stoupne zhruba 1.5x, přičemž rychlost takové hry bude stejná, jako byla dříve. A to všechno jenom díky tomu, že jsme do pozadí vložili nové objekty, avšak s méně polygony, protože víme, že tyto objekty stejně nebudou tolik vidět (ve výsledku je to pár pixelů, které nepojmou detaily původního modelu, ba dokonce ve většině případů low-poly model v dálce vypadá lépe, než high-poly model v téže vzdálenosti, protože onen low-poly jste chystali právě na to, aby měl ve výsledku na obrazovce jen pár pixelů - tedy opakuje se nám situace se sprity, kdy ručně kreslený sprite určený pro konkrétní vzdálenost vypadá obvykle lépe - protože s rozmyslem nakreslený - než algoritmicky zmenšený sprite z původní velikosti).
Od tohoto okamžiku se nám otvírá prostor pro optimalizace mnoha způsoby. Podobně, jako ve hře Road Rash, i dneska může mít smysl vyrobit polygonové modely objektů třeba v deseti velikostech a mezi nimi přepínat natolik plynule, že hráč nikdy nepozná, že se dívá na model s nižším počtem polygonů, jak se bude k objektu blížit, engine zavčasu přepne na detailnejší model.
Další možností je pak napsat algoritmus na dynamickou změnu polygonové sítě dle vzdálenosti. Anebo můžete nějak vtipně určit, že do některých míst se hráč nikdy nedostane dost blízko na to, aby bylo potřeba pro objekt v pozadí měnit za detailnější variantu. Typicky třeba ve hře Destiny sice po vstupu do mapy vidíte rozlehlou krajinu a v dálce nějakou stavbu - no ale když se vydáte směrem k této stavbě, hra vás na chviličku zavede do údoli nebo do nějakého tunelu, abyste se přiblížili - a hra si zatím v nahraje do paměti model stavby v plném detailu a jakmile vylezete z tunelu, hned vám ho hezky ukáže. Kdybychom v Destiny mohli létat letadlem a pokusili se letět z počátečního bodu rovnou ke zmíněné budově, tak po prvním kilometru cestování bychom zjistili, že je ta budova jen hrubá krabice, která se "zázračně" přepne do vyšší hladiny detailů, jakmile jsme dost blízko. A nic mezi tím prostě není. Hra na to není stavěná.
Ilustrační obrázky - čistě proto, aby text vypadal více odborný, než ve skutečnosti je. Tedy není. |
Postavme proti tomu GTA5, kde je možné skutečně létat a pozorovat tedy, jak se objekty s přiblížováním postupně prokreslují. A když si ještě představíte verzi pro PC / Playstation 4 / XBOX ONE, tak s násobkem objektů na scéně a s lepšími texturami - jistě chápete, proč jsem z této hry tak odvařený. Na 256 MB VRAM (v případě Playstation 3) vypadala hra prostě fantasticky, takže na několikanásobku paměti to bude zřejmě na hranici fotorealismu (s přivřenýma očima). Ale i zde se dá najít prostor k zavádějící mystifikaci, podívejte se na tento animovaný GIF:
Jakože ano, chápu, PS4 verze vypadá prostě lépe, ale zároveň víme, že i v PS3 verzi existuje práce se světlem, která zde vytváří onen dramatický rozdíl - takže tohle je trochu nefér. Ale při pozornějším zkoumání najdete rozdílů celou řadu - dlažba na zemi má plastické spáry, porost na zdi domu je rovněž plastický, dveře mají skleněnou výplň s odleskem a podobně. Rockstar se roky snaží, aby grafika v jejich nových hrách vždy předběhla svou dobu. V tomto případě se zdá, že nárůst výkonu bude zužitkován dobře.
Celá ta magie s 3D grafikou mne skutečně fascinuje, možná dokonce více, než práce s 2D grafikou. Problém je, že po roce 2000 se tento typ grafiky začal rozvíjet tak rychle, že jsem nestíhal usledovat všechny ty trendy, nuance a detaily, díky kterým dneska hry vypadají tak dobře. Ještě chápu, v čem je lepší anisotropické filtrování proti trilineárnímu, stejně tak chápu, jak se high-poly modelů vytvářejí low-poly s řádnou porcí bump textur navíc, co dělá teselace a co jsou to ty shadery... ale už mi hlava nepobírá, jak tyto algoritmy vlastně fungují. 2D grafice velice dobře rozumím, umím si představit, jak asi takový pixelart vzniká, jak funguje paralaxní scrolling a jak se pracuje s paletou... V oboru 3D grafiky mám velké mezery. V současnosti už nedokážu stoprocentně identifikovat, jaká hardwarová či softwarová komponenta ovlivňuje kterou část obrazu. Neumím si představit, jak moc náročný proces to je, napsat engine, který načte data ze zdrojového souboru s 3D modelem - je to tak šíleně složité, že si netroufám to celé chápat do opravdové hloubky.
To je asi tak v kostce moje soukromá zpověď. Miluju grafiku ve všech podobách, ale tu 2D obvykle ocením více, protože jí prostě rozumím. Současná 3D grafika je tak komplikovaná, že ji ocením jako celek, ale nerozumím jí, nenadchne mne tolik. To je také účel současných her - maskovat, z jakých dílků se vlastně obraz skládá, hráče to vede k tomu, že vnímá obraz pouze jako celek. Vnímám jenom obraz, nikoliv způsob, jak vzniknul. Jenže já mám v sobě přesvědčení, že hry nejsou filmy, že jde o software, jehož součástí je i práce programátora, úvahy grafika a tak dále - a já to chci ocenit! Jenže to u současné 3D grafiky přes veškerou dobrou vůli nesvedu, protože je to šíleně složité. A asi proto více tíhnu k ručně dělané 2D grafice, do té totiž "vidím".
Nezávisle na tom, v kontextu grafiky her po roce 2010 člověk dojde k zajímavému paradoxu. A sice, že vyšší nastavení grafiky nemusí být vždy automaticky vnímáno, jako "lepší" z hlediska dojmu z obrazu. Podívejte se na tento screenshot ze hry Metro 2033. Na první pohled je zřejmé, co se srovnání dvou grafických karet snaží říci - a sice, že světlo na pravé straně je přece éňo ňůňo cool, takže se z toho musíme posadit na zadek a jít si koupit novou grafickou kartu. No ale co když vám subjektivně tyhlety klišé přepálené efekty lezou krkem? Co třeba provařený bloom efekt? "Víc bloomu, víc Adidas", říkalo se. Ale výsledky jsou často prostě jen hnusnější. A ještě to chce více výkonu. Vzpomeňte si třeba na hru Just Cause, ta si snad bloomem nahrazovala radiosity efekt...
Světélkující loď anebo přehnaná aplikace nevhodného efektu? |
Ještě horší příklad nastane v případě, kdy jsou rozdíly mezi low-mid-high sotva patrné, či vyplývající jen z velice specifických situací, které hra nenabízí každou vteřinu. Například Skyrim pro PC je toho typickým příkladem - podívejte se sami (převzal jsem obrázky z Gameranx):
Low |
Mid |
High |
Ultra |
Dalším příkladem budiž Metal Gear Solid Ground Zeroes pro Playstation 3 a Playstation 4. Hrál jsem oboje docela dost a po několika strávených hodinách musím říci, že z hlediska vizuální kvality nevidím mezi oběma verzemi zásadní rozdíl. Nejvíce je patrná změna rozlišení, to je nepochybně plus pro Playstation 4. Takže třeba pohled na tyto dva screenshoty jasně ukazuje, k čemu se těch pár megahertzů a trochy té paměti navíc hodí (zdroj: Eurogamer):
No jo, jenže pak narazíte například na scénu, jako je tato a nejednou jsem upřímně zapochyboval, jestli je obraz lezoucí z Playstation 4 nutně "hezčí". Soustřeďte se na levou část obrazu, na odlesk bláta na zemi mezi stany:
Při přímém srovnání obou verzí se nemohu zbavit pocit, že na Playstation 4 tomu něco chybí, že subjektivní dojem z celku je vlastně lepší na Playstation 3.
Jak je to vůbec možné? Vždyť rozdíl ve výkonu obou konzolí je podle SONY téměř desetinásobný!
Jak se to vezme.
Playstation 4 je ve své koncepci urychlená Playstation 3 - anebo Playstation 3 HD - chcete-li, pro kterou se díky X86 architektuře a větší paměti snáze programuje. Právě díky možnosti srovnání několika her ve verzi pro obě konzole (Last of Us, Destiny, Watch Dogs, GTA5) jistě dojdete k závěru, že skok mezi nimi není generační, jako byl mezi Playstation 2 a 3. Na jednu stranu je fér říci, že se nyní pořád pohybujeme na začátku životního cyklu konzole, kdy hry ještě zdaleka nečerpají z plného potenciálu hardwaru. Ale připusťme, že i první tituly pro Playstation 3 - bez využívání plného potenciálu hardwaru - vypadaly prostě od prvního dne mnohem lépe, než drtivá většina her pro Playstation 2. (Osvěžovák paměti: 1 - 2 - 3). Čím to?
Jednou z hlavních věcí je přechod na vyšší rozlišení. Přechod z 480i (576i) na 720p (u pár her i 1080p) znamenal dvojnásobný nárůst počtu pixelů (pro FullHD dokonce více než 4,5x). Po dvaceti letech s PALem jsme byli doslova šokováni. I 3D scény mohly pojmout teoreticky násobky polygonů, které budou díky vyššímu rozlišení patrné a podílejí se na tvorbě celkového dojmu z obrazu. (V praxi bude nárůst počtu polygonů pod 100%, protože sice dneska každá hra používá lowpoly modely, jejich zobrazení je ale kriticky závislé na texturách a mapách, tj. dvojnásobný počet polygonů je dneska zbytečné plýtvání - na obrazu to ani při dvojnásobném rozlišení v drtivé většině případů prostě nepoznáte).
Přechod na 1080p standard (konečně...) v Playstation 4 znamená pro počet polygonů zhruba to samé - FullHD má dvakrát tolik pixelů, co 720p - jenže za tu dobu jsme si už zvykli na HD televizní vysílání, HD Youtube, HD filmy, takže se šok neopakuje. Navíc 8 SPU na 3,2 GHz v Cellu a 8 jader na 1,6 GHz v Jaguaru napovídá (i když uznávám, že srovnávám jablka s hruškami), že čistě z hlediska počtu polygonů nelze čekat zázraky. Navíc mnoho her pro Playstation 3 nejede ani v 720p rozlišení a o mnohdy nedostatečné snímkovací frekvenci nemluvě. Playstation 4 vlastně jen splácí dluhy svého předchůdce. Avšak polygoncount není všechno a také to není pointa nové generace hardwaru.
Totiž, s nástupem technologie shaderů (NVIDIA uvedla svou grafickou kartu s čipem GeForce3 v roce 2001 a mimochodem první XBOX disponuje tímto čipem) přestal počet polygonů hrát první housle, co se náročnosti na výpočty týče. Shadery se na 3D objekt dívají jako na shluk pixelů, kterým mění barvu podle jejich materiálu a podobných vlastností - a to sežere valnou část výkonu. Pak je skoro jedno, jestli objekt v dálce má 1000 nebo 2000 polygonů, protože má-li na obrazovce dohromady 20 pixelů, pixel shader bude provádět svou činnost právě dvacetkrát. Když ten samý objekt bude v popředí a zabere na obrazovce 10.000 pixelů, bude pixel shader muset pracovat 500x více.
Jak moc jsou shadery důležité? Dneska se už sotva setkáte se hrou, která shadery nevyužívá. A jelikož jsou shadery zodpovědné za skutečně obrovskou porci kvality obrazu, horko těžko si umím představit, že by někdo dovolil shadery vypnout. Čistě pro ilustraci se ale podívejme na hru Doom 3, která vypadá v plné kráse asi takto:
V roce 2004 byla hra psaná pro využívání shaderů, což uměly jen nejnovější grafické karty, třeba řada NV40 od NVIDIA (GeForce 6). Spustit hru na kterékoliv starší kartě nebylo možné, protože prostě shadery neměly. Někdo si ale řekl, že by bylo legrační, kdyby šlo shadery vypnout. A tak je pomocí hacku prostě vypnul. Pak bylo možné hru hrát i na zastaralé VooDoo2 ve SLI režimu. Hra jela obstojně, avšak jak ve skutečnosti vypadala ta samá hra bez shaderů? Takhle:
Rozdíl je naprosto propastný a chci tím demonstrovat, že samotné polygony už nejsou tím, o co ve skutečnosti jde - počet polygonů je v případě obou obrázků výše stejný . Další obrázky můžete najít v původním vlákně. Člověk žasne, jak moc ty "ochcávky" ve formě shaderů fungují. Je trochu nefér to nazývat ochcávkou, je to prostě inteligentní a inovativní využívání zdrojů - opakem by byl raytracingový engine, který pustíme na modely složené z mnohonásobně většího množství polygonů. Pakl se obejdeme bez shaderů a bude vypadat lépe a dokonale a realisticky - ale na to prostě nemáme výkon. Například hlava na obrázku níže má 17 milionů polygonů a nemá na sobě žádné bump- ani normálové mapy. Raytracing ale trval 2 minuty, takže je zřejmé, že pro herní využítí je to zatím k ničemu. Ale dočkáme se!
Hry na Playstation 4 nepoužívají Xnásobně více polygonů, protože jich bude na realismus stejně málo. Takže jen stačí, abych těch polygonů bylo adekvátně k rozlišení. Má ale dramaticky více paměti na textury a lepší práci se shadery v GPU a to hraje zásadní roli. A proto přímé porovnání stejné hry na obou platformách může dopadnout někdy překvapivě - ten odlesk na posledním příkladu Ground Zeroes byl v Playstation 3 humpolácky namapovaný na celou zemi, jako plošný efekt, který maskuje hrubou texturu. Kdežto Playstation 4 má již krásně ostrou texturu hlíny, takže nic maskovat nepotřebuje. A mně zrovna odlesk mokrého bláta přijde víc cool, to je celé.
Pořád ale platí obecná poučka, že správná optimalizace je o tom, aby hráč na obrazovce s pevně daným rozlišením nerozeznal, že se některé objekty vykreslují ve skutečnosti jednodušeji - a tento ušetřený výkon se narve do objektů, které poutají hráčovu pozornost. Jak toho konkrétně dosáhnete je fuk, cest je mnoho.
Má to ještě jeden vtipný element. Obrázky Skyrimu výše jste si museli otevřít do nového okna a přepínat se mezi nimi, abyste jasně spatřili rozdíly (pokud nemáte ostříží zrak), ale v reálu se nedíváte zblízka na svůj monitor, ale sedíte nějaký ten metr od LCD / plasmové televize, které mají tendenci s obrazem něco udělat - například napasovat na rozlišení 1366x768 nebo podobná zvěrstva. V ten okamžik se rozhodně nedíváte na výstup z videobufferu, který byl ve screenshotech zachycen výše. Výsledný obraz je ve skutečnosti dost jiný proti tomu, co hardware počítá. To je mimochodem důvod, proč jsem porovnávací videa FPS her na Amize (případně si přečtěte i článek) nesnímal v emulátoru - šlo mi o to, co hráč doopravdy vnímá, nikoliv co stroj počítá.
Můžeme se ale stát svědky jiného problému. Podle všeho se hlavním argumentem může stát samotný odkaz na realismus. Totiž lze namítnout, že bláto v Ground Zeroes se v takto matném měsíčním svitu nebude lesknout zrovna takto a proto je obraz na Playstation 4 lepší, protože je realistický, protože takhle to má chodit doopravdy. Jenže - je tohleto opravdu ten případ?
V dějinách vývoje herní grafiky sledujeme pokusy o co nejvěrnější realismus. Každá generace má pár titulů, které se otevřeně snaží o tento čin - udělat hru k nerozeznání od skutečnosti. Hromady akcelerovaných funkcí v grafických čipech se k tomu snaží nahrávat. No ale pořád je ten cíl někde v neurčité vzdálenosti. Některé hry lze s přihmouřenýma očima označit za fotorealistické - například Gran Turismo 5, Crysis a podobně. Avšak tady nastává kontroverze. Je "realistické" automaticky "lepší"? Pro jisté typy her jistě ano, ale obecné pravidlo to rozhodně není.
Nezapomínejme, že naše smysly jsou denně masírovány nejen hrami, ale také filmy, televizí, internetem, tudíž pokud sledujeme nějakou virtuální scenerii, tak nám může přes svůj objektivní realismus přijít paradoxně méně autentická, jelikož bychom čekali něco pěkně vyšperkovaného. Dejte si to dohromady i se snímkovací frekvencí - vzpomeňte si na poprask, který způsobil Hobbit v kinech, když byl promítán ve dvojnásobném snímkování 48fps oproti běžným filmům - obecně se díváme na filmy s pouhými 24fps! Případně nemáme v živé paměti srovnání s reálným pohledem na tutéž věc a tak si náš mozek jenom představuje, jak by čekal, že by to mohlo vypadat v reálu - a konfrontace s touto vizí často narazí. A funguje to i opačně - reálné záběry označíme za podvrh, protože nám to hlava prostě nebere. Může jít o slavné barevné stromy anebo o přistání na Měsíci. Neboli - je tady i zásadní rozdíl v tom, co vnímáme očima (či lépe řečeno mozkem) a co nám předkládá kamera.
Jasnej fake! |
A tohle snad ani nebudu komentovat, to Kubrick odvedl příšernou práci! |
Co je ale ještě důležitější je konstatování, že "realistické" neznamená vždy "lepší". Podle vašeho osobního vkusu jistě sami rozeznáte, kdy se vám grafika líbí a kdy ne, avšak odvolání na realismus může být v daný okamžik ošemetné. Přece jste si nekoupili výkonný stroj na to, aby jste hráli hnusně vypadající hry. Co na tom, že dané scény by byly hnusné i v realitě, vy se chcete přece dívat na hezkou grafiku, ne?
Tím jsem se dostal k meritu věci.
Rozdíl mezi ručně dělanou a realisticky renderovanou grafikou, je asi jako rozdíl mezi analogovou a digitální fotografií. To první je prostě obraz, kdežto to druhé je "pouhé" zachycení reality. Jako naprostý laik v oboru fotografie se nebudu pouštět do detailního rozboru - pěvně věřím, že umělec si poradí i s digitálním fotoaparátem, ale to hlavní sdělení je myslím jasné. Fotografie vzniklá chemickou cestou, kdy si ji člověk navíc i sám vyvolá - nároky na jeho dovednost pro pouhé pořízení jsou dost vysoké, musí fotografování opravdu hodně rozumět, aby obrázky vypadaly tak, jak fotograf chce a potřebuje. Vkládá do toho svou snahu a energii, kterou pak obraz obsahuje. Když si ale fotografování přespříliš usnadníme - ať už různými kompaktními automaty nebo rovnou digitální fotkou - tak sice děláme fotky, které se docela shodují s tím, co jsme viděli na vlastní oči - ale jde méně a méně o obrazy v uměleckém smyslu slova, protože vklad energie autora je nesrovnatelně menší. Digitál je dobrý na to, abychom "cvakali obrázky", hodili je na Instagram a pak na ně zapoměli.
(Mimochodem - něco podobného muselo trápit malíře, když přišla na scénu technologie fotografie...).
Jestli je to dobře nebo špatně - to nelze jednoznačně řici. Samotná technologie jen slouží svému účelu. Pro dokumentární fotografii zvolím spíše digitál, pro umělecký záběr zmuchlaného hadru sáhnu po Flexaretě. Opravdu jenom záleží na tom, co chcete a jak toho využijete ku prospěchu věci.
Počítačová herní grafika se v praxi pohybuje mezi těmito dvěma stavy. Jsou hry, které mají za úkol poskytnout hyper realistický vzhled, ale drtivá většina her si více či méně pomáhá uměleckou zkratkou, aby vizuál hry využili efektivně, k umocnění svého sdělení.
Čím větší kontrolu nad výsledným obrazem máte, tím více úsilí musíte to tvorby obrazu musíte vložit, abyste dosáhli svého. Naštěstí je dneska jen velmi málo vývojařů, kteří berou vysoký výkon a modulární enginy jako záruku dobré grafiky. Většina z nich přistupuje k herní grafice s určitou vizí, kterou naplňují, bez ohledu na realismus.
Hry, které se (příliš) snaží o realismus, budou chtě nechtě srovnávány s realitou a většina hráčů tím pádem neodpustí (příliš) viditelné prohřešky. Ať už jde o nezvládnutou fyziku, animace a opakující se textury. Sám jsem bytostně přesvědčen, že než budeme mít dost výkonu na pořádné voxelové hrátky, můžeme na hyper realismus zapomenout (i když někteří se nás snaží přesvědčit, že to už v podstatě jde). Neboli "opravdový realismus" může být sice konečné řešení, ale potrvá ještě mnoho let, než se stane skutečně masově použitelným.
Avšak položme si otázku - jaký je účel herní grafiky?
Když to trochu zjednoduším, tak v zásadě jde o to, aby hráč získal pocit, že "je ve hře", že se stal součástí prostředí, do kterého je zasazená hra. Kličový termín je "získal pocit", jde o evokaci, o vyvolání představy o světě hry. Tedy - nikoliv nezbytně musí jít o realistický dojem! Úroveň oné evokace není odvislá jen od dostupného výkonu, ale především od designu hry. Evokovat rozlehlý vesmír lze i pomocí dvou barev ve hře Elite - jde o typickou ukázku nadčasového designu, který funguje stejně dobře v roce 2014, jako v roce 1984. Pokud hra ve vás (nejen) svou grafikou vzbudí pocit, že "jste tam", tak splnila svůj účel. O nic jiného v podstatě nejde.
Elite na osmibitu BBC Micro. Je to planeta v širém vesmíru? Ano, je. Pokud se necháte přesvědčit. |
Čím jednodušší výrazové prostředky hra používá, tím více je atakována naše fantazie, abychom si na základě vlastních zkušeností vytvořili v hlavě vlastní vizi světa, vlastní pohlcení - které je logicky nejbližší našemu cítění a vnímání, protože je to naše fantazie. Obrazovka nás jenom naláká do světa hry, přičemž náš mozek dokreslí to, na co technologie nestačí. Člověk si tedy musí logicky říci, že když je k dispozici dostatečná technologie, můžeme se přesunout od "pouhé evokace" k reálnému vytvoření světa. Jenže - je pohled na reálně vypadající obraz zárukou subjektivně vnímané kvality?
Čím více detailů a objektů vykreslíte na scéně, tím méně zaměstnáváte hráčův mozek, méně namáháte jeho vlastní fantazii. Zatímco dříve si musel náš mozek domyslet stromy v místech, kde obrazovka evokovala les svou jedinou zelenou barvou, dneska tam prostě vidíme nejen stromy, ale i jejich kůru, listí, kořeny, šišky a nebo i veverky. Vize autora takové hry (respektive její grafiky) evidentně nebyla v tom, abychom si do hry vsadili "svůj vlastní ideál lesa", ale sledujeme takřka dokonalé ztvárnění jeho vlastního ideálu. Autor se nám vlastně více vnucuje, "myslí za nás", abychom se nemuseli trápit s vlastní fantazií a dělá tak hru mnohem přístupnější pro širší masy. Místo zástupných znaků a symbolů dává hráčům jasné a jednoznačné sdělení.
Mohl bych zde zmínit například příběh malíře Vincenta Van Gogha, který ve své době nebyl moc komerčně úspěšný, neboť bohatí kupci byli ochotni platit pouze za realisticky vypadající obrazy, kdežto Van Gogh vždy maloval mazanice, na kterých nebylo poznat, zda to žluté dole je žito nebo proud moči - avšak pokud se na jeho obrazy budete dívat pozorně, dojde vám, že Van Gogh zachycoval esenci letního pole. Co na tom, že nejde o přesnou interpretaci vzhledu krajiny, která mu stála modelem. Podstatné je, že libovolný divák si díky vkladu vlastní zkušenosti promítne do obrazu vlastní vzpomínku na letní pole a obraz na něj působí najednou mnohem lépe, než je ve skutečnosti technicky vzato namalovaný.
Na tom celém lze krásně ilustrovat, proč mnoho starších her pohlcuje svou technologicky zastaralou grafikou mnohem více, než nejnovější blockbustery. Ne každý má totiž schopnost zapojit svou fantazii a vidět v pixelartu to, co v něm autoři chtěli vyvolat. Ale když tuto schopnost máte, tak vás zastaralost použité technologie nebrzdí, naopak vás do hry ponoří mnohem více, než technologicky vyspělejší hra - na té budete spíše nacházet chyby a nedostatky proti vzoru v realitě.
Čím méně technologických vychytávek používáte, tím pečlivěji a promyšleněji musíte se svou omezenou paletou zacházet, abyste vzbudili žádaný dojem. A proto se impresionistům říká impresionisté. Postupnou redukcí počtu použitých prvků ze sebe museli dostat maximum, aby zachytili esenci věci. Umělci, kteří dokážou evokovat svět z několika málo barev a polygonů, totiž do procesu technologie zapojují ten nejdokonalejší počítač v existenci vesmíru - lidský mozek. Vědí, že se hráč pohltí vlastní vizí, která mu byla na obrazovce jenom naznačena.
Pokud si hra z technologického nedostatku udělá přednost, vnímáte ji upřímněji a spíše ji přijmete, než hru, která se neúspěšně snaží evokovat realismus. |
Bylo by absolutně nespravedlivé odsoudit všechny tvůrce 3D enginů a her od roku 2000, že se nesnažili jít za vyšším cílem evokace a místo toho jen tvrdošíjně vylepšovali shadery na generování odlesků kovových povrchů pod vodou. Jak perfektně vystihl článek A comprehensive history of low-poly art Tima Schneidera z magazínu Killscreen (který mne vlastně donutil sepsat tento článek, který jsem už v hlavě nesl delší dobu, ale chybělo mi k tomu něco, co mi dal právě odkazovaný článek): “Low-poly” could not exist as a category until high-poly became an option. But today, it is.
Neboli - abyste mohli svobodně používat méně výrazových prostředků, musíte jich mít k dispozici nejprve hodně - a teprve pak vybírat ty vhodné, redukovat prostředky až do té míry, kdy si věříte, že s nimi dokážete vyjádřit přesně to, co chcete.
Pokud dneska někdo udělá hru, kterou by utáhl i Mega Drive, nejde o lenost nebo neschopnost. Jde o umělecký záměr. Tatáž hra by v roce 1990 ale mohla klidně reprezentovat technologickou špičku své doby - nic lepšího tehdy prostě nebylo možné udělat. Tehdy to nebyla otázka volby, ale jediná možná cesta, existencionální nutnost. V roce 1995 by to již svobodná volba byla, ale byli byste zadupáni do země pro zastaralost, protože se masově přecházelo na 3D grafiku - což byl tehdejší vrchol. Jenže dneska je velmi snadné vyplodit 3D grafiku. To ale není záruka, že divák bude vtažen do díla, že bude okouzlen. Aby grafik mohl hráče okouzlit, musí nad grafikou přemýšlet a v ten okamžik má možnost volby sáhnout po redukci prvků na scéně, udělat 2D spritovou nebo 3D low-poly scénu a jenom evokovat svět hry. Kdybychom k redukci sáhli před rokem 1990, na obrazovce by nezbylo nic. Tehdy byla grafika redukovaná svou technologií.
Okami - jeden z úspěšných pokusů, jak převést malířskou stylizaci do počítačové hry. Bez patřičného výkonu by to nešlo. |
Tohle se ale samozřejmě netýká jen 2D her, ale i těch 3D. Vzpomeňme si na fantasticky vypadající hry jako Dishonored, Bioshock Infinite, Last of Us - autorům hry bylo naprosto jasné, že pokus o hyper realismus by hře spíše uškodil, protože zas tak dokonalou technologii, aby nenarušovala divákovu pozornost, nemají. Takže se aplikují filtry, určí se celkový styl textur a nasvícení scén - a tím evokují v hráči dojem svého svět. Ve srovnání s hrami jako třeba Battlefield 4 je to jasně vidět - vojenský simulátor se snaží evokovat realitu, ale v praxi je dojem z obrazu rozpačitý, protože není realistický - přes veškerou upřímnou snahu není tím, čím se autoři snaží, aby byl.
Avšak to jsme nyní referovali ke hrám, které jsou drahé a využívají technologie do mrtě - jenom ne nutně k realistickému zobrazení. Máme tady ale mnoho příkladů, zejména z indie scény, kdy hry vypadají velice dobře, ale přitom nemají "life-like" grafiku - co třeba Journey? Tam je to perfektně vidět, jak inteligentně využité zdroje vyčarují na obrazovce úžas, namísto běžného herního porna ( = více je lépe).
Neměli bychom ale zapomínat na mou oblíbenou datovou ekologii, že ano. Pokud hry evokující svůj záměr nepotřebují tolik výkonu, znamená to, že je výkon k ničemu a nepotřebujeme ho? Ale kdeže! Pořád platí to samé - s ušetřeným výkonem můžeme naložit jakkoliv. Například by bylo skvělé, kdybychom se dočkali většího využívání procedurálně generovaného světa, jako třeba naznačuje hra No Man's Sky - od té si slibuji, že bude nejen ekologická, ale i umělecká - nejen tedy graficky, ale svým celkovým pojetím. Můj kamarád Drokk docela dobře poznamenal, že hra, na které pracuje tisíc a jeden člověk, kteří spolu táhnou za jeden provaz a výsledkem je dílo jako třeba Assassin's Creed: Black Flag, jsou natolik komplexní, že se stávají samy o sobě uměleckým dílem (umění managementu). Už jenom proto, že byly dokončeny a jsou při své komplexnosti hratelné. No Man's Sky by v tomto smysl mohl snadno předběnout naše nejšílenější představy - Frontier dotažený o několik úrovní dál. A na to je potřeba sakra hodně výkonu, ne že ne!
Honba za realismem a co nejvyšším výkonem, která začala naplno právě někdy v polovině devadesátých let, skončila někdy v roce 2010, kdy se masové popularity dočkaly hry jako třeba Braid, Minecraft nebo třeba Thomas was Alone - tedy hry, které až trestuhodně "nejsou next-gen". Jistě není náhoda, že právě ono odpoutání se od odpovědnosti za jednotlivé pixely v devadesátých let, s nástupem filtrování textur, pomohlo herní grafice k přerodu do formy vyspělého média, které umožňuje tvůrcům cokoli. Včetně toho, že jejich low-poly a spritové hry nebudou označovány posměšně za znouzectnost nebo ošklivě nazývány "retro" (schválně si najděte recenze 2D her z období 3D akcelerační horečky, vydávání takových her se považovalo za hřích a výsměch spotřebiteli). Autoři her dneska mohou evokovat světy pomocí pár barev anebo se rozhodnout jít cestou realismu - a oba postupy mohou být kvitovány s povděkem.
Úplným extrémem je projekt Infinite Detail od australské společnosti Euclidean. I když použitá technologie skutečně vypadá úžasně a o realismu není třeba diskutovat, domnívám se, že v reálné hře takové zobrazení pohoří prostě kvůli tomu, že bude vypadat stejně, jako svět kolem nás. Jedna z možností, jak toto omezení obejít, by byla možnost fyzicky vystavět herní úrovně a ty pak naskenovat do počítače. Jenže tím se poněkud smaže výhoda, že nepotřebujete v týmu tisíc lidí na grafiku - budete potřebovat tisíc lidí na stavbu. Uvidíme, kam nás tato technologie dostane. Možná, že ve spojení s Oculus Rift by mohlo jít o skutečně uvěřitelnou virtuální realitu, schopnou zreplikovat pocit, že jsme si sundali virtuální helmu a tím dosáhnout až nebezpečené dokonalosti ála Matrix (viz článek na toto téma v osmém čísle magazínu Killscreen).
Po patnácti letech herního temna se mi zdá, že se blýská na lepší časy, kdy budeme skutečně sledovat tvůrce, kteří mají volbu si vybrat nejvhodnější ztvárnění a platformu právě pro svou vlastní hru. A ano, bylo potřeba, aby vzniklo miliony podřadných her pro mobilní telefony, abychom kupovali nové konzole, nové grafické karty a abychom hráli podřadné HD porty z platforem minulé generace. Protože to všechno bylo potřeba prožít pro to, aby se z her stalo vyspělé kulturní médium. Potřebovali jsme si projít fází nadšení z blikajících pixelů, masové industrializace a sociální integrace. Protože nyní už jde nahlas řící, že více není nutně vždy více, aniž byste za to byli kamenováni, jako v devadesátých letech.
Od dob Atari 2600 pozorujeme snahu her vypadat opravdově. Když jsme se k tomu v současnosti přiblížili, dostali jsme nečekaný prostor pro umělecké vyjádření. Kdy i umělec se svázanýma rukama má prostor a možnost pro vyjádření. A to je skvělé.
P.S.: Tento článek v sobě jistě obsahuje celou řadu technických chyb. Pevně doufám, že nejde o chyby, které popírají odvozená tvrzení. Budu ale velice rád, pokud mne na chyby upozorníte, díky.
Žádné komentáře:
Okomentovat