Results 1 to 4 of 4

Thread: Painting height-maps for satellite-style maps

  1. #1
    Guild Novice Facebook Connected
    Join Date
    Nov 2015
    Location
    Sydney
    Posts
    7

    Tutorial Painting height-maps for satellite-style maps

    A few people have asked me how I made my regional map of The Burning Archipelago, so I decided to make this tutorial. Keep in mind that I'm fairly new at this and am still learning as I go. If you know of a better way to achieve something, please speak up!

    Overview

    This is for a satellite-style map, leaning towards realism. I'll be painting a height-map in Photoshop, then using that height-map to generate 3D lighting and paint the final coloured version. Here's the end result:
    NymhSahnSAT.jpg

    NB: I'm assuming that the reader has some basic proficiency in the use of Photoshop.

    Step 1: Find your references
    It's important to know the scale of your map early on. I knew that wanted a pair of islands roughly 60-120km long, so I went to Google Earth to find real examples. I settled on Stewart Island in Southern New Zealand, because it's roughly the right size, and also features similar climate and geology to my islands. I took a screencap and saved it for reference:
    01StewartIsland.JPG

    Step 2: Define the coastline
    This where I would normally start with a quick sketch, but I already had my larger regional map to work with, so instead I grabbed part of it, scaled it up and dropped into Adobe Illustrator. I then reduced the opacity of the reference and used the pencil tool to draw the coastline over the top of the reference. By setting the pencil accuracy to the finest option, and using my wacom tablet, I was able to quickly hand-draw some random, jagged coastline:
    02.jpg

    Once completed, I removed the strokes and set the fill to 100% black. I then alt-dragged the illustrator file into Photoshop:
    03.jpg
    This became the base coastline that defined the rest of the process. This could also be drawn or painted in Photoshop, but I like the extra control that Illustrator offers when it comes to drawing complex natural shapes.

    Step 3: Paint the height-map
    A height-map is a greyscale image that defines how high each pixel is in relation to the other pixels. Black pixels are the lowest, white pixels are the highest. By painting a height-map we are physically defining the contours of our terrain, and laying down the foundation for everything that comes next. For height-maps in Photoshop, I work at 4096x4096 resolution, with the image mode set to Greyscale, 16-Bits/Channel. Your computer might have trouble working with such a large file, so scale it down if you need to, but try to keep these settings as high as possible to avoid ugly artifacts later in the process.

    To start off, I created a new layer in PS, created a layer-mask based on the coastlines, filled that layer with black, set its blending mode to screen and then applied the following blending options:
    04.jpg
    Feel free to tweak these settings to your preference, but take note of the "Technique". Make sure it's set to "Precise" to ensure that the effect follows the edges of the island as precisely as possible, otherwise it will be soft, muddy and useless.

    This creates a very quick and dirty height-map for the islands. The island edges are low, and there are ridges running up the centre of the island:
    05.jpg

    I then used the eraser too set to 1% to chip away at this layer, so the ridges didn't uniformly follow the edges of the islands:
    06.jpg

    These ridges are still very uniform though, and lack the randomness of nature. To achieve this randomness, I created a new layer using the previous one as a clipping mask. I used the filter 'Render Clouds' to fill the layer with soft noise, and then applied 'Difference Clouds' multiple times to the layer to add further iterations on the detail:
    07.jpg
    08.jpg

    I then set this layer to "Overlay" and tweaked the opacity. This gave the ridges a nice, random appearance:
    09.jpg

    Finally, to fill the open planes, I looked to real-world topography. I used NASA's free Earth height-maps to find areas that had comparable terrain to my islands, and dropped them on top of my ridge layer, set to 'Screen'. I then used black brushes to remove a lot of this data from the edges of the islands and tone it all down, otherwise the islands would have been abnormally lumpy. I also hand-painted some rivers (in black) and a volcanic peak (in white):

    10.jpg

    After lots of experimentation and tweaking, I finally had a working height-map, with the sea set to 100% black and the highest mountain peak at 100% white. The next step was to take this greyscale data and make it 3D...
    Crimson Dark: my Sci-Fi webcomic
    The Fires of Caldarus: my YA Fantasy novel

  2. #2
    Guild Novice Facebook Connected
    Join Date
    Nov 2015
    Location
    Sydney
    Posts
    7

    Default Chelsea EXIT

    Step 4: Generate the 3D Terrain
    I imported my greyscale heightmap into Cinema 4D, my 3D application of choice. If you can't afford C4D, Blender is free and should be able to achieve similar results, but I'm not personally proficient with its use.

    In C4D I created a new material and used the height-map as a texture for the material's "Displacement" channel. I turned on sub-polygon displacement to allow greater detail at render-time.
    11.JPG

    I applied the material to a flat plane, and after tweaking the heights and making a few changes to the original height-map, I had this 3D model of the islands:
    11b.JPG
    It may not seem very lumpy, but subtlety is the key when working on this scale.

    I set up a camera and two lights like so:
    12.JPG13.JPG

    It's important that the camera be "parallel" or "orthographic", not perspective, and directly above the centre of the plane. I set the document render size to 4096x4096 (the same size as my Photoshop file), and scaled the edges of the camera so they matched the edges of the plane. C4D's snapping tools made this quick and easy.

    There are two (not four) lights:
    1. A strong yellowish "infinite" light coming in from the top right at a low angle, casting area shadows. This represents the sunlight.
    2. A dark blue "Omni" (or "point") light, hovering above the plane. This represents ambient light from the blue sky, and also creates a nice vignetting effect in the final render.


    I rendered out the final lit version, and the result was an exact match with my original height-map, but with lighting information instead. I used C4D's "illumantion pass", but a raw render with a mid-grey surface should produce equivalent results.
    14.jpg

    I was now ready to go back to Photoshop and finish painting the map.
    Crimson Dark: my Sci-Fi webcomic
    The Fires of Caldarus: my YA Fantasy novel

  3. #3
    Guild Novice Facebook Connected
    Join Date
    Nov 2015
    Location
    Sydney
    Posts
    7

    Tutorial

    Step 5: The base colours
    Back in Photoshop, I took my greyscale heightmap, flattened it, created a new file (RGB, 4096x4096), imported the height-map and then applied a gradient-map to it:
    15.JPG
    This colours the greyscale image from green to brown based in the brightness, meaning that the islands are greener at lower altitudes and browner at higher altitudes:
    16.JPG
    I then created a new layer, filled it with blue, and created a mask based on the original Illustrator file. I inverted the mask, and had my oceans:
    17.jpg
    This layer stayed above the terrain at all times, letting me paint on the terrain without risk of also painting the ocean.

    I brought in my lighting render and dropped it below the ocean, but above the terrain, and set the layer mode to Overlay. This effectively applies the lighting to everything underneath:
    18.JPG

    Step 6: Painting the details
    From here on I proceeded to hand-paint textures and details. I relied heavily on Syntetyc's free landscape brushes, especially the rock, cloud and mist brushes. I was also constantly referring to my reference image of Stewart Island throughout this process.
    19.jpg20.jpg
    For the forests I created a new layer with embossing, a drop-shadow, and a pattern-overlay based on one of my own photos of lichen on a rock. I used a scratchy brush from the collection above to paint it in, constantly referring to real-world geography as I did.

    Step 7: Painting the Ocean

    To make the ocean I created a layer with a light-blue glow and applied a mask based on the islands. I then created another layer and started by defining the light and dark areas of the ocean:
    22.jpg
    I then selected one of my favourite brushes from that collection:
    23.jpg
    Made sure that the brush's angle was set to "direction" so it would follow the path of my stroke, and then started painting the shallow waters:
    24.jpg
    Once I scratched out the "waves", I then switched the the blur tool, but using the same "small rock" brush, to smooth out the waves. I repeated this process using broader strokes and darker colours:
    25.jpg

    And, with the ocean complete, I had finished my map!
    NymhSahnSAT.jpg

    Step 8: There are no "steps"
    Now, I've presented this as a series of steps to make it easy to follow, but I don't want to give the impression that I have a flawless process that I follow like clockwork. I do a lot of experimentation and iteration, and find myself tweaking the height-map and re-rendering the lights, or deleting entire colour layers to start anew.

    Terrains are, by their very nature, organic, so painting them is an organic process. Don't worry too much about whether you're doing it the "right" way. Play. Have fun. If my process doesn't look good to you, change it.

    I hope this helps someone
    Crimson Dark: my Sci-Fi webcomic
    The Fires of Caldarus: my YA Fantasy novel

  4. #4

    Default

    Thanks for this. I will study it when i find more free time.

Tags for this Thread

Posting Permissions

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