22. 12. 2012

Finta G


Shadow maps /SM/ a Shadow volumes /SV/ sú dve základné techniky na vytvorenie peknučkého tieňa v našich hrách. A boli by ste prekvapený o ako komplikovanú tému to ide. Zatiaľ čo pri svetle /dokonca aj pri komplexnej globálnej iluminácii/ sa  progiši smejú, že to naprogramujú aj na hajzli za 5 minút a na internete tieto praktické ukážky aj skutočne nájdete. Tiene sú iné kafe a bez ohľadu  na dostupný výkon zatiaľ nemáme dostatočne dobré a hardvér nedecimujúce riešenie.

SM na to ide cestou vysokej prenosti, de fakto na per-pixel úrovni, potrápi však značne vaše CPU /vytvorenie presnej 3D geometria tieňa/ a aj GPU /stenciling/. Jednou z prvých hier, ktorá ho vo veľkom použila bola DOOM 3. SM metodika nie je zďaleka tak náročná, avšak je rádovo menej presná a výsledok závisí od veľkosti /rozumej presnosti/ vytvorenej shadow mapy /ide vlastne o 3D topografiu do ktorej sa tieň premieta/. Ak máte príliš veľkú scénu - exteriér a požadujete "ostrejšie" tiene s vyšším rozlíšením - nároky na rýchlosť vašej GPU /fillrate/ a uloženie shadow mapy /vram/ stúpajú exponenciálne.

Aj tak sa však dnes uprednostňuje SM prístup a existuje tu neuveriteľne množstvo riešení tejto rovnice. Námatkovo uvediem skratky niektorých z nich - SSM, PSSM, CSM, LiSPSM, TSM, PSM, CSSM, PCSS, SSSS, ASM, AVSM, CSSM, DAS, DPSM, DSM, FSM, LPSM, MDSM, RMSM, SDSM, SPPSM, SSSM. Paráda a to som vynechal asi dvadsať ďalších adeptov. Je možné povedať, že čo hra to vlastné custom riešenie a ja vám tu teraz niečo málo poviem ešte o jednom. Najnovšom. Veľmi vtipné a retro unikátne, najprv však video.

nás zaujíma hlavne časť od 0:20 min

Opíšte mi čo vidíte. Niečo ako 3D objekty rotujúce v 3D priestore /ten istý efekt v inom deme, a v ešte jednom/. Omyl vážení, žiadne 3D a to ani len omylom, je to bezvadná finta, ktorú použijeme pri akcelerácii generovania SM tieňov !! Teraz má máte asi za šialenca. Takže vám to trochu vysvetlím. Chce to však ešte jedno video bežiace na Gameboy handhelde s "nízkou presnosťou", takže tajomstvo bude rýchlo odhalené. Je to banálny skrolovací scanline raster 2D efekt, kde sa šikovnou manipuláciou BITMAPY v dvoch rozmeroch a zmenou palety dosahujú skvelé a rýchle "3D transformácie". A názorný pohľad priamo do kuchyne. Poznámka na okraj, doslova more herných programátorov začínalo práve kodovaním pre demoscénu. A veľa z nich tieto skúsenosti využíva aj v prospech hier /poľský dev tím Plastic Studios, SONY Phyre engine/.

Na scénu teda konečne prichádzajú bankrotujúci Insomniac Games aby nám ukázali ten svoj zázrak. Ich algoritmus vychádza z dnes pravdepodobne najčastejšie používaneho postupu - CSM /cascaded shadow maps/ avšak s jedným vylepšením. Akcelerácia niektorých operácii práve pomocou manipulácie a skrolovania bitmapy - 2D triky na konzole s CELL procesorom a RSX GPU výkonnejším asi 100 000 krát než to v Amige 500. Kompletná teória. Nás však bude zaujímať skôr praktická ukážka v podobe ich hry FUSE. Schválne sledujte tiene v extérieroch /vrhané konštrukciou budov, stromami atď./, či si všimnete niečo podozrivé. Myslel som smrteľne vážne, ak som povedal, že aspoň 90% vyčerpanie potenciáli PS3ky bude trvať aspoň 8 rokov. Pri PS4 so svinsky komplexných GPGPU /GCN v2.0 jadro/ to bude trvať aspoň raz toľko rokov. Nenechajte sa oklamať blbečkami, ktorí vám chcu predať novú PC grafiku každých 18 mesiacov.