Jest kilka poważnych problemów z grą. Żałuję, że nie dowiedziałem się o tym w 2012 roku, kiedy mogła być jakaś nadzieja na ich naprawienie. Żałuję też, że Luboš Motl nie zauważył problemów w 2012 roku.
Myślę, że symulacja aberracji jest poprawna. Trudno powiedzieć o dylatacji czasu i opóźnieniu czasowym podróży światła, ponieważ niewiele dzieje się w świecie gry, aby zacząć.
Największym problemem jest to, że symulacja przesunięcia Dopplera jest niedorzecznie błędna.
Tutaj jest zrzut ekranu z gry:
Tutaj jest podobny zrzut ekranu zrobiony w spoczynku, na który nałożyłem „gradient dopplerowski” używając kodu przesunięcia dopplerowskiego z Backlight, raytracera 4D:
Na pewno nie traktowałbym drugiego obrazu jako ostatecznego, ale jest on jakościowo znacznie bliższy temu, jak gra powinna wyglądać. Białe obiekty oświetlone światłem gwiazd mają z grubsza widmo ciała czarnego, więc po przesunięciu Dopplera powinny być czerwone, białe lub niebieskie, nigdy zielone czy fioletowe. Obiekty o zdesaturowanych kolorach powinny wyglądać jak zdesaturowane tęcze (spójrz na ziemię, która w spoczynku jest bladoniebieska). A jasność powinna rosnąć płynnie, gdy patrzysz od prawej do lewej.
Gra nie jest open source, ale shader Doppler shift jest, więc rzuciłem na niego okiem.
Działa on poprzez odgadnięcie widma światła (reprezentowanego jako suma Gaussianów w przestrzeni długości fali) z elementów RGB tekstury, przeskalowanie go o współczynnik przesunięcia Dopplera, przekonwertowanie go z przybliżeniami funkcji dopasowania kolorów XYZ (również sumy Gaussianów), a następnie przekonwertowanie XYZ na RGB. To jest rozsądne.
Pierwszym problemem jest to, że zamiast zgadywać szerokie spektrum, które przybliża słoneczne ciało czarne, gdy kolor jest szary/biały, zgadują wąskie spajki przy 463nm, 550nm i 615nm. To po prostu nie jest realistyczne, i to jest powód dla wszystkich dziwnych kolorów w prawej połowie zrzutu ekranu.
Jasne kolory po lewej stronie wynikają z innej dziwnej decyzji projektowej. Wraz z RGB obsługują one kanały kolorów IR i UV, które można zobaczyć tylko wtedy, gdy są przesunięte Dopplerowsko w zakres widzialny, co jest dobrym pomysłem. Są to jednak znowu ostre spajki w widmie, a tekstury kontrolują długość fali spajków, podczas gdy amplitudy są stałe. Dla UV, wybierasz długość fali od 0nm do 380nm (efektywnie nieskończony zakres), podczas gdy dla IR jest to 700nm do 1100nm (mniej niż zakres 2:1). Powód, dla którego widzisz jasne tęcze RGB w każdej teksturze przy przesunięciu niebieskim, ale nie przy przesunięciu czerwonym, nie ma nic wspólnego z fizyką. To dlatego, że możesz umieścić obowiązkowy szpic UV na 0nm, gdzie nigdy nie będzie widoczny, ale nie możesz ukryć obowiązkowego szpica IR.
Skalowanie jasności wydaje się być również błędne. Oni mnożą szerokość Gaussianów przez czynnik przesunięcia ku czerwieni, który skaluje zintegrowaną energię przez ten sam czynnik, a następnie dzielą przez czynnik przesunięcia ku czerwieni. W rezultacie ich prawo Stefana-Boltzmanna wynosi $σT^2$, a nie $σT^4$. Powinni byli podzielić przez piątą potęgę.
Wydaje się też, że są problemy z kodem konwersji widma na RGB – tęcza po lewej miałaby paski ROYGBIV, a nie tylko RGB, gdyby została przekonwertowana poprawnie.
Innym drobnym problemem jest to, że wydają się obliczać efekty na podstawie tego, jak mocno naciskasz joystick, a nie jak szybko się poruszasz. Na przykład, poruszające się duchy wydają się czerwone/niebieskie, gdy jesteś nieruchomy, ale jeśli staniesz przed jednym z nich i pozwolisz mu się popchnąć, pozostaje on niebieski, mimo że jest teraz nieruchomy względem ciebie, i nie ma żadnych efektów ruchu na tle, mimo że się porusza. The red/blueshift of the ghosts also doesn’t seem to change as the speed of light ostensibly decreases.
The „what’s going on” supplement at the end (also downloadable in Powerpoint format from the web site) has some mistakes.
Light also behaves like a stream of particles called photons. Kiedy biegniesz w kierunku strumienia fotonów, więcej fotonów uderza w ciebie i obiekt staje się jaśniejszy. Ten efekt jest również znany jako Aberracja Relatywistyczna.
Po pierwsze, te efekty są klasyczne, więc kwantyzacja jest nieistotna. Po drugie, zwiększone tempo absorpcji fotonów odpowiada tylko za niewielką część wzrostu jasności. Po trzecie, aberracja odnosi się do zmiany kąta, a nie do większej ilości fotonów trafiających w ciebie.
Na tym slajdzie jest również obraz podpisany „poruszając się w lewo, obiekty po lewej są jaśniejsze niż obiekty po prawej”, mimo że to wyraźnie nie jest prawdą na obrazie (który jest podobny do obrazu na górze tej odpowiedzi). To powinno być prawdą, oczywiście. Trudno mi zrozumieć, jak nigdy w żadnym punkcie rozwoju nie zorientowali się, że ich shader był błędny, biorąc pod uwagę jego szalone wyjście.
Musisz być znacznie bliżej prędkości światła, aby zauważyć bardziej dramatyczne efekty Transformacji Lorentza w porównaniu z efektami Dopplera i Searchlight. Na końcu gry efekty Dopplera i Szperacza zostają usunięte, aby Transformacja Lorentza była łatwiejsza do zauważenia.
Tutaj mówią „Transformacja Lorentza”, ale wydaje się, że mają na myśli aberrację. Transformacja Lorentza nie jest „efektem”; to tylko sposób konwersji między układami współrzędnych. Układy współrzędnych są bez znaczenia i nie mają wpływu na to, co widzisz.
Obiekty normalnie poza twoim polem widzenia mogą stać się widoczne, gdy poruszasz się z prędkością bliską prędkości światła, ponieważ widzisz je tak, jak były w przeszłości.
Tak widzisz je tak, jak były w przeszłości, ale widzisz je w tym samym czasie przeszłym bez względu na to, jak szybko się poruszasz (zegary pokażą ten sam odczyt niezależnie od twojej prędkości, na przykład). Twoje pole widzenia rozszerza się, gdy poruszasz się do przodu z powodu aberracji, która jest najłatwiejsza do zrozumienia jako lokalny efekt spowodowany ruchem kamery/oczu, jak widać tutaj.
.