7. 7. 2019

Universal soldier


Playstation 2 bola zastaralá mašina už na štarte a veľká otrava pre progišov. Dnes veľmi častý názor všeobecne po fórach, tak sa to pozrime bližšie. Grafické karty v roku nula dva, keď ešte ladničky neboli pripojené na internet, dokázali akurát tak capnúť jednu textúru na polygón, ktorého vertex dáta /trigonometria, matematika/ ste museli pracne počitať na CPU. Multi-textúrovanie ste dosiahli tak, že ste tomu polygónu naložili textúry dve a spojili to cez alpha blend operácie, inak vcelku performance problém. Alebo tri texúry. Štyri nie. Celé by to už padlo na hubu /fillrate, priepustnosť zberníc, výkon rasterizácie/. PS2 je dizajnová práve okolo týchto problémov.

Ide o extrémne výkonný multipass GPU rasterizér s enormnou priepustnosťou, kde sa len pozriete, a s presunutím trasformácií polygónov na dvojicu mimoriadne výkonných VU /vektor jednotky/. PS2 nepozná špecializovaný HW pixel/vertex shader, súčasť moderných GPU, v čase základného návrhu PS2 to bolo ešte vzdialená budúcnosť. Máme teda v rukách  v podstate super univerzálnu platformu, ktorej geometrická časť grafickej pipelajny predbehla vývoj o mnoho rokov. Základná pamäť / RMW read–modify–write/ je blesková, eDRAM nedokáže unaviť nikto, CPU scratchpad RAM s špeciálnym DMA prístupom uštve aj závodného chrta. Dosť kecov, ukážky.


Generovanie polygónov vynechaním CPU, emisia častícových efektov rovnakým spôsobom, geometry instancing /kópie meshu po obrazovke, v MS svete až od Direct 9.x/. To všetko "primitívna" PS2 zvládne a pritom ide o vyslovene high-end výbavu, ktorú napríklad SEGA Dreamcast nedostal a aj oveľa novší, ten prvý, Xbox musel často "oklamať" kreatívnom postupom. V ľavom videu je skôr teória, v pravom je Melman z Madagaskaru. Skočte rovno na deviatu minútu a nepretáčajte, je to paráda. Rovnaké finty využíva super hustá džungľa v Transformers: Armada /údajne 60fps, ak je to pravda potom ide technicky o najlepšiu hra pre PS2, heh/, Ikusagami a jeho 65 535 panduľákov naraz na ploche alebo Hitman: Blood Money /14:30 min/ s ulicou , kde pomedzi zástupy ľudí na zem ani vlas nespadne. Hnusná kvalita videa, sorry.



Polygóny, partikle. Jednoduché. Čo však per-pixel manipulácia s textúrou ? Bump mapping, normálové mapovanie /alias DOT3 mapping/. Pekná vec, keď sa 2D placka tvári ako 3D bez toho, aby sme použili nejaké polygóny navyše. Normála je priamka kolmá na povrch, v našom prípade kolmá na každý pixel textúry a bez HW podpory, teda pixel shader v GPU je to ťažké, veĺmi ťažké. PS2 ako vidieť vo videu vyššie opäť raz zneužíva ohromný multipass výkon svojho GPU a Vektor jednotky a aj tento efekt zvládne napodobniť. Samozrejme v rozumnom rozsahu.

"This paper has also described how it is possible to integrate the normal mapping with ordinary shading of non-normal mapped objects without any additional effect on performance." - PS2 je šampión.

Trblietavá hladina vody, lom, pseudo reflexie, 3D vlnky /fourier transformácie vertexov, samozrejme to opäť beží na Vektor jednotke/. A takto môžme pokračovať donekonečna a ešte ďalej, kým vám šťava nedôjde. A tým nemyslím ten hardvér PS2ky ale ROI - Return on Investment. Rentabilita vloženej investície, ktorou je napríklad čas. PS2 zvládne prakticky čokoľvek ale musíte to z nej dolovať, rubať holými rukammi, potiť krv. Niekde som čítal, že na engine pre všetkými milovaný Black pre PS2 makal aj Sean Murray /Hello Games, "No Man's Sky"/. To len tak off-topic. Aha - našiel som to "Murray began working as a lead programmer for Criterion Games .. Burnout 3 and Black at Criterion as a Technical Lead."