/Digital-Earth

A renderer that generates realistic images of the Earth from outer space.

Primary LanguagePython

Demo shots 1080p
Earth render 1 Earth render 2
Earth render 1 Earth render 2

Overview

A renderer that generates highly realistic images of the Earth from outer space. (Note: Requires a beefy GPU to run, RTX 3070 or above)

Rendering is done with Path Tracing in participating media.

  • Uses measured data for density and light response (extinction coeficients and scattering functions) of atmospheric gases.
    • Rayleigh scatterers: Nitrogen (N2), Oxygen (O2), Carbon Dioxide (CO2)
    • Mie scatterers: Water vapour
    • Other absorbers: Ozone (O3)
  • Textures from NASA for ground albedo, water bodies, topology, clouds.
  • Spectral rendering to get an accurate representation of colours.
  • OpenDRT for conversion from HDR->SDR (https://github.com/jedypod/open-display-transform)
  • Camera Response Function for filmic look

Taichi Lang documentation: https://docs.taichi-lang.org/

Step-by-step Installation

  1. Install dependencies of the renderer. (Assuming you have Python)
pip install -r requirements.txt
  1. Then download textures from here (google drive) and drag them into the textures folder.

  2. Finally, to run Digital Earth,

python main.py

Controls

  • Drag with your right mouse button to rotate the camera.
  • Press W/A/S/D to move the camera.
    • Press 'Q' to rotate the camera to Earth's surface
    • Press 'E' to reset camera rotation
    • Press SPACE to go up
    • Press CTRL to go down
  • Press P to save a screenshot.