Det finns några allvarliga problem med spelet. Jag önskar att jag hade hört talas om det 2012 när det kanske fanns något hopp om att åtgärda dem. Jag önskar också att Luboš Motl hade uppmärksammat problemen 2012.
Jag tror att simuleringen av aberration är korrekt. Det är svårt att säga något om tidsutvidgning och ljusresans tidsfördröjning eftersom det inte händer så mycket i spelvärlden till att börja med.
Det största problemet är att simuleringen av dopplerförskjutningen är löjligt fel.
Här är en skärmdump från spelet:
Här är en liknande skärmdump tagen i vila, som jag applicerat en ”Dopplergradient” på med hjälp av kod för Dopplerförskjutning från Backlight, 4D raytracer:
Jag skulle absolut inte ta den andra bilden som slutgiltig, men den ligger kvalitativt mycket närmare hur spelet borde se ut. Vita objekt som belyses av stjärnljus har ungefär ett svartkroppsspektrum, så när de dopplerförskjuts bör de vara röda, vita eller blå, aldrig gröna eller lila. Objekt med avmättade färger bör framstå som avmättade regnbågar (titta på marken, som är blekblå i vila). Och ljusstyrkan ska öka jämnt när du tittar från höger till vänster.
Spelet är inte öppen källkod, men Doppler shift shadern är det, så jag tog en titt på den.
Den fungerar genom att gissa ett ljusspektrum (representerat som en summa av Gaussianer i våglängdsrymden) från RGB-komponenterna i texturen, skala det med dopplerförskjutningsfaktorn, konvolvera det med approximationer av XYZ-färgmatchningsfunktionerna (också summor av Gaussianer) och sedan konvertera XYZ till RGB. Det är rimligt.
Det första problemet är att i stället för att gissa sig fram till ett brett spektrum som närmar sig en svartkropp i solen när färgen är grå/vit, gissar de sig fram till smala toppar vid 463nm, 550nm och 615nm. Det är helt enkelt inte realistiskt, och det är orsaken till alla konstiga färger i den högra halvan av skärmbilden.
De ljusa färgerna till vänster beror på ett annat märkligt konstruktionsbeslut. Tillsammans med RGB har de stöd för IR- och UV-färgkanaler som endast kan ses när de är dopplerförskjutna in i det synliga området, vilket är en bra idé. Men de är återigen skarpa spikar i spektrumet, och texturerna styr spikarnas våglängd medan amplituderna är fasta. För UV väljer du en våglängd från 0nm till 380nm (i praktiken ett oändligt intervall), medan det för IR är 700nm till 1100nm (mindre än ett 2:1 intervall). Anledningen till att du ser ljusa RGB-regnbågar i varje textur när den är blåförskjuten, men inte när den är rödförskjuten, har inget med fysik att göra. Det beror på att man kan placera den obligatoriska UV-spetsen vid 0nm där den aldrig kommer att synas, men man kan inte dölja den obligatoriska IR-spetsen.
Hällbarhetsskalningen verkar också vara fel. De multiplicerar Gaussarnas bredd med rödförskjutningsfaktorn, vilket skalar den integrerade energin med samma faktor, sedan dividerar de med rödförskjutningsfaktorn i kubik. Som ett resultat av detta är deras Stefan-Boltzmann-lag $σT^2$ i stället för $σT^4$. De borde ha dividerat med femte potensen.
Det verkar också finnas problem med koden för konvertering från spektrum till RGB – regnbågen till vänster skulle ha ROYGBIV-strimmor, inte bara RGB, om den hade konverterats på rätt sätt.
Ett annat mindre problem är att de verkar beräkna effekterna baserat på hur hårt man trycker på joysticken, inte på hur snabbt man faktiskt rör sig. De rörliga spökena verkar t.ex. röd/blåförskjutna när du står stilla, men om du ställer dig framför ett av dem och låter det knuffa dig förblir det blåförskjutet trots att det nu står stilla i förhållande till dig, och det finns inga rörelseeffekter på bakgrunden trots att den är i rörelse. Spökenas röd-/blåförskjutning verkar inte heller förändras när ljusets hastighet skenbart minskar.
Det ”vad händer”-tillägget i slutet (som också kan laddas ner i Powerpoint-format från webbplatsen) har en del fel.
Ljuset beter sig också som en ström av partiklar som kallas fotoner. När du springer mot en ström av fotoner träffas du av fler fotoner och föremålet blir ljusare. Denna effekt är också känd som relativistisk aberration.
För det första är dessa effekter klassiska så kvantisering är irrelevant. För det andra står den ökade hastigheten för absorptionen av fotoner endast för en liten del av ljushetsökningen. För det tredje hänvisar aberration till en förändring av vinkeln, inte till att fler fotoner träffar dig.
På den här diabilden finns också en bild med rubriken ”rör man sig åt vänster är objekten till vänster ljusare än objekten till höger”, trots att det helt klart inte stämmer i bilden (som liknar bilden högst upp i det här svaret). Det borde naturligtvis vara sant. Det är svårt för mig att förstå hur de aldrig vid något tillfälle under utvecklingen kom på att deras shader var buggig med tanke på dess galna utdata.
Man måste vara mycket närmare ljusets hastighet för att märka de mer dramatiska effekterna av Lorentztransformationen jämfört med Doppler- och Searchlight-effekterna. I slutet av spelet tas Doppler- och Searchlight-effekterna bort för att göra Lorentztransformationen lättare för dig att se.
Här säger de ”Lorentztransformation” men verkar mena aberration. Lorentztransformationen är inte en ”effekt”, det är bara ett sätt att omvandla mellan koordinatsystem. Koordinatsystemen är meningslösa och påverkar inte vad du ser.
Objekt som normalt ligger utanför ditt synfält kan bli synliga när du rör dig nära ljusets hastighet, eftersom du ser dem som de var i det förflutna.
Ja, du ser dem som de var i det förflutna, men du ser dem vid samma förflutna tidpunkt, oavsett hur snabbt du rör dig (klockor visar samma avläsning oberoende av din hastighet, till exempel). Ditt synfält vidgas när du rör dig framåt på grund av aberration, som lättast förstås som en lokal effekt på grund av kamerans/ögats rörelse, vilket ses här.