Konzola Sega Saturn nedokáže voľne manipulovať koordinátmi textúr /UV mapovanie/ na objekte v reálnom čase v hardvéri jeho grafickej karty /PS1 alebo N64 to zvládne/. Existuje zopár fínt s extrémne limitovaným použitím, ale ako hovoria špičkoví kóderi, nestojí to za reč. Na PS1 a N64 je možné ľahko zrealizovať efektné efekty ako pseudo enviromentálne odrazy /viď odlesky na autách v Gran Turismo/. Na Saturne bohužiaľ nie, snáď trošku hej a to softvérovou cestou cez CPU, zožerie to však kopu pracovného času, takže sa to nedá prakticky použiť v živej hre, iba ako technická zaujímavosť niekde v menu hry ako názorne predvádza lesklé logo Sonic R vo videu v odkaze.
Ak niečo nie je možné, tak zákonite hľadáme spôsob ako to možným urobiť - ďalšie video. Ten rotujúci sonic tam beží na 50-60 fps podla TV normy s enviromentálnym mapovaním a v HW GPU, bez asistencie CPU. Tento zázrak sa dosiahol geniálne jednoduchým postupom. Saturn má HW podporu pre Gouraudovo tieňovanie /podobne ako PS1 a N64/. Ide o netextúrovací postup s podporou pre presné koordináty umiestenia farby na objekte a práve toto potrebujeme. Farebná paleta je v saturne umiestnené v špeciálnej oddelenej RAM /CRAM/. S paletami sa robia psie kusy už od čias amiga 500 /jeho copper procák je na to zvlášť navrhnutý/. Na saturne to urobíme rovnako. Použitím HW pre gouraud tieňovanie a jeho koordinátov pre farby tieto premapujeme na koordináty pre textúry. Samozrejme tu sú nejaké drakonické obmedzenia. Rozlíšenie farieb nie je dosť dobré pre rozlíšenie textúr a CRAM nie je dosť veľká pre objem potrebných textúr. Aj na to však existuje kopa postupov, ktorá vyplývajú z merita veci. Časť textúr /časť farebnej informácie textúry/, na ktoré nie je v novom systéme miesto urobíme po starom a HW umožňuje streaming nových /maličké množstvá/ dát do malej CRAM počas pohybu objektu. Konečne čas na zdrvujúcu praktickú "hernú" ukážku na saturne údajne nemožnej grafickej fičúry.
To čo tám vidíte je narýchlo upravený engine pre FPS hry na Sega Saturn s autom s enviro mapovaním, pričom tá lesklá odrazová textúrka je prebratá priamo z GT2ky pre PS1 !! Ako som povedal, tak nejde o natívnu HW podporu pre tento typ efektov ako pri PS1, kde je to úplná trivialita s nastavením UV mapovania textúr pre ľubovoľný vertex polygónu. Na saturne to robíte cez inú časť HW, ktorá na to nie je primárne určená a obmedzenia sú značné /toho času "textúra" do veľkosti 32x32 pixel, "textúrovacia" RAM do 4KB atakďalej/. Ide však o novú, doslova pár dňovú programovaciu techniku a čaká sa na ďalšiu optimalizáciu celého procesu a ďalšie praktické testy. Sledujem a doručím, aby ste sa tiež pokochali.
Nie je to po prvýkrát, čo bol herný HW použitý za iným účelom ako bolo pôvodne dizajnované. Pozná to ZX Spectrum s floating bus grafickými trikmi, Atari Falcon s audio DSP /ako geometrický procák pre Quake !!/ alebo staršie konzoly PS3-Xbox 360 s MSAA HW, ktorý zneužívali tiež na úplne iné účely. Pri PS5 to bude časom podobné a už teraz sa berie jeho RT /raytracing/ HW ako "všeobecný" modul pre akceleráciu výpočtov, matíc - pre čokoľvek čo sa nám v hre hodí. Dizajn HW PS5 ide ešte oveľa ďalej. Celé compute shader výpočetné GPU pole je zámerne urobené tak, aby ste sa mohli úplne vykašlať na definované HW limity fixnej grafickej pipelajny. Problémom ostáva časová a kapitálová pasca. Doslova nikto nemá toľko času a peňazí aby si v tejto slobode na zelenej lúke a z nuly pre rizikové AAA-AAAA hry urobil vlastný graficky/fyzikálny/AI engine mimo všetkých zažitých, archaických, zastaralých štandardov. Takého pravé next gen middleware by zožralo mnoho rokov vývoja a raz takú dlhú dobu aj ladenie nových, prevratných herných mechaník. Hovorím o desaťročnom projekte. Uzatváram to teda ako akademický problém, zbytočné mentálne cvičenie a vraciam sa pokorne ku hernej PS1-PS2 nude v "novej" 2K-4K-8K grafike.









