S hrou jsou vážné problémy. Škoda, že jsem se o nich nedozvěděl v roce 2012, kdy mohla být nějaká naděje na jejich odstranění. Také bych si přál, aby si Luboš Motl těchto problémů všiml už v roce 2012.
Myslím si, že simulace aberace je správná. O dilataci času a časovém zpoždění při cestování světlem je těžké něco říct, protože v herním světě se toho pro začátek moc neděje.
Největší problém je, že simulace Dopplerova posunu je absurdně špatná.
Tady je screenshot ze hry:
Tady je podobný screenshot pořízený v klidu, na který jsem aplikoval „Dopplerův gradient“ pomocí kódu Dopplerova posunu z Backlight, 4D raytraceru:
Druhý obrázek bych rozhodně nebral jako definitivní, ale kvalitativně je mnohem blíž tomu, jak by hra měla vypadat. Bílé objekty osvětlené světlem hvězd mají zhruba spektrum černého tělesa, takže při Dopplerově posunu by měly být červené, bílé nebo modré, nikdy ne zelené nebo fialové. Objekty s desaturovanými barvami by měly vypadat jako desaturované duhy (podívejte se na zem, která je v klidu bledě modrá). A jas by se měl plynule zvyšovat při pohledu zprava doleva.
Hra není open source, ale shader Dopplerova posunu ano, tak jsem se na něj podíval.
Funguje tak, že z RGB složek textury odhadne světelné spektrum (reprezentované jako součet Gaussů v prostoru vlnových délek), škáluje ho faktorem Dopplerova posunu, konvolvuje ho s aproximacemi funkcí shody barev XYZ (také součty Gaussů) a pak převede XYZ na RGB. To je rozumné.
Prvním problémem je, že místo aby odhadli široké spektrum, které se blíží slunečnímu černému tělesu, když je barva šedá/bílá, odhadují úzké hroty na 463 nm, 550 nm a 615 nm. To prostě není realistické a je to důvodem všech těch podivných barev v pravé polovině obrázku.
Jasné barvy vlevo jsou způsobeny dalším podivným konstrukčním rozhodnutím. Spolu s RGB podporují IR a UV barevné kanály, které jsou vidět pouze tehdy, když jsou dopplerovsky posunuty do viditelného rozsahu, což je dobrý nápad. Ale jsou to opět ostré hroty ve spektru a textury řídí vlnovou délku hrotů, zatímco amplitudy jsou pevné. Pro UV záření si vyberete vlnovou délku od 0 nm do 380 nm (fakticky nekonečný rozsah), zatímco pro infračervené záření je to 700 nm až 1100 nm (rozsah menší než 2:1). Důvod, proč vidíte jasné RGB duhy v každé textuře při modrém posuvu, ale ne při červeném posuvu, nemá nic společného s fyzikou. Je to proto, že můžete umístit povinnou UV špičku na 0 nm, kde nikdy nebude vidět, ale nemůžete skrýt povinnou IR špičku.
Škálování jasu se zdá být také špatné. Šířku Gaussů násobí faktorem červeného posuvu, čímž se stejným faktorem škáluje integrovaná energie, a pak se dělí koeficientem červeného posuvu v kubických hodnotách. Výsledkem je, že jejich Stefanův-Boltzmannův zákon je $σT^2$ místo $σT^4$. Měli dělit pátou mocninou.
Zdá se, že jsou také problémy s kódem pro převod spektra na RGB – duha vlevo by při správném převodu měla mít pruhy ROYGBIV, ne jen RGB.
Dalším drobným problémem je, že zřejmě počítají efekty na základě toho, jak silně tlačíte na joystick, a ne jak rychle se skutečně pohybujete. Např. pohybující se duchové vypadají červeně/modře posunutí, když stojíte na místě, ale když se postavíte před jednoho z nich a necháte ho tlačit, zůstane modře posunutý, i když je teď vůči vám nehybný, a na pozadí nejsou žádné pohybové efekty, i když se pohybuje. Zdá se také, že červený/modrý posuv duchů se nemění s tím, jak se zdánlivě snižuje rychlost světla.
Doplněk „o co jde“ na konci (ke stažení také ve formátu Powerpoint z webových stránek) obsahuje některé chyby.
Světlo se také chová jako proud částic zvaných fotony. Když se rozběhnete proti proudu fotonů, dopadne na vás více fotonů a objekt se rozzáří. Tento jev je také znám jako relativistická aberace.
Především jsou tyto jevy klasické, takže kvantizace je irelevantní. Za druhé, zvýšená rychlost pohlcování fotonů se na zvýšení jasu podílí jen malou částí. Zatřetí, aberace se týká změny úhlu, ne dopadu většího počtu fotonů.
Na tomto slajdu je také obrázek s popiskem „při pohybu vlevo jsou objekty vlevo jasnější než objekty vpravo“, i když to na obrázku (který je podobný obrázku v horní části této odpovědi) zjevně není pravda. Měla by to být pravda, samozřejmě. Je pro mě těžko pochopitelné, jak nikdy v žádném bodě vývoje nepřišli na to, že jejich shader je chybný, vzhledem k jeho šílenému výstupu.
Musíte být mnohem blíže rychlosti světla, abyste si všimli dramatičtějších efektů Lorentzovy transformace ve srovnání s Dopplerovým a Searchlightovým efektem. Na konci hry jsou Dopplerův a Searchlightův efekt odstraněny, abyste si Lorentzovy transformace mohli lépe všimnout.
Tady se říká „Lorentzova transformace“, ale zřejmě se tím myslí aberace. Lorentzova transformace není „efekt“, je to jen způsob převodu mezi souřadnicovými systémy. Souřadnicové systémy jsou bezvýznamné a nemají vliv na to, co vidíte.
Objekty, které jsou normálně mimo vaše zorné pole, se mohou stát viditelnými, když se pohybujete rychlostí blízkou rychlosti světla, protože je vidíte tak, jak byly v minulosti.
Ano, vidíte je tak, jak byly v minulosti, ale vidíte je ve stejném minulém čase bez ohledu na to, jak rychle se pohybujete (například hodiny budou ukazovat stejné údaje nezávisle na vaší rychlosti). Vaše zorné pole se rozšiřuje, když se pohybujete dopředu, kvůli aberaci, která je nejsnáze pochopitelná jako lokální efekt způsobený pohybem kamery/oko, jak je vidět zde.