Using free programs, I subject a matscale map to realistic erosion and transform the result into a 16-bit heightmap suitable for GIS. This method is no substitute for drawing an excellent pixel map by hand; you will get superior results by inputting superior pixel maps.
Wilbur can be found here: http://www.fracterra.com/wilbur.html
1. Open your pixel map in GIMP, Photoshop, or Paint.net.
2. If using GIMP or PS, Image > Mode > Greyscale
If using Paint.net, Adjustments > Black and White.
3. Fill the ocean with solid black, and delete your coasts by filling them with the lowest elevation step.
4. Recolour your elevation steps so that they go from dark to light. I use intervals of 15 value (the "V" in "HSV"), but you can use whatever. The first image is correct, the second image is not.
5. If using GIMP or PS: File > Export As > PNG.
If using Paint.net: File > Save As > GIF.
6. Open the image in Wilbur, File > Open.
(!) If you get the error "May not be of type Greyscale Image Surface," you didn't set the image mode to greyscale, or you saved your Paint.net image as something other than a GIF.
7. View > Zoom Out x2 (repeat until entire image is visible)
8. Filter > Noise > Fractal Noise
Set the operation to "Multiply." This adds fractal noise on top of your existing image. Fractal noise gives minor definition to your flat areas. Without this step, your coasts would erode away in future steps.
Randomize XY Origin and Seed by pressing the "Rand" button.
In my experience, X Scale should be (pixel width of your image / 1000)*2. Y Scale should be (pixel height of your image / 1000)*2. These values determine the area over which fractals will be generated. For our 750 x 500 image, I input 1.5 / 1.
If you're happy with the fractal noise, move on. If not, Edit > Undo and try again with a different seed.
(!) Any time you press undo, and sometimes randomly, Wilbur will show a black screen. Hit Texture > Recompute Lighting to get your image back.
9. Filter > Fill > Fill basins.
This operation will also fill your ocean.
10. To get your ocean back, first select the area that used to be ocean.
There are two ways to select in Wilbur: the magic wand, and the height range.
The magic wand can be found on the toolbar at the top of Wilbur. Right click it and check "Magic Wand Selection Options" to reveal the tolerance setting. Then select the magic wand, select what used to be your ocean, and tweak the tolerance until the former ocean is completely selected.
To use the height range, use Select > From terrain > Height range. You're looking for a range that includes as much ocean as possible, and no land. Since your ocean is the lowest point on the map, you can see its lowest height by going to Surface > Map Info, and looking at the "Lowest" field. This should give you a sense of your ocean's height. Sadly Wilbur can't show you a particular height.
The lowest point of this ocean is at height 0, so I tried ranges like -1 to 1, -1 to 5, etc. It's trial and error. If your selection includes any land, lower the max value of your range.
Regardless of method, you are sure to miss some bits of ocean. This is what I got from -1 to 3.
To select the remaining bits of ocean, select the magic wand, hold shift, and then click the parts of the ocean that you missed. If you can't do this without selecting some land, RIP that land.
11. Once your ocean is selected,
Filter > Mathematical > Offset (Add)
Put in -50 in the "Offset" box. This drops our former ocean below sea level.
12. Select > Deselect
13. Filter > Height clip
In min, put -1.
In max, put any number over 70,000.
This clips any elevation under -1 to -1, which will move our ocean back to approx sea level, and give it a constant height. Wilbur's max height is under 70,000, so your other elevations won't be affected.
14. Filter > Noise > Percentage noise. Put 2 in the Noise field and hit OK. This will rough up your basins and prepare them to be eroded.
[The next few steps utilize three functions, all found in Filter > Erosion.
- Precipitation-Based erosion, which simulates weathering.
- Incise Flow erosion, which simulates rain collecting and flowing into rivers.
- Erosion Cycle, which is a combination of the last two functions.
There is no correct combo of these functions, and different maps will react differently when each function is used. You should try different combos of each.]
15. Filter > Erosion > Precipitation-Based.
Input "10" in passes. This will run the precipitation-based erosion function ten times. You shouldn't be using this function in single-pass mode; it requires many passes to work. 5-10 is ideal.
16. Repeat steps 10-12 to get your oceans back in place. Make sure to run "height clip" - the erosion functions will destroy your coastlines if you run them when the ocean is lower than -1.
17. Repeat steps 15 and 16 as often as desired to simulate weathering. I ran the erosion function a total of 15 times.
18. Filter > Noise > Percentage Noise. Again input 2%.
19. Filter > Fill > Fill Basins. Repeat steps 10-12 to fill oceans.
20. Filter > Erosion > Incise Flow. Use the settings in this image as a starting point. You may need to adjust them; hit "Preview" to see what the different settings do.
21. Repeat steps 18-20 as often as desired to simulate rivers. I repeated them twice.
22. Select your oceans, and drop them -50 using the "offset" method described in step 11.
23. File > Save As > PNG Surface. This will save your heightmap. Save as 16-bit.
24. File > Save As > PNG Texture. This will save the Wilbur shaded topography (if you want it).
25. Filter > Noise > Percentage Noise. 2%.
26. Filter > Fill > Fill Basins.
27. Texture > Other Maps > River Flow. This will automatically generate rivers for your map. You can adjust the length to get more or less detail. Just try different options. I went with 0.02 length.
28. File > Save As > PNG Texture. This will save your river map.
29. Open the heightmap in Paint.net. You could probably do the next steps in GIMP or Photoshop, but I used Paint.net.
30. Adjustments > Posterize. Move the sliders until the map looks good. 14 seems to be a good number.
31. Use whatever colour scheme you want to fill in the elevation steps. Matscale isn't big enough. Leisscale is bigger and works better.
32. Open the river map.
33. Select a dark blue river with the magic wand tool, and set the flood mode to "global." See below for the dark blue I'm talking about. The flood mode is circled in red at the top.
34. Adjust the threshold until you get the desired river length. Edit > Copy.
35. Create a new layer above your heightmap. Layers > Add New Layer.
36. Paste the rivers into this layer. Edit > Paste.
37. Edit the result, especially to connect missing segments of rivers, and to clean up your eroded land borders. I skipped this step in my example.
38. Done! The map turned out okay (but IMO it looks far better than the original image). To make it better, I could have drawn a more detailed pixel map; the erosion process works best on interesting features.
I would annex the planets if I could; I often think of that.
1 post • Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest