Ci sono alcuni seri problemi con il gioco. Vorrei averne sentito parlare nel 2012, quando ci sarebbe potuta essere qualche speranza di risolverli. Vorrei anche che Luboš Motl avesse notato i problemi nel 2012.
Penso che la simulazione di aberrazione sia corretta. È difficile dire della dilatazione del tempo e del ritardo del viaggio della luce perché non succede molto nel mondo di gioco, tanto per cominciare.
Il problema più grande è che la simulazione dello spostamento Doppler è assurdamente sbagliata.
Ecco uno screenshot del gioco:
Ecco uno screenshot simile preso a riposo, al quale ho applicato un “gradiente Doppler” usando il codice Doppler shift di Backlight, il raytracer 4D:
Certo non prenderei la seconda immagine come definitiva, ma è qualitativamente molto più vicina a come il gioco dovrebbe apparire. Gli oggetti bianchi illuminati dalla luce delle stelle hanno all’incirca uno spettro di corpo nero, quindi se spostati Doppler dovrebbero essere rossi, bianchi o blu, mai verdi o viola. Gli oggetti con colori desaturati dovrebbero apparire come arcobaleni desaturati (guarda il terreno, che è blu pallido a riposo). E la luminosità dovrebbe aumentare dolcemente mentre si guarda da destra a sinistra.
Il gioco non è open source, ma lo shader Doppler shift lo è, quindi gli ho dato un’occhiata.
Funziona indovinando uno spettro luminoso (rappresentato come una somma di Gaussiane nello spazio delle lunghezze d’onda) dalle componenti RGB della texture, scalandolo per il fattore di spostamento Doppler, convolgendolo con approssimazioni delle funzioni di corrispondenza dei colori XYZ (anch’esse somme di Gaussiane), quindi convertendo XYZ in RGB. Questo è ragionevole.
Il primo problema è che invece di indovinare un ampio spettro che approssima un corpo nero solare quando il colore è grigio/bianco, indovinano stretti picchi a 463nm, 550nm e 615nm. Questo non è realistico, ed è la ragione di tutti gli strani colori nella metà destra dello screenshot.
I colori brillanti sulla sinistra sono dovuti ad un’altra strana decisione di progettazione. Insieme a RGB supportano i canali di colore IR e UV che possono essere visti solo quando sono spostati Doppler nella gamma visibile, il che è una buona idea. Ma sono di nuovo picchi netti nello spettro, e le texture controllano la lunghezza d’onda dei picchi, mentre le ampiezze sono fisse. Per l’UV, si sceglie una lunghezza d’onda da 0nm a 380nm (effettivamente una gamma infinita), mentre per l’IR è da 700nm a 1100nm (meno di una gamma 2:1). La ragione per cui si vedono arcobaleni RGB luminosi in ogni texture quando si è in blueshifted, ma non quando si è in redshifted, non ha nulla a che fare con la fisica. È perché puoi mettere il picco UV obbligatorio a 0nm dove non sarà mai visibile, ma non puoi nascondere il picco IR obbligatorio.
Anche la scalatura della luminosità sembra essere sbagliata. Moltiplicano la larghezza delle gaussiane per il fattore di redshift, che scala l’energia integrata per lo stesso fattore, poi dividono per il fattore di redshift al cubo. Come risultato la loro legge di Stefan-Boltzmann è $σT^2$ invece di $σT^4$. Avrebbero dovuto dividere per la quinta potenza.
Sembra anche che ci siano problemi con il codice di conversione da spettro a RGB – l’arcobaleno sulla sinistra avrebbe strisce ROYGBIV, non solo RGB, se convertito correttamente.
Un altro problema minore è che sembrano calcolare gli effetti in base a quanto forte stai spingendo il joystick, non quanto velocemente ti stai effettivamente muovendo. Ad esempio, i fantasmi in movimento appaiono spostati in rosso/blu quando siete fermi, ma se vi mettete di fronte a uno di essi e vi fate spingere, rimane spostato in blu anche se ora è fermo rispetto a voi, e non ci sono effetti di movimento sullo sfondo anche se è in movimento. Anche lo spostamento rosso/blu dei fantasmi non sembra cambiare quando la velocità della luce apparentemente diminuisce.
Il supplemento “cosa sta succedendo” alla fine (scaricabile anche in formato Powerpoint dal sito web) ha alcuni errori.
La luce si comporta anche come un flusso di particelle chiamate fotoni. Quando corri verso un flusso di fotoni, più fotoni ti colpiscono e l’oggetto diventa più luminoso. Questo effetto è anche conosciuto come Aberrazione Relativistica.
In primo luogo, questi effetti sono classici quindi la quantizzazione è irrilevante. Secondo, l’aumento del tasso di assorbimento dei fotoni rappresenta solo una piccola parte dell’aumento di luminosità. Terzo, l’aberrazione si riferisce a un cambiamento di angolo, non a più fotoni che ti colpiscono.
Su questa diapositiva c’è anche un’immagine intitolata “muovendosi a sinistra, gli oggetti a sinistra sono più luminosi di quelli a destra”, anche se questo chiaramente non è vero nell’immagine (che è simile all’immagine in cima a questa risposta). Dovrebbe essere vero, naturalmente. È difficile per me capire come non abbiano mai capito, in nessun momento dello sviluppo, che il loro shader era buggato, dato il suo output pazzesco.
Devi essere molto più vicino alla velocità della luce per notare gli effetti più drammatici della Trasformazione di Lorentz rispetto agli effetti Doppler e Searchlight. Alla fine del gioco, gli effetti Doppler e Searchlight vengono rimossi per rendere la Trasformazione di Lorentz più facile da vedere.
Qui dicono “Trasformazione di Lorentz” ma sembrano intendere l’aberrazione. La trasformazione di Lorentz non è un “effetto”, è solo un modo di convertire tra sistemi di coordinate. I sistemi di coordinate sono privi di significato e non influenzano ciò che vedi.
Gli oggetti normalmente al di fuori del tuo campo visivo possono diventare visibili quando ti muovi vicino alla velocità della luce, poiché li vedi come erano nel passato.
Sì, li vedi come erano nel passato, ma li vedi allo stesso tempo passato indipendentemente da quanto velocemente ti stai muovendo (gli orologi mostreranno la stessa lettura indipendentemente dalla tua velocità, per esempio). Il tuo campo visivo si allarga quando ti muovi in avanti a causa dell’aberrazione, che è più facilmente comprensibile come un effetto locale dovuto al movimento della tua macchina fotografica/occhio, come si vede qui.