Stellarium is a free GPL software which renders realistic skies in real time with OpenGL. It is available for Linux/Unix, Windows and macOS. With Stellarium, you really see what you can see with your eyes, binoculars or a small telescope.
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.
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
Whiteboard
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.
Original description: https://blueprints.launchpad.net/stellarium/+spec/improved-planet-rendering
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:
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
Whiteboard 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 - http://www.cg.tuwien.ac.at/hostings/cescg/CESCG-2005/papers/Brno-Josth-Radovan/index.html - Alex