I am teaching a Blender class and my advanced students are animating a scene in Charleston Harbor set during the Civil War. Since I am a CAD guy, creating a scaled version of a harbor chart using AutoCAD and Inventor was easy for me but creating a varied elevation was not. I extruded the landscape to an elevation of 20 feet it is flat. I'd like some help finding an easy way to give the mesh a varied height based on the harbor chart shown below. I plan to use the chart as a texture over everything.

You can find the text I am using at http://www.cdschools.org/cms/lib04/PA09000075/Centricity/Domain/81/BlenderBasics_4thEdition2011.pdf. On pages 32 & 33 of that text it shows a process similar to what I have in mind that divides a plane into squares and changes the height by selection and movement of vertices upward. That would work for this but I don't know a way to make an accurate measurement of height for movement of a mesh as large as the one I am using (8 x 10 nautical miles). One can scale an object by typing the scale factor. Can I move vertices up in that manner?

Is there a way you can show me that allows me to paint height areas rather than to drag them up? It would be great if I could add the harbor chart over the land areas as a texture and use it as a guide for changing the elevation of pertinent areas. enter image description here

  • $\begingroup$ I would try to do the landscape deforming/displacing a plane using grayscale images describing the topography blender.stackexchange.com/questions/27451/… $\endgroup$
    – user1853
    Mar 31, 2015 at 15:37
  • 2
    $\begingroup$ Deform modifier with that image set might work. This entire project would be more suited for Revit or TerraModel,. $\endgroup$
    – ruckus
    Mar 31, 2015 at 16:24
  • $\begingroup$ I would agree with cegaton. Also to answer your question about manual editing - you can go to edit mode press C for circle selection(adjust the size with scroll), paint vertices you want, then press G to grab, then Z to lock to the z axis (or X, or Y if your plane is rotated) and then type numeric value to precisely elevate the area. You can also turn on a proportional editing to fight the steep edges. Actually the book you gave explains everything I said... $\endgroup$
    – ualogic
    Mar 31, 2015 at 16:49
  • $\begingroup$ If you are looking for accurate topographic data, the USGS has all the elevations map you might need on the National Elevation Dataset $\endgroup$
    – user1853
    Mar 31, 2015 at 17:01
  • $\begingroup$ Vitaliy, I agree that you can do this, but can I add the harbor chart to the plane as a texture/guide so that I can use it to paint the vertices and elevate them? Your comment about locking the z axis and then typing the precise elevation reinforces what I thought could be done. Cegaton, this does not have to be too accurate. The highest elevation is 20'. I will try to find that dataset though. A Radish, I don't have TerraModel or Revit, but I'll look at the Deform modeler. Thanks $\endgroup$ Mar 31, 2015 at 18:59

2 Answers 2


A map with 3D elevation can be generated from images.

enter image description here

In Blender 2.76, here is a workflow for generating elevation maps.

  1. Obtain elevation data as an image. For example, potential sources are http://viewer.nationalmap.gov/basic/ , http://eros.usgs.gov/elevation-products , or http://earthexplorer.usgs.gov/ .

  2. Import the image as a plane. This may require enabling the 'import as plane' add-on.

import image as plane

  1. Go into edit mode and subdivide the plane lots of times - 10 to 16 times works well. The more times you subdivide, the finer the elevation will be, but the slower blender will respond.


  1. Apply the displacement modifier to the plane. Choose the image that was imported as the texture.

  2. Adjust the displacement modifier to get a good scale for the displacement.


  1. For some visual effects, in Blender cycles, a color ramp can be used to color based on the altitude.

color ramp

A blend file with a south-east use map imported is here:


Here is a technique I have been incorporating into my workflow to create a landscape. First, I import the background image as a plane, or alternatively, create a plane and uv map the background image to it. This allows me to use the Blender outliner to show or hide the background image as I need.

Next I create a new grid object (or a subdivided plane, omitting or deleting "only faces" as necessary), leaving me with a grid containing only vertices. I reserve this grid, and make a copy to work with. The spacing of the vertices in the grid depend upon the requirements of the particular landscape, and the grid may not all be of uniform density. That is, there may be areas where the grid spacing is a vertex every 10 units, and others where the grid spacing is one vertex every 25 units. On one copy of this grid, I trace contour lines, for example, the water's edge, and the contours of the land, and sometimes of the water. Each contour is assigned to its own named vertex group for easy reference later. In marking the contours, I do not necessarily pay much attention to the grids.

I raise the contours to their respective elevations, and create large n-gon faces between a contour and the two contours adjoining it. I turn on the snap function, selecting "faces" as the target, and active element as the item to snap. I select the vertices, under the n-gon face, and move them along the z axis, and snap them to the n-gon face. When the vertices under an n-gon are all raised, I delete the face of the n-gon, and fill in the faces formed by the raised vertices. In some cases, especially along an edge, I may use an edge between adjacent contours instead of a face, and snap the intervenient vertices to the edge instead of to a face.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .