5 Dec 2020

SIGGRAPH 2020

 "VRS softvérovo v hre Call of Duty: Modern Warfare." COD je dnes epicentrum FPS hrania a značka zarába obrovské miliardy chechtákov, čo zároveň znamená, že nemajú problém zaplatiť aj tých najšikovnejších ľudí v biznise. VRS je skratka pre variable rate shading.  Na PS5 a XSX to budete počuť čoskoro denne. Pri rýchlo rastúcom rozlíšení obrazu a počte operácií na pixel /ak pri PS2 to bolo do 10, pri PS3 do 100 a pri PS4-PS5 nad 1000 compute-raster kalkulacií na obrazový bod/ rastie tlak na výkon GPU s treťou mocninou. Špekuluje sa preto ako po analýze frejmu vybrať body, malé plochy, kde sa to nebude rátať otrocky s per-pixel presnosťou ale skôr per 2x1 plôška alebo 2x2 alebo 4x1 dokonca 4x4. Kvantizácia ako napríklad pri JPEG kompresii. Ak to urobíte šikovne, tak 95% hráčov nespozoruje žiadnu degradáciu v kvalite vizuálu a herný vývojár získa v priemere 10-30% výkonu k dobru. Keď už na nič iné tak sa to hodí na vyhladenie kolísavého framerejtu.

 
VRS - modrá je dobrá, iné farby rátajú shader efekty s nižšou presnosťou

Nvidia ako prvá zaviedla HW podporu pre túto fičúru na svojich GPU a progresívne ju vylepšuje /Tier 1, 2/. AMD sa pridalo ako druhé s RDNA2 architektúrou. Obe konzoly XSX aj PS5 teda toto vylepšenie podporujú. Ešte pred tým však hra COD: Modern Warfare prišlo s čiste softvérovým riešením, ktoré beží na akomkoľvek GPU a teda aj na staršej PS4ke. Softvérové VRS im určite pomohlo k tomu aby multiplayer bežal na 60fps hladšie. Odkaz vás zavedie na až príliš technický pokec. Musíte mi teda veriť, že ich kód je veľmi sofistikovaný a o dosť flexibilnejší ako aktuálne HW riešenie na Nv/AMD, to je však ON/OFF skryté v API GPU, takže sa o nič starať nemusíte. COD dev tím naznačuje, že s VRS ešte majú veľké plány a bude sa mocne vylepšovať. Zároveň sa odkazujú na nové možnosti na PS5 a XSX a to definovanie vlastnej rasterizačnej cesty úplne mimo HW defaultnej rasterizácie. Rozhodne majú pracovný plán nabitý na roky dopredu a ani celá generácia im nebude stačiť, aby si potenciál HW next gen konzol poriadne obchytali - 6 či 7 rokov ledva stačí na dvojicu 3 ročných vedecko-výskumných mini herných cyklov.

"Rendering pekla v DOOM Eternal." Hra beži 60 fps na všetkých hlavných konzolách a dosiahne hravo aj 1000 fps ak máte ten najlepší ninja PC HW. Herný kód je extrémne optimalizovaný k dizajnu/účelu tejto hry. Je postavený tak, aby išiel presne po ruke toho čo HW vyhovuje najlepšie /takže zbohom masovo používaný deferred rendering a obrovský G-buffer/ a všade kde je HW pomalý, tak sa to nahrádza super rýchlou softvérovou verziou. Veľmi zreteľne v odkaze opäť vidím sťažnosť na príliš pomalú a neflexibilnú, klasickú cestu HW rasterizácie. Podobne ako pri COD sa už tešia na blízku budúcnosť a schopnosť RDNA2 architektúry si definovať vlastný rasterizačný model. ID tech 7 engine a jej kóderi skutočne rozumejú tomu ako herná grafika "oldschool FPS shootera" funguje a to na intímnej úrovni.

"Raytracing, path tracing a tieto veci." Vývojár z Unity veľmi obšírne a pre laika dokonale nezrozumiteľne reční o náhrade rasterizácie raytracingom. Raytracing je neodvratná budúcnosť. Ja vám poviem čo si máte v hrách na PS5 v ďalších rokov všímať. Raytracing na PS5 HW akceleruje zopár operácií spojených s manažmentom BVH /Bounding volume hierarchy/. Čo je vlastne index pole objektov na scéne, ktoré RT HW používa za zrýchlenie samotnej operácie. Samotné detaily vás nemusia zaujímať. RT sa vyvíja tryskom a tie informácie sa každých 12 mesiacov zásadne zmenia. V hre si všímajte následovné. BVH môže povedať, ktoré objekty vlastne zrkadlová plocha má odrážať /nemusia byť všetky/, do akej vzdialenosti /môže tam byť rýchly orez po 10-100-1000 metroch/ o akej kvalite /low poly modele/. Či sa majú v odraze zobrazovať tiene, ktoré vidíte na "vašej" strane. Či sa maju v odraze zobrazovať iné odrazy na vašej strane /stojíte v mláke, čo odráža nebo a mraky ale vidíte tieto odrazy aj v odraze v skle ?/. Rekurzívne odrazy /zrkadlo postavené oproti inému zrkadlu/ a do akej úrovne /1-16?/. Časom sami zistíte, ake finty vývojár používa, aby si vo výkonnostnej núdzi pomohol.

Raytracing /RT/ samozrejme nie je len o odrazoch na každej lesklej ploche. Generuje aj tiene. Priame pod slnkom aj nepriame pod stoličkov v izbe, kde preniká iba odrazené svetlo. RT vie sledovať /priamo alebo rekurziou/ lúč a plochy priamo osvetľovať namiesto klasickej rasterizácie, ktorá to iba umelecky a prácne odhaduje. RT zvládne kaustiku /obálka svetelných lúčov odrazených alebo zalomených nejakou zakrivenou plochou alebo predmetom/ - typicky tie blaznivé hry svetla vodnej hladiny s odrazom na steny dokola alebo pod vodnú hladinu. RT zvládne aj DOF efekt /depth of field/ a mnoho, mnoho ďalšieho. Každá položka navyše však dvíha nároky na výpočet, pamäť a zbernice o celý rád, takže celý servis nedostanete skôr ako v ďalšej generácií konzol.

 
COD rasterizuje

"COD: Moder Warfare a rasterizačná klasika." Vraciame sa naspäť ku COD. Pretože je ideálna RT ešte dosť vzdialená, tak musíte využiť na maximum dostupné možnosti. Všetko vyššie spomenuté pri RT sa dá napodobniť pomocou rasterizácie. Pre potreby hier skutočne doslova každá jedna vecička. Problémom je, že spotreba systémových prostriedkov je proste enormná a prácnosť nekonečná. Ako som už raz povedal pri modelovaní v 3Ds Max, tak tam nemusím nutne použiť kód na výpočet radiosity /nasvietenie/ a čakať za programom 10 hodín na prašivom pentiu 100 v roku 1997 ale napodobním výsledok ručne rozmiestnením kopy bodových svetiel, aby výsledok tej radiosite zodpovedal a mám to spočítane v cuku letku. Problém je, že teraz mám na scéne 200-2000 svetiel navyše /čo iste zloží realtime herný engine na kolená/ a ja strácam čas s ručnou prácou, ktorá mohla byť použitá inde. RT je preto budúcnosť a dnešné lopotovanie ako v tomto COD odkaze už čoskoro minulosť.

TloU2 rasterizuje tiež a v žiadnom prípade nechce zaostať pozadu

"The Last of US 2." Do bodky to isté ako pri COD prednáške vyššie. Ako napodobniť vizuálne fenomény, ktorá dáva raytracing /path tracing, radiosita/ na autopilota - nesmierne namáhavou prácou kodérov a grafikov. Je to doslova profilovanie grafiky špeciálne pre každú jednu situáciu zvlášť. Už na PS4ke je to na hranici ekonomickej únosnosti. Na PS5 to už bude sakra drahé a iba pre zopár vyvolených s tučnou peňaženkou. ND píše ako oklamať vodu, mokré povrchy, falošné odrazy, deformáciu povrchu. Používajú dosť často "uber shader" techniku, ktorá sa najjednoduchšie vysvetlí ako veľký shader kód s vetvením /vetvenie = časová strata/, ktorý sa meni dynamicky podľa grafického profilu, ktorý daná situácia /materiál, svetlo/ vyžaduje. To len ukazuje, ako je klasická ručná rasterizácia náročná na manuálne riešenie každého "stavu" individuálne. Mimochodom DOOM: Eternal sa uber shader technike kompletne vyhýba, nie je veľmi priateľská ku hrám na vysokom framerate pri pomalšom HW.