Page 4 of 6 FirstFirst 123456 LastLast
Results 31 to 40 of 57

Thread: [WIP] Atlas Maps of Valmere | From Real-World Height Data to Vector Map

  1. #31
    Guild Member Michi il Disperso's Avatar
    Join Date
    Jul 2020
    Location
    Parma (Italy)
    Posts
    65

    Default

    Quote Originally Posted by morne View Post
    usually 8 hours or so.
    eight WTF HOURS?

    lol i'm gonna find a faster method, or i'll finish my map by the time of retirement XD

  2. #32

    Default

    Quote Originally Posted by Michi il Disperso View Post
    eight WTF HOURS?

    lol i'm gonna find a faster method, or i'll finish my map by the time of retirement XD
    Sounds like a lot but I really only do it once a continent is finished, to reproject back to Equirectangular. So it’s really not that bad.

  3. #33
    Guild Member Michi il Disperso's Avatar
    Join Date
    Jul 2020
    Location
    Parma (Italy)
    Posts
    65

    Default

    Oh, you’re right! The inverse process: from equirectangular to conic is faster? I’m still struggling to have a big map exported

  4. #34

    Default

    Hey everyone, sorry this thread's been so quiet as of late.

    I kind of went off on a major tangent these past few days. I've been messing with and learning a lot about QGIS, and I think my goals for this project have just become more lofty... I finally figured out how to take the vectors layers of my roads, cities, topography, etc. etc. and import it into QGIS all with proper georeferencing. Here's my current road data overlayed with a basic topographic hillshade:

    Capture.PNG

    And the real kicker, with two clicks of a button I can reproject everything on the fly (equirectangular in this case):

    Capture.PNG

    This is really exciting for me because it means I can retain all of my data globally, not just the heightmaps, which is what my previous plan was. I'm still probably going to create the vector data in Affinity, simply cause the drawing tools are so much easier and flexible to work with, but once the data is in my "master" QGIS project, it'll be a cinch to reproject the data however I want to create all sorts of other maps, even exporting back out to svg to work with in Affinity designer again.

    The biggest help this will have currently is the little overview map in my atlas maps that shows the nation's footprint relative to the continental scale, which is in a different projection. I was reprojecting a tif image of the borders and redrawing them, but now I don't have to...
    Last edited by morne; 08-21-2020 at 01:54 AM.

  5. #35

    Default

    Minor update:

    Still working on getting the map situated in QGIS. Definitely learning a lot. Also, was unhappy with a few sections of the DEM being a little too "round," so I added some erosion with Gaea. In the meantime, here's a quicky map showing major lakes on the continent of Kador, calculated using QGIS (because why not):

    kador_lakes_area.jpg

  6. #36

    Wip Calculating optimal roads using QGIS

    Another quick update here. Still messing with QGIS. I've started to experiment with GRASS tools to calculate optimal routes through terrain to give me some decent looking automated roads. I think this method works less if you are trying to get highways, railways, and the like, since this basically tries to avoid steep terrain at all costs.

    Anyways, here you can see a small portion of my map.

    0.PNG

    First thing I did was generate a "travel cost" map, basically representing how "hard" it is to travel at certain points. For this, I used r.slope.aspect on my base DEM, and combined that with a rivers, lakes, and ocean mask. This travel cost map looks like:

    1.PNG

    Next, I used r.walk, passing in my DEM and travel cost map, to generate a cumulative cost map from the city Azherk to Roktoum. This ends up looking like this:

    2.PNG

    Lastly, I used r.drain, passing in my DEM and directional map from r.walk, to generate the actual road, starting at Roktoum and "draining" to the black area of the cumulative cost map. After some generous smoothing, I end up with this:

    3.PNG

    Not too shabby, if I do say so myself. For this to be a viable solution, I think I need to create an input that defines which cities are "neighbors" of other cities, and write a script that will follow this process for each unique pair of neighbors. If I had to do each pair manually, like I have been, I may as well just draw roads by hand. There's probably an opportunity to use Dijkstra's algorithm in there somewhere, too. Another issue is overlapping roads where they should converge, like in my example. Honestly, the easiest solution there is manual editing.

    If anyone is actually reading this, let me know what you think!

  7. #37

    Default

    I'm very impressed by your high level of skill and your playing around. Also the map size... Wow. I thought the map I'm working on is a monster, at 17k x 12k px, and it pretty much manages to reduce my progress to a crawl when I'm not focused on small bits of it. How you manage working with 80k x 40k pixels, I can't fathom. But also I'm wondering what your goal is exactly?
    Don't get me wrong, it's impressive in every way, it just seems like a massive time investment.

    Are you world building for something specific, or just trying to find out what's possible?

    To answer your question about the roads: They look quite realistic, except of course where they lay on top of one another. But that's something you can smooth out yourself.

  8. #38

    Default

    Quote Originally Posted by Cookiegod View Post
    I'm very impressed by your high level of skill and your playing around. Also the map size... Wow. I thought the map I'm working on is a monster, at 17k x 12k px, and it pretty much manages to reduce my progress to a crawl when I'm not focused on small bits of it. How you manage working with 80k x 40k pixels, I can't fathom. But also I'm wondering what your goal is exactly?
    Don't get me wrong, it's impressive in every way, it just seems like a massive time investment.

    Are you world building for something specific, or just trying to find out what's possible?
    Thanks for the kind words!

    To be fair, I'm almost never working on the full size world map all at once. I'm doing each continent piecemeal. The smaller continent I've been working on is only ~1000km wide or so, so its only 6k×6k resolution. The larger continent I've started is 16k² pixels.

    I used to run a homebrew DnD campaign in this world, and I have plans to write 4 novels or so taking place in this world (I'm ~30k words into the first novel). Of course, the level of detail I've been going into with these new maps is way more than I would ever need, so i guess I am just doing it cause its fun, haha. I'm hugely inspired by vorropohaiah; following his maps have motivated me to create something of similar scale.
    Last edited by morne; 09-06-2020 at 05:16 PM.

  9. #39

    Tutorial Creating Fantasy Heightmaps from Real World DEMs

    Finally finished the next leg in the "tutorial" series:

    http://blog.aratheum.com/cartography...heightmap.html

    Creating Fantasy Heightmaps from Real World DEMs


    At the heart of all of my maps is a grayscale heightmap that I've created for my fantasy world. This heightmap is created by cutting, pasting, blending, and modifying real world DEM data. In this post, I'll walk through how I properly scale my continental maps, set up my layers in photoshop, and how I actually blend terrain together.

    I'll be starting with this continent mask:

    valmere_mask.png

    Scaling the continent


    The first thing you'll want to do is scale the continent to match the source DEMs you'll be using to create the heightmap. To do this, you'll need to know how big your continent is. There are a ton of different ways to measure it if you have an equirectangular map (http://maptoglobe.com/, gplates, QGIS, etc.). I like to use the Alps for this, but you could just as easily use any other earthly feature that is easily identifiable from your source DEMs.

    I know, from looking at Google Earth, that the alps are roughly ~900 km long (in a straight line). In gplates, I'll measure a line roughly that long between two points, like so:

    valmere_gplates_scale.png

    In Photoshop, I'll cut the Alps from my eurasia source DEM and paste it into my heightmap, lining it up with the reference points I layed out in gplates. Remember, this is a rough estimate. I'm not trying to *perfectly* scale this. Within a few hundred km's should be good enough. Change the resolution of your base heightmap until the Alps are roughly the same length as the distance you measured in gplates or similar:

    alps_overlay.PNG

    For my continent, it ends up being 14551 x 14550 pixels.

    Photoshop layers setup


    Before actually adding any data to the heightmap, I'd like to talk about how I have my layers set up in Photoshop to help aid in building the heightmap:

    photoshop_heightmap_layers.png

    The top group, labelled *Topography*, contains all of the peices that make up my heightmap. I have applied a mask to it, which is the overall land mask of the continent, slightly blurred (usually only a few pixels). This ensures that I keep my continent shape when placing peices of DEMs. The Gradient Map and Posterize are to aid in creation of the map. The gradient makes it much easier to see the changes in elevation, especially at lower values. You can download my gradients here.

    Below that is a layer called adjustments. This layer is one way I modify the underlying data. By adding either small amounts of black and white to the adjustments layer, usually done at 5-20% opacity, I can modify the resulting elevation. I use this layer a lot to lower the elevation along the coastlines by adding layers of black.

    Beneath the adjustments layer is my actual DEM data that makes up the overall heightmap. I usually apply adjustment masks to these to clip the data to however much I want.

    Beginning to build the heightmap


    I'll be honest, there isn't really any sort of secret to doing this. A lot of it is gut feel and trying different things to see what works. But what I'll outline below is a few of the techniques that I've started to develop while building these heightmaps. Something that would probably help is to establish rough areas of mountains, valleys, etc. before beginning to place things. If you are a tectonics aficionado, you may have already worked out exactly where your orogenies and the like are, and if so, great! Use those as a guide for where to place things. If you aren't, like me, then https://maps-for-free.com/ is your friend. By studying this map, you can get a feel for what sorts of topography looks natural, and the distribution of elevations that are common. Really, though, I don't try very hard to make things look natural beyond knowing where major plate boundaries are. Everything else is just a lot of experimentation and studying the real world to make something that looks plausible "enough".

    The only thing left to do at this point is to start cutting and pasting! This is more of an art than a science, so just have at it.

    Adjusting for coastlines


    One of the first things you'll want to do is adjust for coastlines. Take this bit that I posted into my map:

    valmere_heightmap_1.png

    Notice that much of the coastline is rather high in elevation, all the way up to the ocean. This obviously shouldn't happen in real life very often unless you have sheer cliffs. In order to fix this, I apply some black, usually at 15% opacity or so, to the adjustments layer, until my coastlines look a little more natural:

    valmere_heightmap_2.png

    Merging bits together


    In order to make things look seamless, you'll want to "meld" all of your DEM bits together, creating one seamless heightmap. Take, for instance, this bit of data I've just pasted in to extend a coastal mountain range:

    valmere_heightmap_3.png

    Note that the way I have arranged the new data, it overlaps with the existing data a bit. This will be important for blending.

    I've already flipped and rotated it so that it is roughly in the position that I want, but it doesn't seamlessly blend together with the data that's already there! There are two things we can do to make this look better.

    Add a levels adjustment, clipped to the new layer, and adjust them so that the height values roughly match the surrounding data:

    levels.png

    valmere_heightmap_4.png

    Next, add a layer mask to the new data. Using a low opacity black, very gradually mask the edges of the data to blend it in with the existing terrain:

    valmere_heightmap_5.png

    General Guidance


    Everything I do to create my heightmaps is some combination of layering, subtle masking, clipping, adjustment layers, and levelling. To build up an entire continent, it just takes doing those things over and over until you get something that looks plausible and complex.

    Don't be afraid to delete parts and start over if it just isn't working.

    When copying data over, try to line up valleys and ridges of mountain ranges. Remember, though, you can also always adjust the values of certain pieces to more seamlessly blend bits together.

    Overlapping is your friend. The more you overlap different pieces, the more you can use masking to gradually transition between different bits of data.

    The larger of pieces you cut and paste, the less blending work you have to do. On the other hand, using smaller pieces will better allow you to conform to your coastlines and general plan for terrain. I recommend using larger bits to start with, then filling in gaps with smaller bits of data to change the overall shape of the terrain until you are satisfied.

    Another use of the adjustments layer is to fill "holes" in the terrain. In general, with very few exceptions, your topography should not have any "depressions" in it, where water flows would pool (endorheic basins exist, but they are pretty rare). In general, you want your terrain to flow all the way to the coast, which means you shouldn't have random points of low elevation in the center of your continent. If you do end up with this, either try new bits of data to fill in the holes, or use adjustments to "match" the surrounding terrain. The posterize layer is good for this, as it will show depressions pretty clearly.

    You can also repeat this same process for bathymetric data to create a heightmap of your oceans. This is honestly much easier, since your heightmap does not need to follow any sort of erosion "rules".

    Here is my current progress so far on this continent:

    valmere_heightmap_6.png

    Once I've finished adding everything, the last stage of the heightmap process will be filling any basins I may have missed, and adding on some terrain to parts of the coastline that might look unnatural.

    Thanks for reading!

  10. #40

    Default

    Starting to experiment with city map insets (ignore the unfinished borders):

    The Antuzan Empire.jpg

    Base city was generated using http://fantasycities.watabou.ru/. Not sure how I feel about it honestly. I would likely label more of the city to fill it out, but something about it feels less put together than the regional map.

    Thoughts?

Page 4 of 6 FirstFirst 123456 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •