Use OpenGL compute shader for orbital computation of asteroids

Registered by gzotti on 2014-08-17

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

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.