An OpenGL Mode for Marble

shentey

Abstract

This project is about adding an OpenGL ES mode for Marble. Users should be able to choose between the classic software-based rendering mode, which should remain the default for now, and the new OpenGL mode. The major goal is to get basic features of maps, such as textures, float items and geo-located items, displayed using OpenGL.

Additional Information

Marble currently performs all rendering in software. This works reasonably fast on the desktop, but stalls can be experienced on weaker devices such as Netbooks or mobile devices. In any case, compromises must be made with respect to the map quality or rendering speed. OpenGL, however, offers high-quality results, is more state-of-the-art and perhaps helps to reduce power consumption on mobile devices. It therefore makes sense to introduce an OpenGL mode in addition to the sotware rendering mode in Marble. In case OpenGL doesn't seem like an option to the user, the user should be able to switch between software rendering and OpenGL mode.

The main task is to refactor the Marble codebase such that both the software rendering and the future OpenGL code share as much code as possible. In particular, visibility control (which objects should be rendered according to the current view parameters) should be factored out into separate classes, such that they can be reused in the OpenGL mode.

Code samples