David Cage - šéf Quantic Dream /QD/, ktorého poslednou hrou je dobre prijatý Detroit: Become Human /2018/, najnovšie povedal, že ich next gen projekt bude bežať na fungel novom 3D engine. Zdanlivo banálne prehlásenie. A aby som vás dostal trochu do obrazu, tak na PS3ke išli pri renderingu v ťažkotonážnom deferred štýle, lebo tak to vyhovovalo systému postavenom okolo SPE jednotiek so slabým GPU. Pri hre Detroit došlo ku fundamentálnej zmene na forward rendering. Nemusia vás trápiť detaily, ale ide o niečo v jadre veľmi dramaticky odlišné. PS5 je v úplne inej galaxii. Ponúka možnosti ako je plne programovateľná geometrická časť pipelajny /naposledy na PS2ke/, ide o novú paradigmu. Môžte si sami definovať vlastnú softvérovu rasterizáciu mimo fixného GPU HW /naposledy s Pentium a Quake 1 bez "3D" podpory/ a samotný HW PS5 GPU je upravený ad absurdum vo veciach, ktoré PC rieši neurvalým a silovým 300+ watt spôsobom. Podľa mňa budú v QD sedieť minimálne 2 roky na zadku aby ten zázrak zlepili dokopy. Myslím 2 roky čistej práce len na novom 3D engine. Nasleduje zopár motivačných slov ako "ľahko" sa na PC portuje hru z biedneho "notebook" HW PS4ky.
Na porte hry Detroit: Become Human pre PC začali pracovať už pár týždňov potom, ako bola hotová PS4 verzia. Práca trvala 18 mesiacov aj s intenzívnou pomocou zo strany AMD. Určite si poviete, prečo tak nelogicky strašná, časová náročnosť, keď ide o banálny prenos hry z jednej AMD platformy na druhú. Dev tím tvrdí, že hra vznikala od začiatku primárne pre PS4 a nepredpokladala sa konverzia pre iné mašiny. Ukázalo sa, že natívne PS4 API so špeciálnymi extenziami a low level prístupom ku HW je pre PC celkom veľký problém. DirectX alebo OpenGL boli možnosťami ďaleko pozadu. PS4 API odkrývalo funkcie GP, o akých sa PC s DirectX ani len nesnívalo.
Herný engine napríklad super intenzívne využíva možnosti nového, moderného "bindless resources". Je to model odlišný od štandardného "sparse resources" alias brute force prístup. Táto funkcia hovorí o voľnosti prístupu GPU ku dátam, ktoré potrebuje na výstavbu scény. Vyžaduje expozíciu funkcií v GPU skrze API, ktoré proste pri DX11 alebo OpenGL neboli dostupné a výkon 3D enginu pod nimi bol tragický a značne CPU zaťažujúci /CPU je hlava a GPU je krk/. Voľba teda išla smerom DX12 a Vulkan. A pretože Vulkan na rozdiel od DX12 podporoval aj staršie Win7/8 išlo sa jeho smerom.
Rozdiel medzi API ako DX11/12, OpenGL, Vulkan a PS4 /GNM, GNMX/ je hlavne v tom, že ovládače grafickej karty napríklad pri DX11 pred programátorom zakrývajú všetku "magickú" prácu za oponou /neriešite manažment umiestnenia dát v pamäti alebo implementáciu shader kešky, antialiasing, samplovanie textúr/. Je nemožné získať 25-50% výkonu navyše tu a tam ručnou optimalizáciou. S PS4 to je možné na tej najnižšej možnej expertnej úrovni. Vulkan je niekde v strede.
CPU PS4 je anemický Jaguar, na rozdiel od PC má však oveľa rýchlejší prístup ku HW /GPU, pamäť/ a počet "draw calls" /draw calls = objednávka od CPU smerom na GPU - koľko a aké objekty má GPU vykresliť/ je výrazne vyšší ako pri porovnateľnom PC CPU. PS4 CPU ide o 100% nad svoju výkonnostnú úroveň. Jednou z ďalších maličkostí, je možnosť kompilovania shader kódu pre PS4 GPU v off-line režime, lebo poznáte cieľový HW. Pri PC sa to musí robiť priamo počas behu hru, lebo neviete, ktoré GPU alebo jeho verziu ovládača tam akurát máte. Pri Detroite dostali PS4 grafici voľnú ruku a vyprodukovali šialené množstvo vertex/pixel shader kódu a dev tím už tušil, že nielen tu pri porte dosť narazí.
No comments:
Post a Comment
**** pre vloženie hypertextového odkazu do komentára použi CSS kód: hyperlink ****