PDA

View Full Version : Editing Noise Into Terrain - the Burpwallow Way



su_liam
05-28-2009, 02:26 AM
Okay here is my long awaited(if not with bated breath) tutorial on the Burpwallow method of noise editing for terrain creation. To start with, I will work entirely in Photoshop. Later I may look into integrating Wilbur into the workflow.

--

1)Black/White Clouds and lots of Black/White Difference Clouds. This may have lots of islands where you want water and wet places where you want land.
Layer: Clouds

2)Create a Linear Light layer for raising hills and mountains as well as for some lowering.
Layer: Linear Light

3)Create a Pin Light layer for creating flat lowlands. This can also be used to create flat underwater areas.
Layer: Pin Light

4)Create a Multiply layer mostly for lowering areas below water. This can be used in combination with the Linear Light layer to create a less flat sea bottom, but I really didn't do this.
Layer: Multiply

5)Create a Threshold adjustment layer for reference and to create the sea level mask. In my case, I found a threshold of 42(on a range of 0..255) worked well. YMMV. This will be turned on and on frequently during HF editing to allow you to make the shoreline look the way you want it as well as to keep the HF looking good.

6)Using a fairly large soft brush, I painted a fairly bright shade of gray to the Pin Light layer to raise up low areas where I want land. This results in flat, alluvial-looking lowlands. Try experimenting with darker grays to create underwater shelves and the like.

7)Now, on the Multiply layer, I use a darker gray brush(RGB < 128) to paint down areas where I want sea.
--- Because the Multiply blend mode reduces relief(not just heights, but actually difference in height and therefore slopes), this method can be used in combination with Linear Light(basically, add/subtract) to flatten out land areas. Simply use multiply to reduce relief to the desired flatness, and then use Linear Light to raise the area back above the sea. I haven't tried this yet, it might prove superior, in some ways to Pin Light, but it would require closely coordinating work in the Multiply and Linear Light layers to pull off successfully.

8)Some areas on land, I paint hills in on the Linear Light layer. To do this paint in the desired areas with a gray color greater than RGB 128. A level of 128 is effectively zero for Linear Light. Given that, you can also paint in depressions in Linear Light by using a gray darker than 128.

9) Now that we know how the three layers work, we can go back and draw into them, raising, lowering and flattening the terrain until we have something we like. Basically wash rinse and repeat.

10) This is less of a step than an opportunity to give some tips.
First tip, always start out with large fuzzy brushes. You can get really nice effects with some very broad impressionistic strokes, whereas very tight, small strokes can obliterate the noise and leave very visible fingerprints.

Second tip. At the beginning of this project I drew into the layers using a fairly opaque paint brush in Normal mode. As the terrain starts coming together, reduce the opacity of the brush and try other paint modes. I had great success with Linear Light and Multiply to just sort of tweak my existing edits. This is also a good idea if you choose to do some fine editing with small brushes. Still... you should avoid HARD brushes.

Another tip. I didn't do this, but you could use Layer Sets instead of Layers. Then you could be more non destructive by applying edits as layers within the Multiply, Pin Light and Linear Light SETS. Hmmm... Might this way lie madness?

------------------------------------------------------------------------------------

After working with this, you should have a decent terrain to start working with. Next up, makin' it purty!

BTW, I'm posting up a copy of my psd for reference. It's kind of a pig, though, so if folks have trouble uploading it, I might have to put up a reduced res version.

su_liam
05-28-2009, 02:36 AM
For future reference, I've attached a screenshot of the layers in my completed psd. I couldn't post that psd because it's just a little over 18MB. Sorry folks, you'll have to settle for pieces.

Sigurd
05-28-2009, 08:37 AM
I notice the file is 1280x800 is that your normal dimension?

How do you vary it for different projects?

Sigurd

su_liam
05-28-2009, 05:52 PM
For equirectangular full-planet maps I usually work in 4096x2048 or even 8192x4096 if I have time and really want a good result. I saw a tutorial on scifi-meshes.com that recommended 8192 as a baseline and 16,384 for cloudmaps(!?!). Even at 8192 resolution, each pixel on the equator represents about 3 miles. To get a 30m resolution you would need the equator to be about 1.3 million pixels across(1.3Mx668k, 892billion pixels. Kinda puts things in perspective).

For smaller regional maps, I typically use 2880x2880 as per the HandsomeRob tutorial (http://www.cartographersguild.com/showthread.php?t=1577)).

This was a crude little, "knock-it-off-quick," version. I like to make my MacBook cry.

Ascension
05-28-2009, 06:12 PM
You know that I'm going to be giving this a try :) Excellent stuff.

Lathorien
05-28-2009, 07:03 PM
Just want to make sure I am following this thread properly. I am very interested as the look and style of the first Burpwallow map, is similar to what i am trying to achieve in GIMP except clearer and simplier. I am curious to see the rest of the tutorial on how to turn this hightmap into the final map. Good choice with Wilbur (may i suggest: precipitation erosion, incise flow (Blur = 2), incise flow (blur = 1), optional depending on map SCALE one more incise flow (blur=1), and finish with precipitation erosion again.) Wilbur will erode into (sometimes in an artifact manner) into your smooth plains creating channels. Which is nice, but 2-3 incise flows will turn that "flat plain" into "rolling hills"

Cant wait for the rest of this Thread!

Steel General
05-28-2009, 09:44 PM
I'll be giving this a whirl myself whenever I can find the time :)

Sigurd
05-28-2009, 10:08 PM
Your example seems to resolve itself into a black and white flat image.

Do you ever vary the levels you uploaded to use the heights, depths, and gradients from your initial cloud layer?



.

su_liam
05-29-2009, 04:16 AM
As some of you have noticed, the result of our last exercise was a simple grayscale image(yawn). The white areas represent the highest points and the black areas represent the lowest points, elevations in between are represented by all of the intermediate shades of grey. So what you have here is a simple representation of land elevation. With experience,this can be more informative to the eye than hillshading, although sometimes the hillshade holds surprises that even an experienced eye will miss. Sometimes I wish the Lighting Effects filter in PS could work on the fly. Ah well, we have Wilbur for that don't we? But for now let's stick to Photoshop.

As stated previously, this image is purely a representation of elevation, with no sense of climate, or vegetation cover. Later we may cover such issues, but that will be a voyage of discovery for me as well as the dear reader. For now my pretty map will just be a combination of hypsometric and relief shading. Now onto the pretty map.

In my original map, I had all of the terrain editing layers in a Layer Set at the bottom of the Layer stack, but to keep this tutorial simple, let's do our prettification in a separate file. So...

1)First open the original terrain file, turn off the Threshold adjustment layer, Select All, and Copy Merged. This is your heightfield.

2)Create a new file. The size should default to the size of your terrain file, if you have it open. Paste the heightfield into the new file. Give the resulting layer the imaginative name of HF. As an aside, good layer naming will save you a lot of grief and confusion later. It's easier to use good names from the start, than to append them later. A tip I took from every programming book I ever read.

3)Create a new channel, name it HF, and paste the heightfield into that as well. This will be for the hillshade stage later.

4) Go back to the terrain file. Turn the threshold layer back on. Now Select All and Copy Merged. This will be your mask of ocean areas. White areas are land, black areas are water, and there shouldn't be any areas of gray unless you choose to blur or anti-alias the mask. We won't do that here, but feel free to experiment. Be sure to let us know how it comes out.

5)Create another new channel in your new file, name this, "Sea Mask." Paste your sea mask into this layer.

--- So now we have all the data we need from the terrain file, so go ahead and close it if you wish. Especially if your computer is groaning under the strain of your high res image. In my personal opinion, if the computer isn't groaning under a dozen layers or so, you should increase the resolution :) .

6) Now create two Layer Sets name one Land, and name the other sea. These should be above the HF layer.

7) Go into the Channels and select the Sea Mask channel. Load that channel as a selection(there is a button at the bottom of the Channels palette to do this, a dotted circle to the left side.

8) Return to the Layers palette and select the Land layer. Hit the Add Layer Mask button(bottom of the palette, white circle inside gray square, second from left). This will apply the selection as a layer mask for the Land layer set and deselect. Now hit cmd-shift-d(ctrl-shift-d on PCs) to reselect.

9) Hit cmd-shift-i(ctrl-shift-i) to invert the selection, select the Sea layer set and Add Layer Mask.

--- These last two steps assure that water effects will only be applied where there is water and land effects will only be applied where there is land. It also keeps the lower of the two Layer Sets from obscuring the HF from view of the higher of the two layer sets, an important thing.

10)Create a Levels Adjustment Layer inside the Land set. When the Levels window comes up, click on Options... Under Target Colors and Clipping, set both Shadows and Highlights to zero. You could just leave Algorithms alone, like I did, or you could select Enhance Monochromatic Contrast, which might be better.

11)Now create a Gradient Map adjustment layer in Land. When the Gradient Map window comes up, click on the gradient, create a nice dry land gradient that you like. Hit OK a couple times and admire the result. If you set up the sea mask properly, you should see a nicely colorated Land area and some dark dismal gray ocean. That's perfect for this stage. Actually, if you do the hillshade the way I do with a multiply layer, you might want the land a little brighter and more saturated at this point than you'd normally like. Just a tip.

12)Now create a normal layer inside the Land set. Name it... Land Hillshade. Fill it with white, and set the layer to Multiply.

13) Open the Filter>Render>Lighting Effects filter. Set the Light Type to Directional. Set the Texture Channel to HF. I use a fairly intense light with a lot of ambient. Play around a bit with the settings. You should notice after this that the land colors are a bit darker and more subdued and that there are hills! Cool...

14) Create a Levels adjustment layer inside of the Sea layer set. This is pretty much like step 10 above.

15) Create a Gradient Map for the Sea. Choose more watery colors, but otherwise this is equivalent to step 11.

16) Create a normal Multiply layer named Sea Hillshade(blur). Again, not too different from step 12.

17) As in step 13, apply Lighting Effects. Definitely use the same settings for lighting direction. You could play around with a reduced Intensity and Mountainous setting and you could vary the Ambience setting as well to try to make things look a little more... underwater :/ .

18) I decided to blur the underwater hillshade with just a little Gaussian Blur. I don't remember the values, but it was somewhat subtle.

--- Another little tip. Overlay is another good application mode for hillshading. When using Overlay mode, though you will want a rather darker hillshade layer. Instead of white start with a 50%(128RGB) gray, and reduce the Ambience and perhaps Intensity of your lighting effects. The colors of your gradient map will tend to show through much more as you created them and so it can be a little less guess-worky. I tend to choose somewhat bright gradients(read, "freakishly garish."), so the multiply works well for me in a kill-two-birds kinda way. YMMV.

Hopefully, my writing has been clear enough to guide you through the psd file and, in combination give you as good an idea as I have of how to apply, what I think could be a very powerful method.

Attached, find the BurpwallowColorSm psd file. I had to reduce things a bit to fit 'er onto the site. A lot of layers here, folks!

Feel free to ask questions. My time has been somewhat limited lately, so it's understandable if folks have trouble comprehending my bare-bones instructions.

Cheers and all that!

Colin

Gandwarf
05-29-2009, 05:43 AM
Maybe you can add a JPG to your first post, so we at least see a thumbnail and what this is all about? Might interest more people to try it out also :)

su_liam
05-29-2009, 05:49 AM
Your example seems to resolve itself into a black and white flat image.


If I understand you correctly. That's what it's supposed to do. At this stage, it is just a grayscale heightfield without texturing or even faux relief. Hopefully the second part of my tut will clarify one way of making it look like a terrain. Another way would be to plug it into a 3d renderer such as Bryce.


Do you ever vary the levels you uploaded to use the heights, depths, and gradients from your initial cloud layer?
.

I'm not sure I understand what you're asking.

One thing I am looking into is basing my texture on a slightly different noise. For example, take the original HF, reduce the range with levels, perhaps adding a bias towards low or high values, add a gradient from light gray in the north to dark gray in the south(or viceversa in the southern hemisphere), then add in an independent cloud noise. Base your texturing gradient maps on that noise source.

Is this the sort of thing you are getting at?

su_liam
05-29-2009, 05:51 AM
Maybe you can add a JPG to your first post, so we at least see a thumbnail and what this is all about? Might interest more people to try it out also :)

Good point. Maybe tomorrow...
<No smiley for tired out of my mind>

ravells
05-29-2009, 06:12 AM
Fab stuff, Su Liam - can't wait to try this out when I get home!

su_liam
05-29-2009, 03:09 PM
Here's a little something I put together this morning to practice the technique. It's looking pretty powerful. Still no climate coloring, but I'll be working on that.

ravells
05-29-2009, 05:22 PM
Here's my go. I find it really tough to get just the right shade of gray for the heightmap when trying to raise and lower terrian while keeping the finer detail...got to keep trying and experimenting, it's a really cool method.

The only thing is that there is not really a lot of control over where the mountains go (unless I've misunderstood completely which is quite likely) as you're reliant on the initial cloud map to a great extent

Thanks Su Liam!

su_liam
05-29-2009, 09:44 PM
Hey, Ravells, good start. The first problem I see is my fault. You, in an unfortunate act of English comprehension, applied the Sea Mask as a mask to the sea. Actually, I should have named it the Land Mask. Threshold selects areas higher than the threshold as white. If you are using NW lighting, which it looks like you are, that places the sea areas as higher than the surrounding land. So first invert your masks. I think that will help some.

As to keeping finer detail. The key to this, paradoxically, is a large, soft brush. Fine detail in editing obliterates detail from noise. In fact, in my latest effort I applied a Gaussian Blur to each of the editing layers.

If an area seems to have a lot of relief where you desire flatness, try painting in a lighter shade of gray into the Pin Light layer. OR... In a two step process, try darkening the area slightly in the Multiply layer then raise the area back up with the Linear Light layer. Make sure the Linear Light editing is very soft and blurred. The first option is pretty easy once you get a feel for it, but the second is a lot more nuanced and controllable. I, personally, have yet to make the multiply and add-back method work reliably, but I have very high hopes for it.

ravells
05-30-2009, 06:39 AM
Thanks Su Liam! I actually did invert the masks but for the moment, until I work out how to get good results with the land layer am ignoring the sea layer for now (which is after all the same method). I ended up using a bit of gaussian blur too, but as I said, the real trick to this (I think) is finding the right gray setting so it makes a enough of a difference, but not so much that it overwhelms the underlying detail.

Btw, I imported the heightfield into Bryce to see what the result would be but the relative elevations were huge and it needed some smoothing but nothing insurmountable. I'm thinking what might be cool is to make multiple renders in Bryce of different textures (forest, desert etc) and use layer masks in PS to hide / show them. Saves having to use a displacement filter for each of them too.

Edit: also one of the steps I didn't use was the levels adjustment layer - I couldn't find the controls in it you mentioned. I'm using CS2 - is it a post CS2 thing?

su_liam
05-31-2009, 03:03 AM
The correct shade of gray is a real judgement call. It helps, because of the way blending and transparency works, to fill in Multiply layers with white and ** Light layers with 50% gray(RGB128). For Multiply, I usually paint(Normal blend mode) about 78% gray to start with. I then set the paintbrush to Multiply mode and 85-95% gray, or Linear Light mode at about 100-125RGB (to lower) or 130-155RGB (to raise) in order to make adjustments. With the Pin Light layer your guess is as good as mine (or better). Mostly, I set a value, paint it in, cuss in fluent Anglo-Saxon, hit Undo and try again.

Pin Light is horribly confusing. It apparently acts as a clamp. If the value is much less than 128, it clamps high points down. If the value is much greater than 128, it clamps low points up. Exactly what it clamps to is a mystery to me. If you can figure out the algorithm, I'd be much in debt if you'd let me know.

Using 16-bit would help quite a bit with the huge terracing artifacts in Bryce, but the Clouds filter doesn't work in 16-bit. You'll have to supply your own noise in that case. And..., you'll have to go back to 8-bit for texturing work and Gradient mapping. No biggie, but it does make things slower.

I've been experimenting with global maps using spherical noise imported from planetGenesis. Not with much success, so far. I can't seem to manage Pin Light...

I'm using Photoshop CS, Old School. If I had $300 to spare, I'd be down taking advantage of my student discount to snag CS4!

In the images, I've tried to highlight important buttons and settings. The first image shows where the options button is on the Levels dialog. The second image highlights important parts of the Options dialog: algo selection, lower clip and upper clip. In the event that the Options dialog has been lost in later versions(?!?), the third image might give a sense of how to manually set up levels to map the output to a narrower histogram. Hopefully this will help. Shouldn't be hard to find a better explanation on the intertubes somewhere.

Sigurd
05-31-2009, 04:16 PM
For those who want to pull apart the whole file that Su is generously sharing, here is the whole thing shrunk to 10% size to make it small. It should have all the layer, layer order, and design decisions intact.


I actually am opening this file beside my own experiments to compare notes.


Please, nobody complain about the image view at 10%. This is not anyone's idea of an acceptable dimension for display. At 361k its actually smaller than screenshots for all the settings.

This is exported from CS3.

su_liam
06-01-2009, 04:32 AM
Thanks, Sigurd.
Here's another experiment. I didn't use a Pin Light layer(that's been giving me a lot of trouble lately), but I added in a Screen layer. Screen is supposed to act like the opposite of Multiply. I'll try importing this HF into Wilbur and see what happens. Maybe tomorrow.

I also tried some naming and labelling.

Anyway, here is Al Burphaban Island...

EDIT: I added in another image showing the unedited noise. It would be interesting to overlay them...

töff
06-01-2009, 12:10 PM
Oh man, I had never thought to use Gradient Ramp for terrain colors for a grayscale heightmap. Jeez, seems obvious now that I know.

Thanks, su_liam! :)

su_liam
06-02-2009, 11:48 PM
I imported Al Burphaban Island into Wilbur, did a little noisin', basin fillin', 'n' erosion. I rendered out a slope-based map and a river mask, 'n' put da results inta photoshop. Here's what all I wound up with...

Ascension
06-03-2009, 01:05 AM
You could be on to something, I'm certainly interested.