Co všechno obětovali vývojáři Halo 5 pro zcela stabilních 60 FPS… [video]
V souvislosti se světem konzolí se nejednou mluvilo o 30 FPS vs 60 FPS. Často padal argument, že 60 FPS je stejně jen marketing, neboť této hodnoty mnohé hry, které ji proklamují, v praxi dosáhnou jen sem-tam v nenáročných scénách. Halo 5: Guardians je ale jiná situace: Vývojáři přislíbili stabilních 60 FPS a to také dodrželi. Říká se ale, že každá mince má dvě strany a přesně to platí i v případě pevných šedesáti snímků za sekundu v případě Halo 5. Dočkáte se scén, které s ohledem na minimální hardwarové nároky vypadají až skvostně, ale stejně tak občas narazíte na kompromisy, při kterých budete kroutit hlavou a přemýšlet, zda to autoři mysleli vážně.
Framerate se drží zcela stabilně na 60 FPS po více než 99 % času - pokud byste náhodou zaznamenali propad, bude to maximálně na zlomek vteřiny na 59 FPS; vývojáři vzali přislib 60 FPS smrtelně vážně
Vezměte to pěkně popořádku. Protože se hardwarové nároky scénu od scény liší a výsledkem by bylo variabilní framerate, museli vývojáři přistoupit k celé řadě optimalizací a triků, aby bez ohledu na scénu byly nároky kladené na hardware srovnatelné a tím bylo dosaženo i stabilní snímkové frekvence. První z technologií, které jde tomuto cíli naproti, je variabilní rozlišení. Pokud v klidu procházíte rozlehlým prostorem, který si můžete prohlížet, je rozlišení vyšší, než když dojde na souboj a pro zachování plynulosti o stupeň rozlišení klesne. Nejen díky tomu je ale po celou kritickou chvíli obraz plynulý a stále na 60 FPS.
Druhé opatření a dá se říct daň, spočívá ve filtraci textur, která nedosahuje vysokých stupňů (odhadem AF 4×?). Na to navazují technologie, které lze shrnout pod zkratku LOD, tedy level of detail - čím blíže objektu jste, tím je detailnější, prokreslenější a naopak. Jde o celý soubor úprav detailů podle vzdálenosti, týká se jak geometrických detailů, tak alfa-textur pro vegetaci, stínů a osvětlení. Problém je v tom, že tyto změny až na výjimky nejsou plynulé: Pokud se budete přibližovat k objektu, při jednom kroku zkrátka nahradí jednoduchou budovu složitější budova z více polygonů, jednoduchou skálu skála z více polygonů ap. To může působit rušivě a domnívám se, že je to i zbytečné - v případě využití teselace totiž přechod z jednoho stavu na druhý může být plynulejší (ovšem s omezeným množstvím polygonů, jaké je použito pro jednodušší model, by výsledek nebyl plynulý zcela).
Bližší osoba stín má, vzdálenější ne - objeví se, pokud přistoupíte ještě o krok
Podobně jsou řešené stíny. Hra počítá předpočítané i dynamické a podle vzdálenosti a typu objektu nahrazuje jedny druhými. V některých situacích to není problém, ale v jiných je přechod rušivý. Paradoxně se najdou situace, ve kterých by působilo přirozeněji, pokud by objektu či postavě zůstal jednodušší stín bez ohledu na vzdálenost. Mapy pro multiplayer jsou ale v tomto ohledu propracovanější a tyto ostré přechody jsou v nich téměř eliminovány.
Dithering na kameni (patrné po rozkliknutí) pro přechod dvou úrovní detailů
Podobně rušivě může vypadat přechod mezi detaily na kamenech v textuře země. Můžete narazit na dvě zvláštně řešené situace. Aby přechod z textury z nižšího na vyšší rozlišení byl plynulý, používá se obecně ve hrách prolínání. Při velké vzdálenosti se používá textura s nižším rozlišení, při nízké vzdálenosti textura s vysokým rozlišení a pro střední vzdálenost jsou vykreslovány obě a prolnuty tak, že čím jste od objektu dále, tím vyšší převahu má textura s nižším rozlišením a naopak. V případě hry, jako je Halo 5, je to ale problém. Aby mohla být podle vzdálenosti méně detailní textura pozvolna prolnuta detailnější, musí být vykreslovány obě, což stojí výkon potřebný pro vykreslování obou. Jenže to si Halo 5 s ohledem na požadavek stabilního výkonu (FPS) nemůže dovolit. Používá proto buďto dithering, tedy že pro jeden pixel z vykresleného obrazu je použita textura o nižším rozlišení, pro druhý o vyšším (což vytváří dost nepěknou rastrovitou mřížku v obraze), nebo ponechává jednu texturu a po přiblížení přes ní vykreslí další, která přidává detaily. Jenže pro zachování výkonu nesmí být ta „další“ textura příliš náročná, a tak má v některých situacích paradoxně nižší rozlišení než základní textura a výsledný dojem je zvláštní.
Hardwarové nároky explozí jsou řešeny elegantně: alfa textury engine vykresluje v nižším rozlišení
Hra používá ale i daleko sofistikovanější metody pro snížení grafické zátěže, které nepůsobí rušivě. Zajímavě jsou řešené například exploze. Jde o kombinaci alfa textur, často s částicovými (particle) efekty. Asi většina hráčů ví, že právě při soubojích, které jsou plné explozí, klesá hodnota FPS nejčastěji. Vývojáři to vyřešili velmi elegantně: alfa textury explozí jsou renderovány v nižším rozlišení než výsledný obraz, takže jsou jejich nároky několikanásobně nižší. I když by se teoreticky mohlo zdát, že výsledek bude působit rušivě, je naopak díky plynulosti danou udržením 60 FPS překvapivě dobrý.
Jak se k plamenům přibližujete, stávají se čím dál průhlednějšími, až zmizí zcela (a tím i potřeba jejich vykreslení)
V souvislosti s některými alfa texturami (např. oheň) používá hra techniku, kterou bychom mohli označit za převrácený LOD. Hoří-li někde oheň a vy se k němu přibližujete, zabírá alfa textura s plameny čím dál větší část z vykreslovaného zorného pole a tudíž jsou nároky na hardware čím dál vyšší. Aby nepřesáhly určitou mez, dochází k tomu, že tato alfa textura při určitém stupni přiblížení začne mizet a pokud se postavíte přímo do ohně, kde by zakrývala celé zorné pole, zmizí zcela (resp. neuvidíte ji, nebude vykreslovaná).
Iluze matného železitého jemnozrnného pískovce se podařila skvěle
Výsledkem všeho, co zde bylo popsáno, je vizuálně velmi zajímavá hra. Na jednu stranu najdete skvěle vypadající scenérie, u kterých si říkáte, jak geniální metody tvůrci zvolili (s ohledem na minimální hardwarové nároky a výsledek), na druhou stranu budete přemýšlet nad soudností člověka, který schválil násilné přepínání textur ze statických na dynamické nebo dithering pro některé textury (skoro se chce věřit, že byl použitý omylem). Pokud má hra k dispozici výkon v klidných scénách, můžete se setkat s řadou velmi pokročilých grafických efektů, dobře vypadajících povrchů a prostředí.
Závěrem se můžete podívat, jak to vše vypadá v praxi. Mějte ale na paměti, že autor videa vybral ty největší „špeky“. Nejde o vzorek reprezentující průměrnou či typickou vizuální stránku, ale o mix toho, co jej nejvíc zaujalo:
DigitalFoundry (YouTube video)