Rozbor: Stane se Raytracing jádrem nových her, nebo je stále hudbou budoucnosti?
Dnešní grafika je postavená na rasterizaci. Raytracing je alternativní cestou, která se trochu více blíží principům reálné fyziky. Je to tedy takové pěkně, dá se říct i elegantnější řešení, jenže má několik háčků. První je třeba ten, že grafické karty jsou postavené jako akcelerátory rasterizace. Druhý, že pokud máte vytvořit hru, scénu a záběr s jedním konkrétním vzhledem, pak při využití rasterizace budou FPS vyšší - i několikanásobně - než když se využije Raytracing. Proč by hráč měl chtít Raytracing, pokud (či spíše dokud) mu nepřinese žádnou viditelnou výhodu? Právě proto, že se žádný skutečně pádný důvod nenašel, doposud všechna herní studia staví všechny hry na rasterizaci.
Historie hysterie Raytracing ve hrách
Čas od času se ale i výrobci grafických čipů ozvou a Raytracing začnou v souvislosti s herní grafikou zmiňovat. Tu přesvědčivěji, tu méně. Po roce 2000 bylo takových situací několik, ale asi nejhlasitější se stala éra let 2011-2013. Tehdy se o využití Raytracingu mluvilo s architekturou Nvidia Fermi. Nvidia následně (řekněme od roku 2012) začala všechny zmínky termínu Raytracing párovat s termínem Kepler, tehdejší novinkou (GeForce GTX 680 a novější).
Raytracing byl prezentovaný na Siggraph 2012, HPG 2012, GTC 2012 (a řadě dalších akcí, na které si již nevzpomenu), vycházela dema, videa. Nic proti. Raytracing se tehdy stal předmětem rozsáhlejších experimentů v profesionální grafice. Jenže Nvidia situaci prezentovala trochu barvitěji a její prezentace vyvolávaly dojem, že je prakticky hotovo…
…a že nejde jen o profesionální grafiku, ale nová generace her již bude Raytracing využívat jako nový standard.
Hesla jako „Next-Generation Gaming“, „Massive On-Line Player Games“, „Realtime ray tracing is here“ a podobná další, která byla tehdy použita, skutečně zafungovala a přesvědčila řadu novinářů, kteří přesvědčili řadu uživatelů. Dodnes o tom svědčí titulky jako „Investigating ray tracing, the next big thing in gaming graphics“ (Joel Hruska, Extremetech) nebo Ryanem Shroutem na PCPerspective popisovaný zážitek Johna Carmacka, který měl při vývoji svého nadcházejícího herního enginu nahradit rasterizaci za raytracing a dosáhnout na GPU Nvidia Fermi 60 FPS při (tehdy relativně vysokém ) 720p rozlišení.
Jen pro úplnost připomínám, že jde stále o události let 2011-2012. Především tím ale chci ilustrovat rozpor mezi sílou mediální masáže a výsledkem, který byl zcela nulový. Nicméně právě údajné optimalizace architektury Kepler pro raytracing se objevovaly ve výčtech jako jeden z důvodů, proč při výběru grafické karty preferovat tyto produkty.
Mediální masáž pokračovala ještě začátkem roku 2013, ale podstatně slábla. Na podzim 2013 prohlásil Jaeger Jensen ze společnosti Epic k příležitosti rozhovoru u práci na Unreal Engine 4, že základem budou voxely. Na dotaz, proč ne původně propagovaný Raytracing, odvětil: „Ray tracing takes so much computer power that it's not feasible in a game in the next few years“ (Raytracing vyžaduje tolik výpočetního výkonu, že jeho nasazení ve hrách nebude v následujících letech přípustné). Podobné informace přišly i z ostatních stran a bouře ve sklenici vody ještě před koncem roku 2013 utichla.
Raytracing opět na scéně
V posledních dnech se opět začalo o technologii Raytracing hovořit. Microsoft oznámil, že zahrne podporu pro tzv. DXR (DirectX Raytracing) do DirectX 12. Nvidia ohlásila technologii RTX - podporu pro Raytracing - která bude využitelná právě přes DXR. Její součástí je tzv. „Raytracing denoiser module“, který by měl být zahrnutý do GameWorks a který naznačuje, odkud vítr vane:
Pokud použijeme logiku lineární extrapolace, pak není z principu možné, aby Raytracing ve hrách někdy nahradil rasterizaci. Pokud je v roce X hra postavená na rasterizaci 3× rychlejší než hra postavená na Raytracingu, tak i když v roce X+4 bude hardware kupříkladu 2× rychlejší a hra postavená na Raytracingu dosáhne hratelných FPS, tak alternativa postavená na rasterizaci stále nabídne 3× vyšší FPS a tento náskok bude možné využít pro vyšší rozlišení, vyšší detaily nebo prostě plynulejší herní zážitek. Raytracing má šanci pouze tehdy, pokud se podaří snížit jeho hardwarové nároky (či zlepšit jeho akceleraci) natolik, aby rasterizace svůj náskok ztratila.
Nvidia Tensor Core (schema)
Zdá se, že Nvidia s architekturou Volta zkusila zacílit tímto směrem. Využila totiž tzv. tensor cores určené pro segment AI. Namísto toho, aby při nasazení technologie Raytracing počítala všechny paprsky, které jsou potřeba pro vykreslení kvalitního („nezašuměného“) obrazu, počítá s nižším počtem paprsků a výsledný obraz vyčistí použitím algoritmů akcelerovaných právě přes tensor cores. Celkové FPS pak mají být vyšší. Jaké jsou dopady na kvalitu výstupu, není jasné (není mi známo, že by někde byly zveřejněné dostatečně kvalitní srovnávací screenshoty). Předpokládám ale, že posun výkonnostní stránky nebude zanedbatelný, když Nvidii stál za opětovné zahájení propagace mezi herními vývojáři. Například Unity a Unreal Engine by měl podporovat Nvidia Highlight SDK.
Nvidia Volta - Titan V
Ačkoli je o aplikaci technologie Raytracing slyšet hlavně od Nvidie, podle webu TweakTown s Microsoftem spolupracuje i AMD: „AMD pomáhá Microsoftu definovat, zlepšovat a podporovat budoucnost DirectX 12 a Raytracing. AMD zůstává v čele nového programovacího modelu a API založeném na perspektivním systematickém základu pro grafické programování. Těšíme se, až budeme s herními vývojáři probírat jejich nápady a odezvy vztahující se k technologiím Raytracing pro PC, kvalitě obrazu, možností efektů a výkonu.“
Tato slova se nicméně jeví jako obecné konstatování, která má za úkol předejít situaci roku 2012, kdy na základě velkolepých prezentací Nvidie vznikl dojem, že Nvidia má v rámci herního Raytracingu jakýsi náskok. Nyní ovšem termín Raytracing zaznívá z úst Nvidie, Microsoftu i AMD. Znamená to, že se záhy dočkáme her, které jej budou využívat? Ne. Spíše začíná první skutečné vyšlapávání cestičky pro možné využití technologie. Jak prohlásil zástupce společnosti Remedy, která rovněž jedno demo odprezentovala: „[tato] technologie zůstává na úrovni výzkumu a jako taková je daleko od implementace do [nějaké] videohry. Jde ale o zajímavý záblesk věcí budoucích“.
Jinými slovy: Třeba to tentokrát vyjde, třeba to dopadne jako před šesti lety. Jisté je prozatím jen to, že žádné konkrétní hry, které by měly Raytracing využívat, nevznikají a zatím nic nenaznačuje, že v dohledném horizontu vzniknou.