Improve the openGL-based 3D planet rendering

Registered by Fabien Chéreau on 2009-01-12

The current rendering is very basic: planets are ellipsoids mapped with a rectangular texture, lightning is very basic (material parameters are the same for each planets), no shadow or bump mapping is performed, no atmosphere is rendered when a planet is seen from outside its atmosphere.

The goal is to improve the code related to 3D rendering so that the level of realism is improved. Main features would be:
 - Allow for 3D models, not only ellipsoids. This will allow proper rendering of non spherical asteroids, artificial satellites.
 - Improve lightning openGL parameters (material, etc..).
 - Allow for satellites/rings shadow on the mother planet.
 - Atmosphere rendering, at least for Earth and Mars.
 - Improve texturing with e.g. bump mapping.
 - Allow multi-resolution texturing (will probably be a separated project).

During the last refactoring the code where all these operations appear was grouped in a single place, thus making coding easier. The main method to modify is Planet::draw3dModel(...)

Skills needed: C++, OpenGL, geometry, Basic Astronomy
Difficulty: from average to difficult depending on the subtask

Blueprint information

Fabien Chéreau
Needs approval
Series goal:
Good progress
Milestone target:
Started by
Alexander Wolf on 2013-01-28


This seems to depend on getting projection off the CPU and onto the GPU. - Rob
Not really, most of these tasks are not directly related with the projection code. -Fab
Bumpmapping on the CPU? I have depth buffering ready to use when you want it, to enable moon orbits and lay the groundwork for more 3d work. Novgorod told me they have arbitrary 3d objects implemented already, maybe they could contribute their code. -Rob
Yeah it would be nice if you could provide some cleaned patches adding the features in the SVN trunk! -Fab

In fact future Qt release will comme with everything needed to load 3D models, this could be a good opportunity to do that.

Article "Real Time Atmosphere Rendering for the Space Simulators" by Radovan Josth - - Alex


Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.