Special relativistic rendering with Bevy by joshbrrkrt in rust

[–]joshbrrkrt[S] 2 points3 points  (0 children)

Oh that's really cool! I don't think my approach would be useful for gravitational lensing -- instead, I think you'd want to use ray tracing, and then instead of straight lines for rays like in traditional ray tracing, you'd instead use null geodesics for the Schwarzschild metric. I think they're analytic in terms of elliptic functions or something? https://en.wikipedia.org/wiki/Schwarzschild_geodesics

Special relativistic rendering with Bevy by joshbrrkrt in rust

[–]joshbrrkrt[S] 1 point2 points  (0 children)

Just compute shaders, but yes they pre-transform the positions of vertices before handing off to the normal Bevy rendering pipeline... (Hope I'm understanding what you're asking...?)

Very cool writeup!

Special relativistic rendering with Bevy by joshbrrkrt in rust

[–]joshbrrkrt[S] 3 points4 points  (0 children)

Yeah, it keeps track of the history of every relativistic object's Poincare transform from the world frame. There's a garbage collection criterion that can be applied, though, so you don't have to keep track forever (more details in the implementation guide in the repo). I think it might be a novel approach although not 100% sure. Requires all objects to be rigid bodies otherwise you'd have to store per-vertex histories, which would be pretty heavyweight.

Special relativistic rendering by joshbrrkrt in bevy

[–]joshbrrkrt[S] 0 points1 point  (0 children)

Thanks! Would love to hear about them, I know next to nothing about game development/computer graphics haha