13/03/15

Kauza: chýbajúce anizotropné filtrovanie textúr na PS4ke


Trpezlivosť s ďalším textom, ako vždy chcem aby ste to pochopili, napíšem to primerane stručne a jednoducho. Začíname. Hypotetická obrazovka s rozlíšením 256x256 fyzických pixelov. Textúra 256x256 texelov s 1:1 mapovaním vycapená na display. Pristúpne bližšie. Textúra sa "zväčší" podobne ako stena, imp či výbušný sud v hre DOOM. Ešte väčší zoom a na ploche už máme len zopár veľkých farebných "štvorcov". Bilineárny filtering /2x lineárna interpolácia v oboch osiach/, ktorý nás masovo navštívil hlavne s prichodom prvých 3Dfx grafických kariet rieši práve tento problém. Plynulé prechody jednotlivých texelov medzi sebou. Vážený priemer, nové inter-texely, farebný gradient, prechod. Štandardná súčasť výbavy dnešných GPU, dnes prakticky nemerateľná spotreba výkonu, bez poklesu fps.


bilineárne filtrovanie ON/OF a mipmapping v Qvejk trojke vpravo

Odstúpme od tej textúry, jej veľkosť sa zmenší, povedzme na viditeľných 128x128 pixelov, rozlíšenie obrazovky ostáva bez zmeny 256x256 pixelov. Položme si teraz otázku prečo pracovať v tomto momente s 256x256 textúrou /65 535 bodov/, drancovať priepustnosť, texel fillrate plus čumieť na hrozný pixel crawling /pixel-subpixel aliasing artefakty, keď sa pôvodná textúra snaží natlačiť do stále menšieho počtu bodov obrazovky/ keď z nej vidíme 2-4-8 krát menej dát. Uložíme si teda do vram aj 128x128 variantu a už keď sme pri tom tak aj 64x64 a 32x32 verziu. Tomuto sa hovorí vytvorenie zoznamu mip-máp základnej textúry /MIP - multum in parvo - "much in little"/. Štandardná súčasť výbavy dnešných GPU, dnes prakticky nemerateľná spotreba výkonu, bez poklesu fps /uloženie množstvá mipmáp však vyžaduje kopu vram/.

Teraz položme našu textúru a jej mipmapy na zem, nech nám to ubieha pekne perspektívne do diaľky a začnime kráčať. Eh, vidíme zreteľné, ostré prechody medzi jednotlivými mipmapami, vyzerá to ako keby ste pred sebou "tlačili" za sebou položené textúry - dlaždice s rozdielným rozlíšením /viď Qvak 3 obrázok vyššie/. Riešenie - trilineárny filtering. Jednoducho si predstavte, že jednotlivé mipmapy sú akože veľké texely a hľadáte ďalšie aritmetické priemery medzi nimi. Výsledkom je monolitická textúra bez zjavných narušení integrity s plynulou stratou detailov /rozlíšenia/. Štandardná súčasť výbavy dnešných GPU, dnes prakticky nemerateľná spotreba výkonu, bez poklesu fps.

na PS4ke sa masovo vyskytuje prvý menovaný alogoritmus, druhý kvalitnejší často "záhadne" chýba

"Bilineár" aj "trilineár" sú tzv. izotropné techniky, proces úpravy pixelov je v každom smere rovnaký, ide o virtuálny štvorec, box. Bohužiaľ 3D priestor sa na pravé uhly a ideálne podmienky príliš nehraje a nás trochu mrzí aj strata detailov našej bilineárne/trilineárne filtrovanej textúrky so vzrastajúcou vzdialenosťou od nás. To by nevadilo pri 5 kilometrov vzdialenom horizonte, my však hovoríme už o 3-5 metrov, na koberci v izbe. Anizotropné filtrovanie. Ako hovorí názov - an/iso/tropic = nefiltrujúci ROVNAKO v každom smere ako vyššie uvedení bratia. A filter box nemá štvorcový tvar, skôr je to lichobežník a podobne paralelogramy. Na konci je textúra /s mipmapami/ stále plynulo bez rušivých prechodov ubiehajúca do diaľky, avšak so zachovanou high frequency /detail/ informáciou textúry. Štandardná technika dnešných GPU, variabilná spotreba výkonu a pokles fps v závislosti od vzdialenosti, do ktorej chceme ostrosť zachovať - vzorkovanie 4x, 8x,16x. Osmička je sweet spot, môžte to však dynamicky meniť podľa náročnosti scény a dostupných kapacít GPU/vram priepustnosti.

---------------------------------

Základná teória je za nami. PS4 má objektívne šikovné a moderné GPU - tak kde je ten problém ? Je v prekvapujúco vo veľmi častej absencii AF v PS4 hrách /a to dokonca aj v natívnych hrách ako The Unfinished Swan HD, ktorý paradoxne AF na PS3ke má. Situácia je o to zábavnejšie, že multiplat gamesy bežne AF na XO /oveľa slabšie GPU/ obsahujú, na PS4ke ale po ňom nie je ani stopy. Avšak TLoU: Remaster pre PS4 - až 16xAF !!. Teraz sa v tom vyznaj, tento chaos spustil na neogafe alebo beyonde3d konšpirujúce špekulácie a žiadenie si odpovedí od SONY. Aj sa im jednej dostalo priamo z úst progiša SONY ICE teamu, ktorý citujem hovorí: "PS4 GPU je bez problémov schopné až 16xAF". Nuž to vieme, prečo však chýba tam, kde ho anemické XO bez problémov dostane ? Nejde o HW chybu dizajnu, ani o nedostatok priepustnosti ram. Na PC GPU s polovičnou BW /bus bandwidth/ ako PS4 GPU v tej istej multiplat hre to AF nájdete, aspoň na úrovni 4x. Na PS4ke iba jednoduchý trilineárny filtering. Podľa mňa išlo od začiatku o problém s PS4 GNM/X API - prevod shader kódu, profilov z DirectX WinPC "vývojarského" prostredia alebo middleware, no ale hovorte to deťom.

"Having read some documents recently I'm about 95% that it's an API misuse issue (ie. not HW related)." - Fafalada /rešpektovaný a známy herný progiš, ktorý svojho času hviezdil aj na PS2ke/

Našťastie nás pred hanbou zachránili poliaci s hrou Dying Light - "However, the PS4 version suffers from a disappointing lack of anisotropic filtering, with oblique angles producing much sharper
texture work on Xbox One
". Ide o bežnú multiplat shitku, ktorá na PS4ke beží v stabilnom 1080p/30 režime avšak bez stopy po AF. Klasika. Stala sa však jedna nenápadná vec. Najnovší patch v1.50 dodatočne pridal do PS4 verzie vysoký stupeň AF, pravdepodobne až na úrovni 16x, určite 8x /nepochybujem, že DF z eg.net sa k tejto hre ešte v analýze vráti/ !! To definitívne potvrdzuje teóriu tzv. "chyby v preklade" a vyvracie bludné teórie o chybnom HW dizajne, nedostatočnej priepustnosti, obetovaní efektov pre dosiahnute FHD rozlíšenia a podobne. Ide vlastne o rovnaký problém ako v prípade zlého framerate pacingu /časovanie 30 fps hry pri 60Hz display refresh/, tiež relatívne častejšie na PS4ke. A to je všetko, pokus urobiť z komára somára nevyšiel, búrka v pohári vody, mŕtva kačica.

05/03/15

SONY - Royal Flush


Považujme GDC 2015 za symbolický deň definitívneho prechodu od 7. ku 8. generácií konzol. Next gen je konečne tu. Cross-game je trochu hanlivý pojem označujúci hru, ktorá vzniká primárne s citlivým ohľadom na viac ako 10 rokov starý dizajn konzol PS3, X360 a na novších mašinách sa iba mechanicky posunie do vyššieho rozlíšenia alebo lepšej snímkovacej frekvencie. Nová AMD GCN /graphics core next/ architektúra + asynchrónne GPU výpočty/direct compute + štandardné x86 AMD OoO CPU je však jednak cititeľne výkonnejšia oproti dožívajúcej starine, druhák s nimi doterajšie nástroje /engines, middleware/ a kodérske návyky na konzolách nijako nerátali. Skutočná sila PS4/XO je teda pred nami ešte dobre ukrytá.

Našťastie sa práve pred GDC zo zimných brlohov vykotúľali podstatne vylepšené, komplexné multiplat engines ako Unreal 4.8, Unity 5.x, dokonca Source 2. Vieme, že Frostbite od EA tvrdo pracuje na "GCN" modifikáciách, detto Avalanche engine /herná Just Cause séria/. V SONY na tomto pracujú hlavne špičky zo skupín ICE team, SN systems aka Razor Team, XDEV, kde nájdete aj prácu progišov z Naughty Dog alebo Santa Monica. V ruke v ruke s tým ide up-to-date úprava PC API - DirectX12, Vulkan alias OGL Next, Mantle /toto AMD rozhranie pravdepodobne skoro vypadne z hry/. Konzoly PS4 a XO majú vlastne priebežne vylepšované API s ešte nižším prístupom ku HW, minimálne v prípade PS4, ako je tomu u DX12. Prosím ignorujte tie blábolivé MS PR kecy, ktoré teraz zo seba MS chrlí na dresu DX12, Win10, XO - chcú iba upútať a predať svoje produkty, ako asi každý. Tie 200-500% nárasty framerejtu vo vybraných DX12 demách majú čerta spoločného s "genialitou" tohto API, je to iba dôkaz toho ako hrozivo neefektívna bola riešená komunikácia medzi CPU-GPU v DX11 /CPU workload, multithread draw calls atď./ Zvyšok sú evolučné vylepšenia /conservative rasterization, ROV, TRT3/.

Viem, že slintáte nad grafickými ukážkami z GDC /mimochodom oproti PS4 na 10 x krát výkonnejšom a  1000+ eurovom PC NV GPU s 12 giga vram tam stále vidím masívne "doskakovanie" - zmeny LODs a ďalšie artefakty/ a komu by sa nepáčilo pôsobivé riešenie globálnej iluminácia od Geomerics. O tom však skutočne nové "engines" nie sú. Unity, či Unreal - na prvom mieste tu je ekonomika tvorby hry. Priame aj nepriame náklady. Poplatky, licencie, drahé človeko-hodiny pri výrobe asetov, odlaďovaní hry. Peňazí je totiž v "systéme" o dosť menej, odkedy nám ich odčerpávajú mobility a chuť riskovať ešte menšia, preto je 90% relevantných mainstreamových hier v kategórii dudebro FPS/TPS akcia, občas s prímesou RPG. Nespornou výhodou je, že s moderným middleware budú schopný dosiahnuť vyššiu priemernú, technickú kvalitu aj tímy s nižším budgetom. V tomto vidím hlavnú výhodu nových nástrojov - efektívny workflow, lepší index vstup/výstup.

Veľkou kapitolou GDC bolo detailnejšie predstavenie ďalšieho kola virtuálnej reality, tentokrát od SONY /projekt Morpheus/, HTC@Valve Vive a tretím do páru je Oculus Rift, posledná revízia Crescent Bay. Za každým z nich stoja skutočné kapacity v obore. Opäť však musím upriamiť vaše myšlienky na dôležitejšie veci /viď nižšie/ ako je rozlíšenie /per oko 2x960x1080 pri SONY, 2x1080x1200 pri Valve/, latencia pohybu v priestore /18ms pri SONY/, zorné pole /100 stupňov pri SONY/, snímkovacia frekvencie /60 až 120Hz plus dopočítanie medzi-frejmov, pohybové kompenzácie/, typ displaya /custom OLED matrica pri SONY /, tracking - sledovania polohy prilby/uživateľa, audio poziciovanie a stovky ďalších čiste technicky fines. Nie sú dôležité, sú bez problémov riešiteľné. Dnes drahšie, časom oveľa lacnejšie.

VR prilbu nesmiete brať ako voliteľný doplnok ku každej vašej obľúbenej hre, zabehanej franšízy. Je to podľa mňa samostatná platforma s vlastným softom /platí hlavne pre konzoly/. Abrash, jeden z najlepších "herných" programátorov na svete, správne povedal, že pri kvalitnej VR je jej "rýchlosť" 99% celkovej imerzie. Myslel tým polopate povedané super nízku latenciu obrazu a sledovania polohy prilby, samozrejme počet snímkov za sekundu pred vašimi očami. Bohužiaľ 90 fps sa považuje za rozumné minimum, odporúča sa však aspoň tá 120ka /ehm .. 1000 fps ak ste úplne dôsledný/. Dnes iba PC za "milión" udrží vo všetkých AAA hrách v rozlíšení 2160x1200/ninja detaily absolútne stabilných 90fps. Pri PS4ke môžte cieliť na režim 1920x1080px60fps. Je to hravo dosiahnuteľné ak uberiete nohu z plynu - rozumné zjednodušenie grafiky, AI, fyziky podľa toho kde má hra /HW/ úzke miesto.

" .. will help continue the PCs dominance as the premiere 
content authoring platform." - Source 2, Valve.

Reálny život. Kto si vlastne vaše VR riešenie kúpi a za koľko. Steam sa chváli 125M aktivnými uživateľmi, tlusťoch Gabe sa snaží otvorene a nepokrytene odstrihnúť od MS a sprivatizovať celý segment tzv. herného PC /Steam machines, SteamOS, Steam controller, Steam VR, Steam link stream box/. Veľa šťastia. Pýtam sa však, kde je tá kúpna sila tejto masy puberťákov, čo čaká na 4.99 eurové diskonty 59.99 eurových konzoláckych hier a rochní sa v letných valve výpredajoch. Nevedia utiahnúť vývoj ani jednej vlastnej exkluzívnej AAA PC hry. Skrýva sa leda v mikrotranskciách za čiapky v Team Fortress 2 či parochne v DOTA2. Valve sú pokryteckí čuraci a suroví kapitalisti. Už som tu neraz napísal ako dávno stratili záujem o drahú, single player, story based Half Life 3. Pre nich už iba vyhodené prachy a strata času. Prečo by teda malo toto PC utiahnúť vývoj exkluzívnych AAA hier s veľkým budgetom pre Valve VR ? Alebo inak, pretože podobných projektov sa asi nikdy nedočkáte. Koľko tých PC blbcov, ktorí už dnes na porty z "notebook" konzol potrebujú i7+Nv 780+16 giga ram bude mať na raz tak dobrý HW, aby im to stačilo na kvalitné PC "master race" VR ? Úspech virtuálnej reality nestojí na otázkach technologickej kvalite, tá tu skôr či neskôr bude, ale na veľmi citlivom nastavení ceny, veľkej penetrácii medzi hráčov a teda na marketingu - musíte presvedčiť zákazníka aby po VR túžili, VR musí byť objektívne neodolateľne podmanivé /obsah/ a tento záujem potrebujete udržiavať po mnoho ďalších rokov. Nepotrebujeme iba ďalšiu padlú hviezdu ala kratučké Weemote-PS Move-Kinedryl motion extempóre.

toto video nemá nič spoločné s GDC ale patrí tu na 100% - lebo Handel a obsah je nadradený forme

Naspäť ku PS4ke a SONY. Oznámili vyše 20M predaných kusov. Bravó. Pochváľme sa tým, že PS4 predalo toľko čo Weak Uu a Xbone dokopy a na týždennej báze prekonáva vytrvalo XO v pomere 2:1. Netuším si odhadnúť hranicu, kde sa tento silný rast zastaví - 40M, 50M, 60M. Neviem. Vidím však tu masu ľudí čo nám uteká ku drahým smart mobilom a tabletom. Veľkosť PS4 základne bude pritom kľučová aj pri eventuálnom sa presadení SONY VR platformy štartujúcej už o rok /čakám, že Valve VR padne na hubu - priliš komplikované, 2 x lighthouse box s vlastným akumulátorom, strašné controller bimbasy v rukách, povinne ultra výkonný PC HW, zákonite slabá penetrácia/. PS4 ak to situácia a ekonomika dovolí, bude o rok stáť 299 euro, k komu ďalších povedzme 299 euro za VR balík /prilba + PS4 stereo kamera a "niečo" do ruky/. Vžuum - sme o hypotetický rok neskôr v čase. PC je stále mimo hry, nintendo mŕtve, MS bez VR. Máme tu ale skvelú, cenovo jakž takž prijateľnú SONY HW technológiu /PS4+VR/, vyspelý softvér - SDK, API, middleware, engines. Trochu času a peňazí. Stále hľadáme talenty, herných dizajnérov, jedinečných vizionárov schopných z tohto fantastického potenciálu niečo neodolateľne zábavné, vysoko hrateľné a inšpirujúce vyčarovať.