Pelissä on vakavia ongelmia. Olisinpa kuullut siitä jo vuonna 2012, jolloin olisi ehkä ollut toivoa niiden korjaamisesta. Toivon myös, että Luboš Motl olisi huomannut ongelmat vuonna 2012.
Olen sitä mieltä, että aberraation simulointi on oikein. Ajanlaajenemisesta ja valon matka-aikaviiveestä on vaikea sanoa, koska pelimaailmassa ei alunperinkään tapahdu paljoakaan.
Suurin ongelma on se, että Doppler-siirtymän simulointi on naurettavan väärässä.
Tässä on kuvakaappaus pelistä:
Tässä on samanlainen levossa otettu kuvakaappaus, johon sovelsin ”Doppler-gradienttia” käyttäen Doppler-siirtymäkoodia Backlightista, 4D-raytracerista:
Kakkoskuvaa en todellakaan pitäisi lopullisena, mutta se on laadullisesti paljon lähempänä sitä, miltä pelin pitäisi näyttää. Tähtivalon valaisemilla valkoisilla kohteilla on suunnilleen mustan kappaleen spektri, joten Doppler-siirtymässä niiden pitäisi olla punaisia, valkoisia tai sinisiä, ei koskaan vihreitä tai violetteja. Väriltään kyllästymättömien kohteiden pitäisi näkyä kyllästymättöminä sateenkaarina (katso maata, joka on levossa vaaleansininen). Ja kirkkauden pitäisi kasvaa tasaisesti, kun katsot oikealta vasemmalle.
Peli ei ole avoimen lähdekoodin peli, mutta Doppler shift shader on, joten vilkaisin sitä.
Se toimii arvaamalla valospektri (joka esitetään Gaussin summana aallonpituusavaruudessa) tekstuurin RGB-komponenteista, skaalaamalla se Doppler-siirtymäkertoimella, konvolvoimalla se XYZ-värien yhteensovittamisfunktioiden approksimaatioilla (myös Gaussin summia) ja muuntamalla sitten XYZ RGB:ksi. Se on järkevää.
Ensimmäinen ongelma on se, että sen sijaan, että he arvaisivat laajan spektrin, joka lähentelee auringon mustaa kappaletta, kun väri on harmaa/valkoinen, he arvaavat kapeita piikkejä 463 nm:ssä, 550 nm:ssä ja 615 nm:ssä. Se ei vain ole realistista, ja se on syy kaikkiin outoihin väreihin kuvakaappauksen oikeassa puoliskossa.
Vasemmalla olevat kirkkaat värit johtuvat toisesta oudosta suunnittelupäätöksestä. RGB:n ohella ne tukevat IR- ja UV-värikanavia, jotka näkyvät vain, kun ne on Doppler-siirretty näkyvälle alueelle, mikä on hyvä idea. Mutta ne ovat taas teräviä piikkejä spektrissä, ja tekstuurit säätelevät piikkien aallonpituutta, kun taas amplitudit ovat kiinteitä. UV:lle valitaan aallonpituus 0 nm:stä 380 nm:iin (käytännössä ääretön alue), kun taas IR:lle aallonpituus on 700 nm:stä 1100 nm:iin (alle 2:1:n alue). Syy siihen, miksi näet kirkkaita RGB-sateenkaaria kaikissa tekstuureissa, kun ne ovat sinisiirtoisia, mutta eivät punasiirtoisia, ei liity mitenkään fysiikkaan. Se johtuu siitä, että voit laittaa pakollisen UV-piikin 0nm:iin, jossa se ei koskaan näy, mutta et voi piilottaa pakollista IR-piikkiä.
Kirkkauden skaalaus näyttää myös olevan väärin. He kertovat Gaussin leveyden punasiirtokertoimella, joka skaalaa integroidun energian samalla kertoimella, sitten he jakavat punasiirtokertoimella kuutioituna. Tämän seurauksena heidän Stefan-Boltzmannin lakinsa on $σT^2$ eikä $σT^4$. Heidän olisi pitänyt jakaa viidennellä potenssilla.
Myös spektri-RGB-muunnoskoodin kanssa näyttää olevan ongelmia – vasemmanpuoleisessa sateenkaaressa olisi ROYGBIV-juovia, ei vain RGB-juovia, jos se olisi muunnettu oikein.
Toinen pieni ongelma on se, että he näyttävät laskevan efektit sen perusteella, kuinka kovaa painat joystickiä, eikä sen perusteella, kuinka kovaa oikeasti liikut. Esim. liikkuvat haamut näkyvät punaisina/sinisiirtyneinä, kun olet paikallasi, mutta jos seisot yhden edessä ja annat sen työntää sinua, se pysyy sinisiirtyneenä, vaikka se on nyt paikallaan sinuun nähden, eikä taustassa ole liike-efektejä, vaikka se liikkuu. Aaveiden punainen/sininen siirtymä ei myöskään näytä muuttuvan, kun valon nopeus näennäisesti pienenee.
Loppupuolella olevassa ”mitä tapahtuu” -liitteessä (ladattavissa myös Powerpoint-muodossa nettisivulta) on joitain virheitä.
Valo käyttäytyy myös fotoneiksi kutsuttujen hiukkasten virtana. Kun juokset kohti fotonivirtaa, sinuun osuu enemmän fotoneja ja kohde kirkastuu. Tämä vaikutus tunnetaan myös nimellä relativistinen aberraatio.
Ensinnäkin nämä vaikutukset ovat klassisia, joten kvantittamisella ei ole merkitystä. Toiseksi, lisääntynyt fotonien absorptionopeus selittää vain pienen osan kirkkauden lisääntymisestä. Kolmanneksi aberraatio viittaa kulman muutokseen, ei siihen, että sinuun osuu enemmän fotoneja.
Tässä diassa on myös kuva, jonka kuvateksti on ”vasemmalle liikuttaessa vasemmalla olevat kohteet ovat kirkkaampia kuin oikealla olevat kohteet”, vaikka se ei selvästikään pidä paikkaansa kuvassa (joka on samankaltainen kuin tämän vastauksen yläosassa oleva kuva). Sen pitäisi tietysti pitää paikkansa. Minun on vaikea ymmärtää, miten he eivät koskaan missään vaiheessa kehitystyötä tajunneet, että heidän shaderinsa oli buginen ottaen huomioon sen mielettömän tuotoksen.
Pitäisi olla paljon lähempänä valon nopeutta, jotta huomaisi Lorentz-muunnoksen dramaattisemmat vaikutukset verrattuna Doppler- ja Searchlight-ilmiöihin. Pelin lopussa Doppler- ja Searchlight-efektit poistetaan, jotta Lorentz-muunnos olisi helpompi havaita.
Tässä sanotaan ”Lorentz-muunnos”, mutta näytetään tarkoittavan aberraatiota. Lorentz-muunnos ei ole ”efekti”, se on vain tapa muuntaa koordinaattijärjestelmien välillä. Koordinaattijärjestelmät ovat merkityksettömiä eivätkä vaikuta siihen, mitä näet.
Kohteet, jotka normaalisti ovat näkökenttäsi ulkopuolella, voivat tulla näkyviin, kun liikut lähelle valonnopeutta, koska näet ne sellaisena kuin ne olivat menneisyydessä.
Kyllä näet ne sellaisena kuin ne olivat menneisyydessä, mutta näet ne samalla menneisyydessä olleella ajanhetkellä riippumatta siitä, kuinka nopeasti liikutte (esimerkiksi kellot näyttävät samaa lukemaa nopeudestasi riippumatta). Näkökenttäsi laajenee, kun liikut eteenpäin aberraation takia, joka on helpointa ymmärtää kameran/silmän liikkeestä johtuvana paikallisena vaikutuksena, kuten tässä nähdään.