Use OpenGL compute shader for orbital computation of asteroids
Currently all orbital computations are performed on the CPU, each asteroid by itself. Loading large numbers (10000 or more) of asteroid orbital elements causes a massive slowdown.
Compute shaders run on GPU and can work on lots of data simultaneously in SIMD style. It should be possible to transfer orbital computations (elliptical orbits only) to the GPU, if the current GPU hardware supports this. Kepler's equation requires iterations, so this requires finding a fixed number of cycles where the solution is guaranteed to have converged (remains stable).
A CPU-based fallback must remain available though.
For a start (and later, as fallback solution), QArrays should be used with all asteroid orbital data. During development, we can also find out the nr of iterations for Kepler's equation required for a sample of 10000+ different objects. Maybe there must be several classes for different eccentricities.
There should also be an option to render the whole asteroid belt as point cloud. Point size should be variable, so that distribution of asteroids can be shown in the sky.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- gzotti
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- New
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by