To make a relief map using Blender, you’ll need to fist install a few tools. The first are some command line utilities in a package called Gdal. The easiest way to install these on a Mac is my first installing the homebrew package manager.

Install Homebrew (Mac)

You can see the instructions to install homebrew on their website. Or copy-and-paste the following command in your Terminal. This will require your computer password to complete the installation.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Note: this step may take a short while to complete.

Install Gdal Package

Once Homebrew is installed, you’ll need the GDal Package:

brew install gdal

Install Blender

You can install Blender from its website at: https://www.blender.org/download/.

Blender download

Alternatively, you can also install Blender via homebrew.

brew cask install blender

Either way, you should also run this command in your Terminal to setup a alias that we will use later to export your hillshade relief image.

echo '​alias blender="/Applications/Blender/blender.app/Contents/MacOS/blender"' >> ~/.bash_profile

Then type:

source ~/.bash_profile

Install BlenderGIS Plugins

Blender is a 3D editing software, but we’re going to use it to do all sorts of things with cartography. In order to enable these features, we’ll install the BlenderGIS Plugin.

You can download the .zip file directly from this URL, which is hosted on the domlysz/BlenderGIS Github page.

Next, launch Blender, which should be in your Applications folder. (Some Mac software issues a security warning the first time you launch it. Click “Open” to continue.)

Once in Blender, go to the Edit menu and open Preferences.

Edit preferences

Next, click the add-ons tab.

Add-ons tab

Next, navigate to the add-on .zip file you downloaded and install add-on file.

Install add-on file

Next, check the small box to activate the add-on.

Check box

The GIS data can be found under a new GIS tab in Blender, which we’ll use later.

GIS tab

Create an account on NASA Earth Data

To download the map tiles you’ll need, create an account on NASA Earth Data.

NASA Earth Data Account

Downloading Earth Tiles

Derek Watkins at the New York Times runs a convenient website for downloading 30m tiles. You’ll need to be logged into your NASA Earth Data account to download them however.

Download tiles

Derek also runs a similar website for downloading larger 90m tiles over a wider region. The USGS site also runs a similar service for downloading NASA SRTM collections.

Prepping the SRTM Tiles for Blender

For this example, I downloaded tile N37W123.hgt, but you should swap out the file name for the one you have. When downloading from on of the above sources, you may have ended up with a zip file (unzip it first), or a .tif file, which will work as well.

In this first step, we use gdal_translate to convert to support floating point values, and convert to tif if it isn’t already in that format. The new file name will have _float appended.

gdal_translate -ot Float32 N37W123.hgt N37W123_float.tif

Next, we’ll reproject the file as ESPG:3857, which seems to work better with Blender.

gdalwarp -s_srs EPSG:4326 -t_srs EPSG:3857 N37W123_float.tif N37W123_reprojected.tif

(note: For sake of cleanliness, you can delete the original .hgt and _float files.)

When we import to Blender, it will strip out the world file data in our tif. So, this next step will save the TFW world file data in a separate file, and when we’re done with Blender, we’ll rejoin it.

gdalwarp -co "TFW=YES" N37W123_reprojected.tif deleteme.tif

The gdal_warp command will generate two files: deleteme.tif and deleteme.tfw. Delete the deleteme.tif but keep the .tfw to use with QGIS later on.

Making a Blender Map

1. Remove default cube

First, delete the default cube in the center of your workspace by clicking on it and pressing the delete button on your keyboard (rather than backspace).

2. Use cycles render engine

Next, let’s change the a setting to use the cycles render engine by clicking the small Render Properties tab.

Cycles Render

3. Import tif using georeferenced raster

Next, we’ll import our tif file. Go to our new GIS menu we installed from the add-on and select Georeferenced Raster.

Import georeferenced raster

Navigate to the file, but don’t double-click the file just yet. If you do, delete it and re-import it with the proper settings:

Mode: DEM Texture
Subdivision: Subsurf

Import settings

4. Adjusting render setting

After importing, in your Modifier Properties set the Render setting to 11.

Modifier Properties

5. Add new material

Next, click on you Materials Properties and add a new material.

Materials property 1

Materials property 2

6. Adjust Z scale

Next, we’ll adjust the Z scaling, which represents the level of exaggeration in the elevation of our relief. This can be found in the Object Properties under transforms. Set your z scale to 7.

Z scaling

7. Setup georender dimensions

Next, under the GIS menu, select Camera and Georender.

Georender

Outside of Blender, go to your Finder and click on the original .tif image file we had imported into Blender. Press Command + i to show information about the file. We’re looking for the file’s pixel dimensions, so we can setup our Blender export to match the pixels of the original file exactly.

Finding the dimensions

Under the Output Properties panel in Blender, we’ll set the X and Y resolution to match the original file’s dimensions.

Change output properties

8. Setup sun light intensity and direction

Next, in the upper right-hand corder, expand the Object setting, and click Light.

Click light

In the Object Data Properties, change it to sun properties, and click on the use nodes button.

Change light properties

Set the strength to 4. You can optionally go to the Object Properties panel, and adjust the rotation of the sun’s location under the Transform section. Ideal settings for the sample relief were Rotation X=0, Y=40 and Z=112.5. The Y is the elevation of the sun and z is the azimuth, which is calculated counterclockwise from the East.

Change strength four

9. Setup final render setting

Next, we’re ready to render. In the upper right-hand side, click back on camera and click the Render Properties panel. Set the Render setting to 200. Then, click on the menu by Light Paths and select the option for “Limited Global Illumination” which will auto fill the preset settings. You can also check both reflective and refractive caustics for more realistic shading.

Render settings

Exporting

Exporting is so much quicker using the command line rather that the GUI. Go to file and save as saving the file in the same project folder as the original tif. Save your file test.blend. Close Blender.

Next, using the command line in Terminal, navigate to the folder and run the following command. This command will create an output file called hillshade.tif, so don’t worry if it doesn’t exist just yet.

blender -b test.blend -o hillshade.tif -f TIFF -f 1

This will take a while to render. Once it’s complete, it will generate the hillshade file in your project folder. Remember the deleteme.tif? Change both deleteme.tfw file name and the output hillshade tif to hillshade. So now you should have two files: hillshade.tif (previously hillshade.tif0001.tif) and hillshade.tfw (previously deleteme.tfw). And now dump your hillshade.tif into qgis and reproject to your desire projection.

About this Tutorial

This tutorial was originally written by Jeremy C.F. Lin and recreated by Jeremy Rue.