Available at:
http://cppcms.com/files/makeahmap/makeahmap-1.3alpha.zipOne of the major change in this version is an approach to water/elevation relations.
The biggest change with AH3 update from my point of view is requirement that all water being at 0 altitude and that beaches need so have some slope to look nice... So a entirely new method is provided:
1. All ground "Starts" at +30 feet (configurable water_to_land_range/water_to_land_slope) and beaches are created at range of -30 to +30 feet giving accurate representation of shore lines.
2. All rivers and lakes moved to 0 altitude (from both above and below sea level)
3. Terrain elevations are modified to rather preserve the gradient and not absolute elevation values. (see notes below)
4. You can control the maximal allowed elevation for lakes/rivers to prevent to big altitude modifications (lake_alt_limit)
5. River width is now specified in feet and by default only major rivers are drown
6. In order to calculate the altitude modifications makeahmap now depends on a GPU that supports OpenCL (most recent GPU does by default), if makeahmap fails to start telling that no OpenCL.dll found - just run makeahmap_cpu.exe (also it would run slower - typical altitude optimization will take 1-2 min on CPU vs 10-15 seconds on GPU)
Additional changes: Reverted back generation of splat types and clipboard maps.
What I need from you:
1. See how acceptable good water generation is. You can find "mem.pgm" image that is generated during makeahmap.exe run in its directory to see altitude modifications made for water handling
2. Please see how splat types look well, try to edit groundmapping.csv suggest improvements
3. Please Post the textual output of makeahmap runs (the elevation optimization stuff timings) see example
- Latitude, longitude range and scale
Lat: 27.542 34.958
Lon: 29.433 38.107
Scale: 1.000
- Loading custom ground type mapping
- Loading GlobCover Data.
- Loading Digital Elevations Model data.
- Loading & processing shores data.
-- Total segments:1450523, maximal segment lenght:70.704
- Loading & processing rivers data...
--- Total river segments: 6612; max river segment length 7.940
Complete
- Updateing altitudes...
-- Converting water bodies to elevations map
--- Iceles and Lakes
--- Rivers
-- Calculating elevation modifications to bring water to 0 feet
Using:OpenCL solver running on GPU: GeForce GTX 960; computing units=8
Grid| Vertices| Time (s)|Iterations| Bandwidth GB/s
256x256| 42261| 0.034| 223| 14.392
512x512| 168587| 0.060| 346| 49.144
1024x1024| 673420| 0.263| 536| 67.378
2048x2048| 2691852| 1.440| 809| 73.943
4096x4096| 10763723| 8.645| 1253| 76.032
Total optimization time 10.442 s
Maximal correction range max=1678.000 min=-1368.000
Maximal land modificationt to below 0 alt 623
- Fixing ground types according to shorelines shapes... Done
- Saving ground types: splattype.bmp... Done
- Saving elevation data .raw and .bmp... Done
-- Maximal altitude (for use with TE bmp import) is 9977 feet
- Generating clibboard map... Done
NOTE:
How altitudes are modified, we create a huge "membrane" over water areas (the boundary conditions) and see how it scratches between rivers lakes and sea (mem.pgm) - once it is calculated we extract it from the elevations to bring the water down to 0. The membrane is calculated to minimize the "stretching energy" thus trying to preserve the gradient - it allow to create very gradual altitude modifications too keep natural "terrain texture" look.
Waiting for comments