Relativistic Black Hole
I wanted something physically grounded that still runs fast on a single quad billboard and looks cool.
How the effect works: Ray bending, the shader imitates the path of light rays bent by gravity (Schwarzschild metric) directly in the orbital plane of each ray. Then accretion disk. Instead of marching through dense 3D volumes, disk intersections are calculated as angular plane crossings.
"Relativistic" here means mostly Doppler beaming, when matter orbiting towards the observer appears significantly brighter and shifted towards blue, while receding matter looks dimmer and redder. Neil Tyson's nyoo-o-om, but for light. Usually it's not that visible, but I like it a bit exaggerated, and my implementation got this disco ball feel, but real black holes are way more achromatic, and yes, it turns out that famous orange photo shows a false color used by scientists to represent radio waves and heat. ..Come to think of it, that makes sense.
So, also, there's this shadow & photon ring, that's ISCO boundary(innermost stable circular orbit) and the thin photon ring formed by light that loops around the horizon before reaching the camera.
Background lensing here is actually handled with the sky shader rather than screen texture distortion, yes, meaning ships, planets and any foreground objects actually never get distortion, sliced, I tried to distort all stuff, but it feels like such visual doesn't really suit my game. However, I'm still thinking about black holes in the game and what can -or should- be done with them.
Anyway, thanks for reading. Built with Godot and Rust via gdext. Happy to answer any technical questions.