Landscapes. We can hardly ignore them. They are everywhere. Mountains, hills, valleys, plains, rivers, seas; these precious nuggets of nature define our unique human experiences.
And because they are everywhere, landscapes are part and parcel of digital art.
A landscape forms a backdrop on which a digital artist presents a work of art. In a typical outdoor environment, it represents the floor of the world. Thus, you could say the sky is the ceiling.
The usual method of creating terrain is through procedural generation. Here, the artist uses a set of rules and algorithms to generate bulges and dimples that make up common land features.
Those sets of rules have to do with the use of bump, normal, and displacement maps, which by design, are meant to create the illusion of depth on the surface of a 3D mesh.
Although these maps can be randomly generated by the computer, they can also be based on predesigned or actual data. That means we could create landscapes that mirror real terrain on the earth’s surface. All we need is the reference data (thus the name – georeferencing).
In this article is an easy method for creating 3D landscapes in Blender using free geographical data from Google Maps and satellite imagery. For beginners, Blender is an open source 3D software that you can download for free from blender.org.
Without further ado, let’s create.
Geographic Information system (GIS)
The reference data that we will use will be sourced from the GIS – a system for documenting geographically referenced information. The GIS employs specific file formats depending on the particular type of data you’re dealing with. For instance Openstreetmap (OSM) files are native to the Openstreetmap collaborative project which amasses various geo data, including streets, buildings, and water courses.
Apart from Opensteetmap, there are many other GIS data sources that offer free access to geospatial data sets. Common ones are Esri open data hub and Natural Earth data.
Blender GIS Addon
Since Blender is not specially designed to handle GIS data, we will install a tailored addon.
The addon in question is called Blender GIS, and can be downloaded for free from github.
Blender GIS allows you to import data files in most common GIS formats. Some compatible formats are raster image, geotiff DEM, Shapefile vector, and OpenStreetMap xml.
With Blender GIS, you can also grab geodata directly from the internet, compute terrain mesh, and manage georeferencing information of your scene. There are many more powerful functionalities built into the addon, so you might want to check it out yourself.
How to install
Begin by downloading the Blender GIS Zip file from Github
Next, in Blender, navigate to Edit > Preferences > addons > install
The GIS feature should appear in your viewport
Importing Base maps and Height Data
In order to create a vibrant landscape, we need two things: the base map and height data.The base map is a digital photograph of the area you want to capture. Most base maps are drawn to scale to represent actual distances on the ground. We’ll get our base maps from Google maps.
The height data will help us define how the ground rises or falls in relation to the coordinates of the base map. Our source of height data will be NASA’s Shuttle Radar Topography Mission (SRTM) radar database.
To begin, click the GIS feature and navigate to web geodata > basemaps.
A small dialogue box will appear, asking you to select the source and layer. We’ll use Google for the source and satellite as the layer.
You’ll be presented with a world map with which you can interact within Blender. Isn’t that incredible? Now you can use the mouse wheel to zoom in and out.
You can also navigate directly to your desired location by hitting G on your keyboard and typing the name of the place. Use the middle mouse button to position the map precisely.
When you’re fully satisfied with your selection, hit the E button. This automatically captures your map and assigns it as an image material to a plane.
Next, we need to add height detail to our plane to give it topographical detail. To do that, head to the GIS addon again and navigate to web geodata > Get SRTM. Wait for some seconds for the program to fetch the data. You should now see some bumps on your map.
If you check the modifiers section, you’ll see that a displacement modifier has been added. You can tweak the height of your landscape with the strength value.
The last step is fine-tuning your landscape using shader nodes and subdividing your plane to add detail. Here’s what my landscape looks like after subdividing and changing the specularity, hue, and glossiness of the surface.
You could go further by adding some thickness to your model. But before you do that, you might want to apply the displacement modifier so it doesn’t get things messed up from here on.
Importing Streetmap Data
There’s no limit to how far you can go with your model. You could drop objects on the surface, add custom lights, or even include buildings, rivers, and streets using the import-streetmap tool.
From this point, whatever you choose to do is up to you.
Special thanks to the developer who created the blender GIS addon and made it available for everyone to use.