I’ve been working on a project like this for the past several months. There is, unfortunately, no good way to do this in Blender.
-
You can import .svg files into Blender. This is great because it does all the tracing for you. However, the types of curves that it imports as (without option) are just spline cures which cannot be “lofted” or skinned. Blender does not allow the conversion from one type of curve to another. Not to mention that NURBs curves from the Add -> Curves -> NURBs Curve menu cannot be lofted, but NURBs curves from the Add -> SURFACES -> NURBs Curve CAN be lofted. Also, all the curves that are lofted have to have exactly the same number of vertices. No, there’s no easy way to do that.
-
You can Fill, Beautify fill, loft, etc mesh lines as well, fairly automatically. Additionally, you don’t have to have the same number of verts in each curve to loft from one to another. And there’s a beautiful tool called “Bridge” that comes in the new builds which will interpolate intermediate contours.
The problem with both methods above is that neither is able to take into account the fact that these are TERRAIN contours. There are lots of way to skin these contours that are impossible in real life. Either of these methods is tolerably accurate and easy provided that you have only a very simple hill. Several concentric circles that don’t do anything very strange works just fine. This is not, however, the case with the terrain on our beloved Earth.
The only method that I’ve found that gets anywhere near reasonable ease and accuracy is to use a make-shift height map as a displacement texture. Yes, with gamma correction, value interpolation and the displacement modifier’s algorithm there’s a lot of guess work, but it’s the best I’ve found. Here are the steps:
Note: You must have a few things for this technique. You must have a rasterized image of your contours (bitmap, png, jpeg, tif, gif, really doesn’t matter except for compression rate). You must have an image manipulator (I used the GIMP, but you need something with a fairly robust filter set i.e. something that can Gaussian blur a lot).
-
Close all your contours. All the lines must either be closed circles or go off the page. Nothing other than contours. Erase all topographical markers.
-
Count the number of contours you have, specifically the gaps between the contours (I had 15). Divide 255 by that number (255/15 = 17). This is your differential.
-
Set your paint-bucket (or other fill tool) to a 255 white and to fill similar colors (rather than fill whole selection).
-
(You will want to use a new layer and use “sample merged” as it’s called in the GIMP. If you have the actual lines in the final it can cause problems). Starting with the highest elevation, fill that with pure white. Subtract your differential from that (255 - 17 = 238) and use that as your new color. Fill the next lower contour gap with that color. Rinse, repeat. (238 - 17 = 221; fill; 221 - 17 = 204; fill; etc.)
-
You should end up with a lovely banded version of your contour lines progressing from completely white at the highest point(s) down to completely black at the lowest.
-
Then you Gaussian blur the heck out of it. On an 8000x8000 image I used a blur radius if about 650. The goal is to eliminate the appearance of any solid colors without completely destroying the detail. This is where the guesswork starts. You’ll have to try different amounts of blurring to find out which one sufficiently eliminates the banding without destroying detail that you really want.
-
Now you have an image that you can use as a displacement map in a texture. (I recommend a displacement modifier instead of checking “disp” in the influence panel because you can do some subsurfing and smoothing with more control if you can place the disp in the stack where you want it). The “strength” value in the displace modifier will allow you to make the elevation what it should be for the given size.
Things to consider:
Gaussian blur tends to clip whites. Your highest peak(s) and lowest valleys will be too flat if you don’t do some color correction. Make sure you’ve got plenty of “room” in your color space to prevent crushing several very bright grays into plain white (or darks into plain black).
Avoid banding, where possible. Banding = data loss. There might not be anything you can do about it, but wherever there is a band, that place will be perfectly flat.
It will look funny when you take it into Blender. You’re going to have to do a lot of work with subsurfing before and after your disp, and I would also recommend the “smooth” modifier. It smooths like subsurf, but without adding geometry. Also, more polys is not better. You have to find the sweet spot. Too many polys and any subsurf or smooth will merely bevel the edges of your very “pixelated” terrai without getting rid of the “pixels.”
There are other tools out there for converting 2D contours to 3D terrain and I’m hoping to find something that will create a file type that Blender recognizes (check out the add-ons too, Blender will read almost anything.)
Good luck…