The Cartographers’ Guild is a forum created by and for map makers and aficionados, a place where every aspect of cartography can be admired, examined, learned, and discussed. Our membership consists of professional designers and artists, hobbyists, and amateurs—all are welcome to join and participate in the quest for cartographic skill and knowledge.

Although we specialize in maps of fictional realms, as commonly used in both novels and games (both tabletop and role-playing), many Guild members are also proficient in historical and contemporary maps. Likewise, we specialize in computer-assisted cartography (such as with GIMP, Adobe apps, Campaign Cartographer, Dundjinni, etc.), although many members here also have interest in maps drafted by hand.

If this is your first visit, be sure to check out the FAQ. You will have to register before you can post or view full size images in the forums.

[Award Winner] Building a ridge heightmap in PS

Well, I'm going to start with a teaser, because I'm short on time.
This image was rendered in Bryce, but everything involved in the creation of the heightmap was done in Photoshop. No Bryce erosion, nothing.

Ahh right !, your 'spread effect' makes more sense now. I'll be watching this one with interest. Monks and I have been hard at work on mountains for ages now. We have both taken different paths to them with the intention of merging. It would be fascinating to see your approach. They could do with a bit of erosion applied now but I bet you created that in just a few seconds. Being able to paint these ridges would indeed be a great step to better mountain ranges. My hand is reaching for the rep button already...

@Neon Knight: Actually, the colors are existing materials presets in Bryce. The grey stony background was one I had slightly modified to make up for deficiencies I saw in the original.

@Redrobes: I wish it was seconds, but it was still not too slow by my standards. Adding erosion would be good, even with the somewhat limited tools I have. I did see some interesting erosion-like features that showed up in the original. That makes me think a little bit of subtle smoothed erosion with bryce would look pretty nice.

On with the show!

Here goes.
I'm going to start with a new document. This time, as an experiment, I'm going to forgo my typical sperm, and try something a little different. Say Hello to our next mountain range. Now lets rasterize that. Then we Select All(Cmd-A on Mac, I think ctrl-A on PC) and then we Copy Merged(shift-cmd-C on Mac, presumably shift-ctrl-C on PC) and Paste(cmd/ctrl-V) into a new layer where we can play with it like a cat with a rodent.

1) Begin with Gaussian Blur. I'm going to use a 12.4 pixel radius. I just want to get a bit of gradation to get the ball rolling.

2) Now I'll use Filter>Brush Strokes>Spatter... with a Spray Radius of 12 and a Smoothness of 1. I could use my Spread method, but I still haven't created the Action so it's time consuming, and I'm not sure it has any advantage for Radii below 25.

Here, I have a couple options
a>
a3) Gaussian Blur at 1.3 pixels.
a4) Spatter at a radius of 12 and a Smoothness of 5. Note: All these settings will vary with the image. What we want here is to ramp up the clumpiness. If this thing was rendered now it would probably look like hammered metal rods.
a5) Gaussian Blur 1.3 pixels.
or
b>
b3) Spatter at a radius of 12 and a Smoothness of 5.
b4) Gaussian Blur at 1.3 pixels.
b5) On inspection, I like the results of the B branch better. It looks a little mungier. I'm going to follow this track.

6) Select All and Copy(just cmd/ctrl-C) now move over to your Channels palette, create a new channel and paste into that.

7) Here's where that morphological Dilate tutorial comes in. A recap: Load the new channel as a selection, go to Select>Modify>Contract... I'll contract by 3 pixels, and iterate three times.

Save you selection as a channel and take a look. For the purposes of this I'm pretty satisfied. I'm going to munge it up using steps b3 and b4 and call it good for my current purposes.

9) Well, not quite. I'll want to add a little fractal noise. So let's Paste this abused, dilated, brutally munged text onto a new layer at full opacity and normal mode.

10) Create a new layer on top of that. For simplicity, and to keep up the all-photoshop thing, I use Filter>Render>Clouds_ in black and white. Now, I'll iterate Difference Clouds several times on top of this.

11) Set the mode on this top layer to Multiply. Play around with the opacity.

12) Just for giggles, I'll leave the opacity at 100% and bring up Filter>Other>High Pass... on my cloud layer. I really like the look at a Radius of 15.7 pixels on that High Pass. The high pass damps out the big low frequency variations that aren't related to our desired ridges, but are big enough to overwhelm them. This leaves us with the little variations that add interest, but are small enough both in spatial scale and amplitude to fit into our ridges.

13) I like this look, but it's getting a little dark. So I'll add a Levels adjustment layer.
I hold down the alt/option button while I drag the white point arrow(the one on the under the left side of the mini histogram this will show me when I'm driving non-white pixels to white. The image will go to black and I will drag until I see some white pixels. At that point, I pull back a bit so the screen is all black. In my case, this will put the white point at 145, 57% grey. Things were a bit dark.

14) Finally, to make my ridges pop, I add a Curves adjustment layer. I create a curve that's concave to make the tops pointier. I notice on the histogram that my highest level is now 251. Meh, I'll live with it.

Optional Step) Take this into Bryce or whatever app you have that includes tolerably good erosion tools, and add a bit of erosion.

This took me a couple of hours including false steps and the process of documentation. If, unlike me, you have the good sense to create Actions, and you're not flopping about like a fish trying to figure out how you did this last time, I'm sure this could be done in less than an hour.

If you have access to good, specialized heightfield manipulation tools, this might not be worth the effort, but if your tools are limited to photoshop and the terrain editor, this is pretty darn attractive. I think so anyway.

Okay, here's my rendered image. I like it generally, but the tall peaks look a little too zauberland for my taste. I think my curves adjustment might have been a bit much. I'll try fixing that and then maybe applying a little bryce erosion 'magic'.

And, just to make your life more complicated, if you ever felt like it and had time I'd love a bit of a addendum to this showing how to do this sort of thing in Bryce. I own Bryce but have never been able to (ie, never taken the time to) learn how to do anything with it. Helpful hints, rudimentary processes, etc... Like I said, what you've done is awesome and immensely helpful, but if you ever get bored...

I'm still kind of working on this heightmap here at Chez Paddles. First, I think the curves adjustment layer is better under the clouds layer. The clouds help to weaken the kind of regular smooth curvature they impose. Second, this heightmap honestly seems to look nicer without the curves altogether... Third, a couple more rounds of spread/clump/blur/contract would help oodles. Finally, as Redrobes has already said, a little erosion, even with bryce's erosion tools would make this thing pop nicely. Also, as a little addendum, mountains might tend to look better if they're not sitting on an infinite, perfectly flat, plain.

As time permits, and as I think of anything remotely useful, I'd be perfectly happy to provide tips on Bryce. I'm afraid rudimentary processes are the only kind I know.

It seems less clumpy/hummocky than my results. I presume your blurring it and then using an iteration of spread/blur/dilate. Part of the difference is that I think the dilate filter in GIMP is strictly 1 pixel at a time. If I understand Dilate properly, the single pixel dilate, or contract basically looks at a 3x3 neighborhood around each pixel and sets the pixel to the smallest value it finds(Erode or expand sets the central pixel to the highest value it finds. With a radius of 3, as I've been using, contract finds the smallest value in a 7x7 window this is naturally clumpier. I've also been using a second pass with the Spatter filter with a higher smoothing value. This can be simulated nicely in GIMP by using a pass with the Pick filter after the Spread. Hopefully, that might help, if you WANT the more hummocky look. Also, adding more fractal noise at the end with clouds makes a difference.

Actually, I've been meaning to do an experiment with a more conservative spread and blur, no intentional clumping stage, and a slower, but less clumpy radius 1(3x3) dilate. I'm hoping it would make a good approximate way to remove terracing. Better than my previous erosion idea. Still not so good if you want an exact interpolation, but hey...

I think I'll call it the Stochastic Deterrace Algorithm if it works. Heehee!