16. 9. 2012

Rock solid 120 fps


Kufi boy a nielen on ma tu furt otravujú s 1080p/60fps PS4 hrami. Zbožné prianie, ale niečo tu pre vás preda len mám. Najprv však prečo je 60fps, alebo 1080p, alebo oboje naraz tak strašne tažko dosiahnuteľné. V 1080p rozlíšení máte na jeden frame cca 17 ms /1000 deleno 60 = 16.6666/. A to je veľmi málo času. Prečo ? Ako som už raz povedal - GPU má dve hlavné časti : výpočetnú a vykresľovaciu. Na PS4 chcete všetci super duper grafické efekty. V preklade to znamená, že výpočetná /ALU/ časť ráta ako besná farbu pixelu /desiatky tisícov výpočtov na jeden pixel/ a čas beží. Nejako tých 60 fps dosiahnete ale nemáte dosť vykresľovacieho výkonu pre vyššie rozlíšenie, lebo grafika má namiesto 32 ROPs iba 16 a namiesto 320 bitovej iba 256 bit zbernicu.

Už raz sme všakpodobný problém na PS3ke riešili. Klasický forward rendering /FR/ versus deferred rendering /DR/. Zásadným rozdielom medzi nimi je aj to, že pri DR máte oddelené spracovanie geometrie od svetiel. Pri FR sa pri každom novom svetle musí scéna "ztransformovať" nanovo. Úplne zbytočne. Killzone 3 má v DR režime 380 svetiel na scéte, vo FR by neutiahla ani 8 !! Ak teda chceme na PS4 tých 60fps a aspoň half 1080p rozlíšenie chce sa to pozrieť na problém z iného uhla.

Každý frame, ktorý PS4 vypočíta je už o ten nasledujúci zabudnutá práca a začína sa úplne odznova. Kopa redundantných výpočtov a drancovanie systému. A to nám pripomína to porovnanie FR a DR renderovania. Riešenie tohto problému sa našlo ale je programatorsky dosť zapeklité a komplikované /pracuje sa na tom cca od roku 1997/. Volá sa BIR /Bidirectional Iterative Reprojection/, viď aj najnovšie slajdy z čerstvej prezentačky od Split Second dev tímu.

Najprv to čo vás zaujíma najviac. Benefitom je nárast rýchlosti spracovania frejmu o 300 až 400% na bežnom "PC" stroji. V preklade - 30 fps hra beži na 90 až 120 fps !! Malým mínusom je nárast latencie o cca 1-2 frejmy, pretože tento alogoritmus využíva niektoré informácie z už raz vypočítaného frejmu /alebo z dvoch/. Na hypervýkonnych systémoch ako PS4 s, predpokladáme, vyladenou custom grafickou kartou môže dokonca BIR dosiahnúť zrýchlenie o 500+%. Na PS3ke môžte okamžite získať 100% nárast rýchlosti /spracovanie jedneho frejmu je plus 1 ms ku celkovému budgetu/ a som zvedavý na prvú hru čo to použije. Táto finta má ešte niekoľko ďalších háčikov, ale na tom sa ďalej pracuje a aj dnes masovo používaný deferred rendering mal svoje muchy, ktoré bolo treba prekonať.

30 versus 120 fps - paradoxne aj na statickom obrázku mal nový algoritmus kopu artefaktov, už ich nemá

Týmto článkov som viac ako na báječných 60-120fps chcel upozorniť na úplne nový a neprebádaný svet programovania, ktorý na nás na nových GPU čaká. Návrat ku takmer plne ovládanému softvérového renderingu kde je možné doslova čokoľvek. V tejto generácii sme uviedli do bežnej praxe deferred rendering, softvérový rendering /CELL/, plavajúce rozlíšenie per frame /Wipeout a spol/, SVO /sparse voxel octree/ riešenie hierarchie scény, návrat tiled based renderingu a množstvo ďalších techník vďaka ktorým 6-7 ročné konzoly úspešne odolávajú zubu času. S PS4kou zažijete raz, dvakrát, trikrát toľko prekvapení.