SolarSystem-3D icon indicating copy to clipboard operation
SolarSystem-3D copied to clipboard

3D scene with a model of the Solar System

Project logo

Table of contents

  • Overview
  • Features
  • Dependencies
  • Building (for Windows)
  • Limitations
  • Project screenshots and video snippets
    • Earth
    • The shadow of the clouds on Earth
    • View from the Moon to Earth
    • Phobos in the background of Mars
    • Jupiter
    • A video snippet of a flyover of Saturn
    • Saturn
    • Saturn with Titan from behind
    • Saturn with Mimas and Titan
    • Shadow of Titan
    • Uranus
    • Uranus from behind
    • Triton in the background of Neptune
    • Pluto
    • Sun
    • Sun with modified parameters 1
    • Sun with modified parameters 2

Overview

The project is an animated 3D scene with a model of the Solar System.

Features

  • ๐ŸŽฎ First-person camera control with acceleration and zoom capabilities
  • ๐Ÿ–ผ๏ธ High resolution textures (8K+) with dds extension
  • ๐Ÿ–ผ๏ธ Photoshop-processed skybox with high resolution textures (6K)
  • ๐Ÿ’ก High-quality shaders
  • ๐Ÿ’ก Blinnโ€“Fong reflection model with normal maps to visualise surface irregularities
  • ๐Ÿ’ก Accurate atmospheric scattering of planets and satellites
  • ๐Ÿ’ก Mie scattering and accurate shadows for planetary rings
  • ๐Ÿ’ก High-quality soft shadows using PCF and ray tracing
  • ๐Ÿ’ก Omnidirectional shadow maps simulation when using a single unidirectional shadow map
  • ๐Ÿ’ก Shadows from the clouds
  • ๐Ÿ’ก Lens flare
  • ๐ŸŽต Background music
  • โš™๏ธ A simple graphical user interface with all the information the user needs and for managing a small set of parameters (music volume, time control, planet and satellite hints control, sun parameters, etc.)
  • โš™๏ธ Using 3D models with obj extension for planets, satellites, planetary rings, etc.

Dependencies

Building (for Windows)

Run an auxiliary script from the command line to automatically run the necessary cmake commands using the .\build.sh command, while in the directory with the root CMakeLists.txt file (the root project folder). Then an exe file with all necessary dlls will appear in the build folder.

Limitations

Due to virtual memory limitations (mainly if the executable file is compiled with a 32-bit compiler and uses 32-bit libraries, as in my case), a bad_alloc exception may be thrown when launching the entire Solar System at once (with all planets, satellites, etc.).

Project screenshots and video snippets

If you want to see all the beauties of the Solar System in person, download the archive and run the executables I've specially prepared for you.

More screenshots and video snippets can be seen here.

Earth

Earth

The shadow of the clouds on Earth

The shadow of the clouds on Earth

View from the Moon to Earth

View from the Moon to Earth

Phobos in the background of Mars

Phobos in the background of Mars

Jupiter

Jupiter

A video snippet of a flyover of Saturn

A video snippet of a flyover of Saturn

Saturn

Saturn screenshot

Saturn with Titan from behind

Saturn with Titan from behind

Saturn with Mimas and Titan

Saturn with Mimas and Titan

Shadow of Titan

Shadow of Titan

Uranus

Uranus

Uranus from behind

Uranus from behind

Triton in the background of Neptune

Triton in the background of Neptune

Pluto

Pluto

Sun

Sun

Sun with modified parameters 1

Sun with modified parameters 1

Sun with modified parameters 2

Sun with modified parameters 2