2. 10. 2009

LBP postmortem - technologicky

Ani riadok kódu, žiadne nástroje, alebo herná predloha. Nová, neznáma a záhadná hárdverová platforma. V strede ich snahy je UGC /uživateľom generovaný obsah/, ako determinujúca hnacia sila. To je LBP a PS3 na začiatku roku 2006. LBP je z pohľadu programátora definované aj ako totálne nekontrolovateľné dynamické prostredie, kde všetky doterajšie grafické postupy, dopredu upečené tiene, svetla, odrazy, efekty, statická geometria museli ísť bokom. Bolo nutné najsť generalizované riešenie pre rendering a fyziku, ktoré sami zametú pod koberec možné poruchy a artefakty počas vášho tvorivého besnenia. Stačí si pozrieť túto prednášku /HALO 3 engine, Bungie/, kde popisujú muky pekelné pri riešení problému korektného a rýchleho zobrazenia obyčajných tieňov vyplývajúcich z jednoduchosti dnešného HW. V LBP toho bolo desať krát toľko, čo odpovedá aj na otázku prečo z vizuálneho a fyzikálneho hľadiska by táto hra nikdy v identickej kvalite pre Wii vzniknúť nemohla. Aj keď ide o zdanlivo jednoduchú 2.5 záležitosť.

Nesnažte sa tie nasledujúce riadky pochopiť, nechajte to len tak plynúť. Aj tú poslednú banalitu by som musel vysvetľovať jednu hodinu. Takže. Nasvietenie je kompletne per-pixel pre všetky objekty a povrchy, žiadne vertex optimalizácie. Okrem postavičky je zvyšných 95% geometrie procedurálne generovaných za behu. Teselácia /zjemnenie plochy pridaním ďalších polygónov/, a vertex shading /štandardne to robí RSX/ kompletne a vo extrémne vysokej rýchlosti realizované pomocou SPE. Ako bonus aj plynulá a parametricky riadená deformácia povrchov, soft body fyzika, cloth fyzika /látka, zástavy, šaty/. Laicky povedané, každý centimeter, ktorého sa dotknete, môže patrične reagovať, ak to design levelu alebo okolnosti potebujú. Mimochom, podľa "špičkových" xcrap kodérov všetko veci údajne pomocou SPE nemožné. Inštruktážne LBP video, ak vám to pripomína tie "PhysX PC efekty" ste na správnej adrese. SPE riadená detekcia kolízií, kontaktná ambientná oklúzia /aby Sackboy vrhal pod seba pri behu, poskakovaní korektné tiene aj pri nepriamom nasvietení/, SSAO, sekundárne odrazy, božie lúče /tie paprsky prenikajúce pomedzi palmové listy na každom druhom obrázku z Crysis /.



Antialiasing, 2xMSAA. Interné rozlíšenie 2560x720 pixlov pre deferred nasvietenie, čím získali dve nezávislé Z sloty. Tie sa hodia pre vysokokvalitný objektový motion blur a depth of field. Ak však skúsite dať za sebou dva transparentné objekty zistíte, že tri je viac ako dva, a štyri viac ako tri. Tento problémik bol vyriešený až novým postupmi SPE DR renderingu /zabudované aj do Phyre engine/. Mimochodom takmer každý jeden efekt, alebo grafický postup v LBP má dnes už svoju ďaleko kvalitnejšiu a efektívnejšiu verziu. Kopa techník "ukradnutých" aj od GG a Insomniacu.



Voda, jedno z posledných vylepšení. Opäť z veľkej väčšiny na bedrách SPE. Rendering, deformácia, simulácia jej pohybu. Partikle vyšplachnutej tekutiny, kolízie bubliniek pod vodou. SPE. Predžutie refrakcie a kaustiky pre GPU /to je ten mihotavý lom svetla po prechode-odraze od vodnej hladiny/. Čo iné ako SPE, a šialene rýchlo - za 0.6ms. Čo sa poseriete to na xcrape rýchlejšie neurobíte. 2D simulácia fluidnej dynamiky pre dym, oheň, otrávený plyn, rozpustenie objektov. SPE. Dev tím si vyslovene pochvaľuje, že práve vďaka nim sa zbavili únavného laborovania, a snahy nájsť aspoň z polovice tak dobré riešenie pomocou DX9 pixel/vertex shaderov, alebo upotením dojením centrálneho CPU-PPE. Nepriamo z tohto deprimujúco technického článku vyplýva, že PSP verzia bude trochu "iná" hra. A ich ďalší projekt bude niečo ešte veľkolepejšie. Skok medzi flOw a flower /iný tím, iný engine - Phyre/vám dáva aspoň malú predstavu. Xcrap so svojim GPU centristickým renderingom a nedostatočným CPU výkonom je smrdutá minulosť. A stačí na to jedna 2.5D hra.