My master thesis project was to research and develop a rendering technique for browsing globes in the software OpenSpace. Globe browsing refers to exploration of geospatial data on a virtual representation of a globe. The word globe is a general term used to describe nearly elliptical celestial objects such as planets, moons and asteroids.
My mission was to develop a fast and scalable rendering scheme for virtual globes within OpenSpace to be able to use in public presentations for space shows in planetariums and dome theatres. The work was conducted together with one more student of equal contribution. We worked on the project together with director of astro-visualization, Dr Carter Emmart, at the American Museum of Natural History; running the software in the Hayden Planetarium.
The rendering mechanism uses a chunked level of detail approach and special rendering techniques to avoid precision errors related to rendering large scale objects with small scale features such as planets.
The project was developed as a module in OpenSpace, programmed in C++ using OpenGL for graphics and lua for scripting and configuring. The software can handle 60 FPS on a modern GPU and renders globes with height map and textures down to 25 centimeters per pixel. Temporal datasets showing for example daily images of the Earths reflectance are possible to animate with corresponding positioning of the planets within the solar system.
We both worked very much together on the project and the design of the chunked level of detail rendering but I focused a lot on the rendering pipeline for layered textures, avoiding precision errors, optimization and texture reading abstraction using GDAL. Our github page shows all of the code that went in to this project.
Local patches of mars with data from images gathered by the Mars Reconnaissance Orbiter's CTX and HiRISE cameras. Color is sampled from a global texture dataset of higher resolution from NASA´s Viking missions.
Global image datasets put together by NASA´s GIBS team provides datasets which makes it possible to browse the globe both spatially and temporally.
The chunked level of detail rendering approach consists of handling a quad tree of chunks rendered as skirted grids. Invisible chunks can be culled to optimize rendering time.