How to make good terrains/heightmaps from PnP TerrainCreator Community Edition

by Eric.

I honestly don’t know too much about PnP TerrainCreator as I just found out about it. It seems to be a relatively new piece of software. It takes a bit of getting used to, but it seems like a very powerful and extendable application for creating heightmaps.

Start by acquiring PnP TerrainCreator from - Click on the logo, then click on Downloads at the top, then click on the PnPTerrainCreator-Setup-CE link. A direct link is here: but this might change with time.

You will need DirectX 9.0b at least, as well as Adobe Acrobat reader to read the manual (hopefully this tutorial will make looking the manual a waste of your time). After it’s installed, fire it up and you’ll be greeted with a rather bland gray screen. You will have noticed it loading some plugins prior to this at the splash screen. Pnp TerrainCreator is plugin based so I assume we could make our own features for various facets of the program. Anyway, let’s get started.

Go to File→New to start a new project. Each terrain has its own project directory - more on this later. Type a name for the project, and leave all the plugin fields on their default values. The default values of 0-5000 height with initial height of 1500 is good to start off with. The number of sectors specifies the number of separate regions (each with its own heightmap) in the project. This is good if you are making a large, multi-terrained or zoned world in your game. I suggest if you just want to make a nice heightmap to keep the number of sectors to 1×1. Hit OK and we get to the main program screen now. You will see a dark gray square (or squares if you made multiple sectors, but I will assume you only made 1). in a larger gray square. see Pic 1. Obviously, each dark square is a sector. Double click the sector(a thumbnail of your heightmap) to get into the main heightmap editing mode.

We are now in 2D heightmap mode. You can move your mouse to the desired area and press the up arrow to raise the height. This I find a bit cumbersome and will not be the focus of this tutorial. Much more powerful is the 3D editing mode. Look in the upper right and click the 3D button. See Pic 2. We now see a 3D grid at the corner of the heightmap. The first thing to do is press N to bring up a minimap so we can see where we are on the heightmap. The initial position is in the bottom left. To move around, the controls are: - arrow keys: move around FPS style. - hold middle mouse button: mouselook. (If you don’t have a middle mouse button, you can hold Ctrl instead). - mouse wheel scroll: zoom in and out. (If you don’t have a mouse wheel, you can press Page Up/Page Down instead). - hold shift to move faster with arrow key movement.

Okay, so we now know how to move around. Let’s start making a heightmap. You will see in the right pane that there are many options as far as tools go. Changing the tool size will adjust the radius of your “brush”. I picked 10 for this example. Keep it circular for now, but you can switch to a square brush if you wish by pressing the corresponding square icon just to the left of the tool size textfield. Below the toolsize is the shape of the falloff for the tool. I like to keep it in the middle one and I will show why it won’t really matter later on. You can adjust the next 3 values to fiddle with its exact falloff settings but I just left it at the default values. I raised the camera a bit and angled it down to a sort of isometric view - I find this easiest to work with. Now, let’s make a hill.

Hold down the left mouse button, and drag the mouse up to make a nice hill. Press and hold R and left click on the top of the hill. This will display the human reference model (about 6 feet tall) so you can guage the scale of your hill. See Pic 3. If you right click and hold, you will just raise that vertex instead affecting all vertices within the radius of the brush. Lets move near the center of the terrain by clicking on the minimap near the center. Zoom out some more so we have more space to work with. Lets create several overlapping hills of various heights just as we made the first hill. After making several hills, you will notice on the minimap that it shows up as a lighter gray, just like a standard heightmap. Okay, this is all fine and dandy, but it looks unnatural and, well, crappy.

You will notice now that you are on the 2nd tab of the right pane (heightmap editing tab). See Pic 4. Lets click on the third tab to go bring up the filtering options. We see in the filtering subsection that the tool is round, of size 5(increase this to 8), and the tool is “Average”. Now lets click and hold the left mouse button and move around all the edges of the mountains to smooth them out and make them look more natural. See Pic 5. It now looks a bit more natural. I’m going to add some more, higher mountains to complete my scene. To do this I simply go back to the 2nd tab and adjust heights, then re-average those new areas. Okay, back to the filtering.

Lets now switch from “Average” to “Raise/Drop” filter and we can adjust the mountains this way if you don’t want to make drastic changes as you would in heightmap editing mode. Adjust your mountains how you like and let’s move on. Switch to the “Gaussian Noise” filter so we can add some roughness to our mountains. If you increase the “half value width” to a greater value, you will get more pronounced results. Likewise, if you uncheck the Averaged checkbox, the results will be more pronounced but harsh. See Pic 6.

Now lets move to another location on our heightmap by clicking somewhere on the minimap. Switch to the heightmap editing tab and create a hill. Switch back to the filtering tab and select the “Flatten” filter. This filter will adjust the surrounding heights to the height of the brush when you initially click and hold the left mouse. Position the brush at the center of the hill’s apex and left-click and hold. Drag the mouse around the scene. You should see something like this: Pic 7. In this manner we can create plateaus and other such geographic features and then filter them to our heart’s content. I’m going to pretend we are now done with our awesome heightmap, so let’s export it.

From either the Heightmap editor or Filtering pane, click Save, then click Close in the “Sector detail editing” subsection. You should now be back to the initial sectors screen. Go to File→Export... and select BMP as the export type. Hit OK, keep the “grayscale” option, then hit OK again. Select a place to save your BMP and hit OK. In that directory should be a file called 00000_00000.bmp which is your 1024×1024 heightmap. Upon exporting I saw that the variance of gray was not that great (due to me making short hills....think about how large the 3D space was on the x and z plane and realize all of us probably made comparatively short hills). You can keep this in mind when creating a heightmap “for real”, or you can always go into a paint program and play with the color settings or contrast to make the hills more pronounced. To avoid this in the future, zoom out very far (look at the View height in the right pane) and switch the no scale drop-down list to grayscale to the right of the viewport and you can see the minimum and maximum heights of your map thus far.

This is just showing you the very beginning features of this great program, but it should be enough to get you started. I hope this helps other people make heightmaps as I have found it difficult in the past to make good levels. I previously used Bryce which was not bad, but really wasn’t as editable as this program, plus this program has “unlimited” undo’s and the nice filter effects. If you have any further questions you can consult the well-crafted manual. Good luck!

**Please note that on exported heightmaps there is a barely visible PnP watermark. You can either remove it manually, or take a screenshot of the 2D sector mode. I consider it a small annoyance to spend an extra 2 mins fixing that when I have spent 1 or 2 hours making a nice heightmap level for my projects.

tutorialsarticlesandexamples/create_a_landscape_in_pnp_terraincreator.txt · Last modified: 2013/11/22 13:32