General relativity 2: Alcubierre warp field and wormholes
Today’s blog post is the second in a series about our next big update, which we are calling “General Relativity”. In this post we’re talking about Alcubierre warp bubbles and wormholes.
Alcubierre warp bubble
SpaceEngine already has a “warp bubble” effect for ships, but it was a fake “artistic” effect. Now, with the addition of Moroz’s GR ray tracer, it’s possible to render it faithfully, with a realistic, physically-based effect.
The bubble shader works exactly like the Kerr black hole shader described in the previous blog post, with two stages used to help improve performance: low-resolution geodesic tracing, and full-resolution background distortion. The warp metric is also much simpler than the Kerr-Newman one, resulting in improved performance. Since it doesn’t have a horizon and is very smooth, it retains good visual fidelity even when the low-res pass resolution is set to 0.1.
The video above shows how the warp bubble looks from different points of view. Note that we have one serious physical limitation: this is a slower-than-light (STL) warp bubble. Rendering a faster-than-light (FTL) warp bubble is possible, but impractical in SpaceEngine. While you are piloting a ship, the camera is “attached” to it, i.e. it moves with the same speed as the ship at some fixed distance from it, and from the point of the camera it appears that we are looking at the warp bubble from the outside. This is okay if the bubble is slower than light, but loses physical sense in the case of FTL, since while the ship inside the bubble can move at FTL-apparent speed (this is why a warp bubble is needed in the first place), nothing outside the bubble can do so–including the virtual camera. The equations simply “blow up”, and can’t render anything meaningful; as a compromise, the program always renders the bubble as though it is STL.
However, there are two other solutions which are possible: proper FTL bubble rendering when the camera is located inside the bubble (cockpit view), and when a stationary observer is looking at a bubble flying past it. These features are something we will look at implementing in a future update.
The warp shader also distorts the image of the ship loaded inside the bubble. This is due to the implementation of the bubble, which is done through screen-space approximation: the engine first renders the ship to the screen as if there is no warp bubble, then passes this image and its depth buffer to the warp shader. This comes with some known limitations (e.g. if part of the ship is beyond the border of the screen, the shader has no pixels to sample and outputs a transparent color), but the effect still looks very cool!
Wormholes are another way to travel faster than light through space. The Morris-Thorne wormhole has a metric which is similar to a Schwarzschild (non-rotating) black hole, but instead of having an event horizon, it connects space to another wormhole with a “throat” or “tunnel” (which may have zero length). This means that an observer outside of the wormhole can see another part of the Universe through the spherical surface, which replaces the event horizon. The video below shows an example of passing through a wormhole with zero throat length.
Although wormholes are not procedurally generated in the SpaceEngine Universe, they can be created as a mod. A famous example is “Saturn wormhole” in Doc’s Interstellar mod on the Steam Workshop. Wormholes are traversable both by free camera and by space ships, although in the latter case it may be a bit wonky because, as mentioned above, the 3rd person camera is attached to the ship at a distance. As a result, it has to be “teleported” to the exit wormhole’s throat at the same time as ship’s center intersects the wormhole sphere.
A small, human-size wormhole in VR literally looks like a hole in the Universe: while approaching it, the sky background appears like it is drawn on a wall, the wormhole throat looks like a hole in that wall, and the exit of the throat looks like a hollow hemisphere with a (second) sky background drawn on its inner surface. In the center of the zero-length tunnel, both sides of the Universe look like two inside-out spheres attached to each other.
I highly recommend visiting a wormhole in VR and playing with its parameters in the editor (parameters Radius, TunnelLength and LensingWidth)!
The picture below shows a wormhole with a tunnel length of five radii compared to a tunnel length of zero. Light rays can make multiple loops around the four-dimensional tunnel, which is why we see a ringed structure.
Wormhole Throat Length Comparison
In our next blog post about the General Relativity update we will talk about volumetric accretion disks around black holes and neutron stars. Stay tuned!