- PC
- Mac
- Linux
- OS: Windows 7 SP1/8/10 (64bitový)
- Procesor: Dual-Core 2.2 GHz
- Operační paměť: 4 GB
- Grafická karta podpora DirectX 10.1: Intel HD Graphics 5100 / AMD Radeon 77XX / NVIDIA GeForce GTX 660. Minimální podporované rozlišení hry je 720p
- Připojení: Širokopásmové připojení
- Místo na disku: 17 GB
- OS: Windows 10/11 (64bitový)
- Procesor: Intel Core i5 nebo Ryzen 5 3600 a lepší
- Operační paměť: 16 GB
- Grafická karta: podpora DirectX 11: Nvidia GeForce 1060 a lepší, Radeon RX 570 a lepší
- Připojení: Širokopásmové připojení
- Místo na disku: 95 GB
- OS: Mac OS Big Sur 11.0 nebo novější
- Procesor: Core i5 (Intel Xeon není podporován)
- Operační paměť: 6 GB
- Grafická karta: Intel Iris Pro 5200 (Mac) nebo srovnatelně výkonnou kartu od AMD/Nvidia pro Mac. Minimální podporované rozlišení hry je 720p v případě použití Metal.
- Místo na disku: 17 GB
- OS: Mac OS Big Sur 11.0 nebo novější
- Procesor: Core i7 (Intel Xeon není podporován)
- Operační paměť: 8 GB
- Grafická karta: Radeon Vega II nebo výkonnější s podporou Metal.
- Připojení: Širokopásmové připojení
- Místo na disku: 95 GB
- OS: Většina moderních 64bitových distribucí Linuxu
- Procesor: Dual-Core 2.4 GHz
- Operační paměť: 4 GB
- Grafická karta: NVIDIA 660 s nejnovějšími proprietárními ovladači (ne staršími, než půl roku) / srovnatelná karta AMD s nejnovějšími proprietárními ovladači (ne staršími, než půl roku); minimální podporované rozlišení hry je 720p) a s podporou Vulcan.
- Připojení: Širokopásmové připojení
- Místo na disku: 17 GB
- OS: Ubuntu 20.04 64bit
- Procesor: Intel Core i7
- Operační paměť: 16 GB
- Grafická karta: NVIDIA 1060 s nejnovějšími proprietárními ovladači (ne staršími, než půl roku) / srovnatelná karta AMD (Radeon RX 570) s nejnovějšími proprietárními ovladači (ne staršími, než půl roku) a s podporou Vulcan.
- Připojení: Širokopásmové připojení
- Místo na disku: 95 GB
Dnes se podíváme na rozmazání pohybu ve War Thunderu - co to je, jak je ve hře implementováno a s jakými problémy jsme se potýkali. War Thunder jde do kina!
Co je Motion Blur?
Ve hře jsou snímky vytvářeny od začátku, každý snímek zobrazuje jeden časový okamžik.
Skutečné kamery nebo dokonce naše oči takto nefungují. Pořízení snímku trvá dlouho a během této doby se svět ne vždy zastaví. Pokud se během pořizování snímku nějaký objekt pohybuje, objeví se na výsledném snímku na všech těchto místech současně. Tomu říkáme rozmazání pohybu (Motion Blur).
Vysvětlení základů
Abychom mohli simulovat efekt rozmazání pohybu, potřebujeme vědět, jak se každý pixel od posledního snímku posunul. To vyžaduje, aby všechny animace a pohyblivé efekty hlásily svou aktuální a starou pozici. Může to být jedna z nejtěžších částí fungování této funkce. Ale naštěstí jsme to již měli k dispozici pro techniky vyhlazování hran. Těch několik málo animací, které to nepodporovaly, bylo velmi snadné rozpoznat, protože rozmazání pohybu z nich udělalo velkou rozmazanou šmouhu. Tak jsme je rychle opravili!
Pro začátek jsme použili osvědčenou techniku pro implementaci efektu, o které si můžete přečíst zde. V podstatě zkontrolujeme, kde se pixel nacházel v posledním snímku a kde se nachází nyní, a pak tento pixel rozostříme podél rozdílové čáry.
Pro zefektivnění výpočtů a vyhlazení některých hran je čára rozostřena také ve směru dopředu a prodlužuje se za aktuální pozici pixelu. Pro další urychlení rozhodujeme společně o větších blocích pixelů na základě jejich obecného směru.
Je také třeba zohlednit vzdálenost každého pixelu od kamery, abychom mohli rozmazat pozadí a popředí zvlášť. Rozmazaná linie pixelu v pozadí může někdy procházet za statickým ostrým objektem v popředí. Jindy potřebujeme zachovat ostré pozadí, zatímco pixel v popředí je rozmazaný nahoře. Když se dva objekty rozostří v jednom pixelu, je důležitá i jejich individuální rychlost, protože někdy nesmí zůstat ostrý ani jeden z nich.
Technické výzvy ve War Thunderu
Samozřejmě jsme museli rozmazání pohybu trochu upravit, abychom ho přizpůsobili našim potřebám. Abychom mohli rozhodnout, jak pixel rozmazat, musíme znát jeho rychlost. Ale co když neexistuje jediná odpověď, protože v jednom bodě je vidět více věcí? Bez zvláštní péče algoritmus „nevidí“ průhlednost.
Ve War Thunderu máme skleněné kokpity a v nich barevná světla připevněná k letadlům, která létají nad stromy a zároveň překonávají zvukovou bariéru. Proto jsme museli skleněné povrchy nějak ošetřit. Zde máme zcela odlišné rychlosti na stejném pixelu. Sklo je stabilní, ale les za ním je velmi rychlý.
Nakonec jsme použili podobný trik jako při oddělování pozadí a popředí. Pokud něco vidíme přes sklo, považujeme to za jednu kategorii, zatímco přímo viditelné předměty za jinou. Nepřehazujeme jednu kategorii na druhou, ale umožňujeme míchání v rámci kategorií.
Tímto způsobem dosáhneme snímků, na kterých je pozadí přes sklo rozmazané, ale samotné sklo si zachovává ostrou siluetu.
Poznámka: v době psaní tohoto příspěvku je speciální úprava průhlednosti povolena pouze v případě, že je Motion Blur nastaven na maximum.
Omezení
Protože pro každý pixel máme k dispozici pouze jednu známou rychlost, rychle se pohybující průhledné objekty nebudou rozmazány, pouze objekty na pozadí, které jsou přes ně vidět. To také znamená, že odrazy na těchto površích lze rozmazat pouze na základě pozadí.
K vytvoření dokonalého efektu bychom potřebovali dokonalé informace. I když známe pozici pixelu na obrazovce v minulém i aktuálním snímku, nevíme, jakou cestu mezi nimi urazil. Prostě ji rozostříme v linii, jako by se pohybovala rovně, což téměř vždy stačí. Důležitou výjimkou jsou kola vozidel. Zde se může jeden bod na kole přesunout na opačnou stranu v čase jednoho snímku. Předpokládat zde přímý pohyb je daleko od reality.
Prozatím tento problém není vyřešen, kola budou potřebovat vlastní metodu pro správné rozmazání pohybu, která funguje na jiných principech.
Je to reálné?
Rozmazání pohybu je viditelné nejen u rychle se pohybujících objektů, ale také v případě, že se pohybuje samotná kamera. Na filmovém plátně je to velmi častý jev, ale v našem přirozeném vidění se oko obvykle zaměřuje na objekty a udržuje pro nás svět stabilnější. Rozmazání pohybu ve hře je filmové - vypadá jako skutečný film natočený skutečnými kamerami. Ale není to jako vidět svět na vlastní oči.
Pro lepší simulaci lidského vidění jsme přidali možnost vypnout rozmazání pohybu způsobené pohybem kamery. To sice rozostří rychle se pohybující objekty, jako jsou prolétající letadla nebo vybuchující trosky, ale obraz zůstane ostrý, když se jen díváte kolem sebe.
Rozmazání kamery je vypnuté, pohybuje se pouze věžička
Otáčení věže s plným rozmazáním pohybu
Je rozmazání pohybu pro naše hry dobré?
Tuto otázku slýcháme často a interně jsme o ní také vedli rozhovory. Někteří říkají, že to dodává pocit pohybu a činí zážitek více pohlcujícím. Zatímco jiní říkají, že je obtížnější mířit na pohyblivé cíle, odstraňuje to přehlednost, která je důležitá pro kompetitivní hru. Pravdu mají oba. Je to otázka vkusu a toho, co od hry očekáváte. Pokud vás nejvíce zajímá vyhrávání a stoupání po žebříčku, možná to není nic pro vás - klidně ji vypněte. To nám vůbec nevadí. Pokud jste již vyhráli a chcete si z opakovaných záběrů udělat záznam, nebo jen chcete pocítit rychlost při letu, můžete ji maximalizovat a použít pro efekt ve filmové kvalitě.
Komentáře (0)
Komentáře budou předem moderovanéSubmit a complaint