Assignment 0
Nanaki Singh
- Text Data
ChatGPT Prompt: If I had to create a 3D render of Earth, taking special care of modelling its terrain above ground and underwater, how would I go about doing so from a collection of satellite images?
Answer:
Download a global color mosaic (e.g., Sentinel-2 cloudless or NASA Blue Marble), a land DEM (Copernicus DEM/SRTM), and global bathymetry (GEBCO or ETOPO); in QGIS/GDAL, reproject everything to WGS84 (EPSG:4326) and resample to a common resolution (e.g., 8192–16384 px width) using gdalwarp, then mosaic tiles with gdal_merge; cloud-mask and color-balance your surface imagery, and fill any DEM voids; build a single elevation raster by prioritizing land heights over seafloor depths (Raster Calculator: if(land_dem > 0, land_dem, bathy)—GEBCO depths are negative), smooth seams with a small Gaussian or gdal_fillnodata, and export two equirectangular maps: color.png (8-bit) and height.tif (16/32-bit meters); optionally create a normal map from the height with gdaldem slope/aspect or bake in Blender for crisper lighting; in Blender, add a UV Sphere, Subdivision Surface, switch Cycles to Experimental and enable Adaptive Subdivision (micro-displacement), plug color.png into Base Color and height.tif into a Displacement node (Material → Settings → Displacement: “Displacement and Bump”), set displacement scale to a sensible exaggeration (real Earth relief is tiny vs. radius—start ~50–100× and tune), derive a water mask from the height (<0) to mix a glossy/translucent water shader over oceans and a Principled land shader for terrain, and add a thin volumetric layer or Fresnel for glints; light with a Sun + Nishita sky, enable Filmic and denoising, and render; for close-ups, swap the global height/texture with higher-res regional tiles, keep everything in the same projection, and use LOD (multiple displacement scales or Geometry Nodes) so you retain detail near camera without exploding polycount.

