AMD rozšiřuje FidelityFX o SPD, SSSR a CACAO
FidelityFX je open-source knihovna efektů, které mohou herní vývojáři snadno implementovat do svých her. Loni představený CAS (Contrast Adaptive Sharpening) s možností kvalitního up-scalingu obrazu na nativní rozlišení monitoru byl docela úspěch, a tak se nabízí otázka, proč trvalo skoro rok, než došlo na další efekty. Osobně bych měl jednu teorii - implementaci měl tehdy na starost Ryszard Sommefeldt. Ten pracoval v PowerVR, v roce 2017 nastoupil do AMD a po 2,25 roce (cca) se k PowerVR vrátil. Toto pendlovální lze vysvětlit faktem, že PowerVR mezi tím opustil architekt Arun Demeure a ještě před ním Martin Ashton (ten přešel k Intelu a odtud do AMD), takže Sommefeldt tak trochu pomohl personálně oslabené PowerVR a částečně vyrovnal síly. Poslední, co Sommefeldt u AMD dělal, byla právě implementace CAS v rámci FidelityFX. Je tak dost možné, že nějakou dobu trvalo, než se podařilo sehnat někoho, kdo by to po něm převzal.
Nyní AMD ohlásila rozšíření arzenálu FidelityFX o další efekty:
- CAS (Contrast Adaptive Sharpening) - zůstává
- SSSR (Stochastic Screen Space Reflections)
- CACAO (Combined Adaptive Compute Ambient Occlusion)
- LPM (Luminance Preserving Mapper)
- SPD (Single Pass Downsampler)
Inu… neptejte se mě, kdo ty zkratky vymýšlel, skoro se dá říct, že co zkratka, to trefa, ale nebudeme rozvíjet konspirační teorie. A radši si krátce vysvětlíme, co to vlastně dělá.
SSSR je implementace oblíbené technologie screen-space reflections. Jde o jednoduchý (a tudíž na výkon velmi nenáročný) způsob vytvoření odlesků. Nízké nároky vycházejí z toho, že odlesk je vytvořen z již vyrenderovaného pomocí Shader Model 6.0+.
CACAO přináší realistické stíny záhybů a rohů známé jako ambient-occlusion. Ty dodávají objektům na prostorovosti a scénám na hloubce. Efekt by měl být optimalizován pro snížení výkonnostních nároků.
HDR se zachováním jasové složky pro implementaci širokého gamutu. Výhodou implementace je běh čistě na aritmetických jednotkách, takže může běžet asynchronně a využívat různých bublin, kdy hardware není v základu plně vytížený. Podporuje formát packed-FP16 pro lepší výkon v API Vulkan.
SPD řeší situace, kdy vývojář pro jakýkoli efekt používá downsampling. Implementace je navržená tak, aby v jediném průchodu byla schopna vytvořit až dvanáct mipmap úrovní a využívat přitom co nejefektivněji dostupné hardwarové prostředky (aby nevznikaly ony bubliny, pro jejichž zaplnění je potřeba používat asynchronní shadery víc než by bylo nutné). Podporuje Rapid Packed Math pro nižší aritmetické nároky.
Co říct závěrem. Pokud jste nečekali, že kdy na DIIT budete číst novinky o SSSR nebo SPD, věřte mi, že já jsem nečekal o nic víc než vy, že je budu psát.