Jump to content
bludski

Musings from a terrain creator. Blud's do and do nots.

Recommended Posts

Hi guys. These are my tips and tricks for terrain making for the intermediate to advanced terrain creator. 

Any replies to this post will be deleted by a moderator and I will not respond to any questions here. Everything I do and my entire method can be surmised from this guide.

If there is something you don't understand, go back to the PMC guide or learn some computer gfx basics.

Look here for some free gfx educational material: https://www.3dbuzz.com/?fbclid=IwAR0mzUzEwUA4hI_kK6nOce_c7008vzJUd-tS7Su_VAGoUAPWsnHk5inqhTQ

This is NOT a terrainmaking tutorial. Snakeman has got that covered with the PMC tutorials.

This is simply supplementary information to it and this guide is more like answers to the questions I get most frequently.

 

All your questions will be answered in the official A3 discord server, terrain_makers channel by me or somebody competent.

If @HorribleGoat says it, you can bet money on it being true.

I write this guide to not have to answer the same quiestions over and over.

If somebody doesnt answer you right away in the discord, they are afk and will respond when they see your post.

Spamming is rude so please don't 🙂

 

By reading this guide you agree to my terms which are very simple and as follows:

Pay it forward! Information wants to be free.

 

 

 

DO follow the excellent PMC tutorial by SnakeMan to the letter. DON'T trust any others.

Anything I write here will assume you know ALL the basic information provided in that tutorial. It is the only one without errors and we all contribute to keep it current.

There are other tutorials out there but they are riddled with misinformation and errors.

 

 

If you have done the above, already gotten your first terrain into the game to learn the basics and you now want to start your big dream project, this post is for you!

 

The tips posted here will by no means be the only or the "right" way to do things, but rather how I do it plus some confirmed methods BI use to get their maps to look how they do.(Thanks a lot Ivan!)

 I will also assume you have a basic knowledge of image editors

 

What I intend to cover: Normal maps, Object placement, Buldozer, Photoshop, misc Terrain Builder. Texturing, clutter, performance and many other things.

 

 

This guide is a work in progress and as I work on my own terrains, I will add more information as it occurs to me.

 

TERMINOLOGY

Spoiler

Here are some common technical terms and abreviations used in the community. I willl be using these extensively in this guide without explanation. You should know these before you begin and following PMC will teach you their meaning.

I post these here for lookup.

 

HF                       HeightField. This is your base elevation data for the terrain.

TB                       TerrainBuilder application proper.

BD                       Short for buldozer.

NORMAL           Normal map. Referring to all usages.

SHP                    Shapefile. Refers to file extension. Means either your roads or contextual shapes in TB/GIS

SAT                     Your satellite image layer. Whether you make it entirely artificial as I do or you grab it from GIS data.

MASK                 Your mask layer. There are other forms of mask, however in terrainmaking, it almost exclusively refers to TB mask layer.

VERT/VERTICE A point coordinate in 2/3d space constituting a node in either a 2d shape (road/polygon in tb) or a 3d mesh. (your HF)

TEXEL                Search online for it. Seriously. It is quite important.

PIXEL                 If you don't know by now....

AA                      Anti Air Artillery You should know this..

RGB  RGBA       Red Green Blue (Alpha) values from 0-255. Either in images or rvmats. Rvmats use values from 0.0(black) to 1.0(white) but it is exactly the same. 0.5 0.5 0.5 0.5 is the same as 127 127 127 127 RGBA.

POLYLINE         Used in TB to draw roads for roads.shp.

CONFIG             config.cpp

FPS                    First person shooter... duh!

LOD                   p3d components. Usually refers to visual lods that change over distance unless specified otherwise. Road Lod, Geo, etc.

BMP                 The easiest image format to work with in TB as it loads very quickly compared to the other alternatives.  No reason to use for anything but terrain source raster.

TGA                  The best image format to work with. Lossless. Can handle several bitdepths. TexView2 can work with it and you should use it as source files in your exterrnal terrain artwork and let pbopro convert them to paa when packing.

PNG                  The format you should avoid using.

TIF                    The second best image format as it can handle practically unlimited pixels and channels and you can encode terrain data into it aswell. Can be used as source file for HF if encoded correctly. No reason to use for anything but terrain source rasters.

l3dt                  You should buy it. It is a great tool to help you create and modify your terrain HF and layers.

PS                    Photoshop. Best piece of software in human history. I use it to make all the pixels in my terrains.

GIMP               If you can't afford PS.

 

 

HAVE A PLAN!

Spoiler

The most important thing when starting an extensive terrain project is planning.

I will use my terrain PKL in this example.

 

First. What type of terrain will you be making? What is the setting? What sort of geology? How is the topography? Are you making an island? What is your main ojbective with the map? How do you intend gameplay to work?

 

In PKL my objective was pretty simple. I wanted a dense jungle environment and my only priority is infantry level detail and the best possible boonies experience for infantry combat.

The first thing I did was experriment with map frame settings to see how it runs and what sort of cel size was the highest I could use and still recreate the setting with as much ground detail as possible.

I ended up with 8x8km and 2m cel size. This is enough to be able to make complex fortifications that insert into the ground and roads and have enough terrrain detail that you can find cover from fire even in the open via natural dips and bumps in the landscape.

The second thing I did was to gauge my performance limits. At 1 mill vegetation objects in 8x8km was where I found the ceiling of acceptable fps.

 

How I did this: simply create a square shape inside your mapframe and fill it with objects until you find your limits.

 

Know that not all objects are created equal and not all objects perform the same so it is important that you test this with the actual objects you will use. YMMV.  I will elaborate on this in the performance section.

 

Now, 8x8km and 1 mill objects doesn't nearly create a dense enough jungle experience so obviously we need clearings.

After testing the above I got a reasonably good feel for how dense I can make the object placement if I turn ~half the terrain into open areas.

Now I know what I need and the only thing left is to actually place the objects and have fun creating the sites.

 

 

FOLDER STRUCTURE

Spoiler

For many reasons it is a good idea to split your project into several folders and PBO files.

I always keep my textures, technical images, road files, rvmats and other things directly tied to the map in a seperate folder and pbo so that I can edit these without having to pack the whole project.

 

You can also split the config into which ever pbo you want but there are some problems tied to this.

 

I recommend setting up your folders something like this:

 

p:\yourtag_mapname_TB             <- this is where we keep all the files that are ONLY used in TerrainBuilder.

You save your TB project in here incl \source\

 

p:\yourtag_mapname\                  <- only yourmapname.wrp and config should be in here. ********

 

p:\yourtag_mapdata\                    <- You can put your config here if you want to split that out too. You should put subfolders \data\roads\ here too.

 

p:\yourtag_mapname_layers\     <- This is where we set terrainbuilder to generate layers to. Nothing else should be in here.

 

p:\yourtag_mapname_art\          <- Put all images, rvmats, roads, ground textures, envmaps, mid texture etc in here.

 

Each of these will require a basic config to be packed and the yourtag_mapname.pbo should have the exterior ones referenced in requiredaddons.

 

This way you can alter and pack any of these things without having to pack everyting else at the same time.

 

Mikero added a neat feature to his tools to let you easily deal with the 2gb PBO size limit.

If you split your layers into their own folders like above, you simply do the following:

 

open a cmd prompt.

navigate to p:\yourtag_mapname\

execute:

"dewrp.exe -s yourtag_mapname.wrp"

 

It will then automatically read your exported WRP, know the paths to all your layers and create a new folder structure for you "yourmapname_split" or similar. If you pack this folder, it will generate as many PBO files it needs for you to stay below the 2gb limit.

Remember to alter depends in your config to reflect this. You should from now on disregard the p:\yourtag_mapname_layers\ folders when packing.

 

You will have to do this each time you export a WRP from terrainbuilder as TB will reference the p:\yourtag_mapname_layers\ folders when exporting and dewrp will change the paths to the split folder structure.

 

 

 

 

******** IMPORTANT! Many config values directly effect simulation and discrepancy between what gets baked into binarized *.WRP and difference will cause undesired effects in runtime.

Example, clutter. It is a common belief that ai aren't affected by clutter but they very much are. If you clutter and surface settings are different than what gets baked into binarized wrp and the clutter generated in engine runtime is different, ai will behave weird.

There are also several other issues. It is convenient to have config in it's own folder just for testing clutter and basic config values as it packs in half a second and visual changes are easy to see but it is vital that wrp is then updated with those values so that ai can navigate properly. I always move my config back to mapdata folder next to the wrp when my clutterr blends are finished.

 

IT IS VERY IMPORTANT THAT YOU PACK WRP AFTER ADJUSTING ANYTHING IN EXTERIOR PBOS JUST TO BE SURE.

 

In pboproject you can specify where the terrain config is in relation to wrp.

 

TILES and MAPFRAME

Spoiler

This is where the fun starts. There are MANY things to consider. There are no universal correct or good settings her except "TEXTURELAYER" which must always be as close to 40m as possible due to engine reasons.

Texture Layer is a weird name for that value as it isn't only tied to texture size but also the whole simulation at runtime. Many things will break the further from that value you go. Ai just standing there, collisions not working, roads behaving weird are just some of the issues.

 

 

 

 The most important thing is to NOT use the unsupported 8192x8192 setting. It will ruin your day. Only 4096 or lower. Why? It is unsupported for a reason. TB will be VERY buggy and the heightfield itself is prone to corruption. I know several people who have lost work because they didn't heed this warning and their project is suddenly broken. It also makes TB extremely unstable and will crash with simple terrain edits and various other issues.

 

Before you set up your map frame you should know what sort of topography your terrain has. If it is very flat, you don't need to have a very small cel size.

If you have lots of altitude variation, hills, canyons, gulches, ditches, trenches etc you need a smaller cel size.

 

I would under no circumstance recommend you make bigger terrains than BI does. For many reasons. Take Altis for instance, It is at the very edge of how big a terrain should be in Arma without having too many artifacts. If you go to the airfield on Altis and turn down your terrain settings below ultra, you will see objects hovering above ground on the hill to the west of the airfield with the mil structures on. This is because of how the terrain detail changes with distance. If you look around, some places on the north west of altis, near the windmills also have this issue. If you have big hills with lots of variation, It is imparative that you have a small cel size or any object cresting a hill at medium or long distance, it will hover above the terrain when viewed afar, same with AI. This is why my VIDDA terrain is only 12x12km and will never be bigger. Personally I don't make terrains bigger than this for this reason and because of the time it takes to populate the terrain with objects in acceptable detail.

 

It is up to you though..

 

 

The more terrain detail you have and the higher the cel size, the more floating objects you will have. The lower your cel size, the better you can get rock inserts and other things to blend with your terrain and you can get that microterrain detail that people absolutely love for infantry combat.

 

SAT, MASK AND NORMAL MAPS (TILES/LAYERS)

Spoiler

SAT

 

 

MASK

X8K5obw.jpg

The above is the mask for my discontinued VIDDA terrain. As you can see, the overlap and each tile in the layers is rulered up in photoshop. This is vital if you want to use more colours overall in your mask than just 5+ normal. You are using a normal aren't you?

It is very simple to do. just load in your 1:1 mask and then add your old generated mask tiles in new layers and allign them  to match the texturer. Then simply add rulers. The overlap in each tile will be visible. Use INDEX COLOUR in the exported bmp. Keep the mask PSD/PSB file as it is, as you are likely to want to edit it further in the futurre.

 

Now, the important bit is to make sure that inside each overlap is only the colours shared by the overlapping tiles.

 

so if you have 2 tiles next to each other, one is using colours 1 2 3 4 5 and the other uses 2 3 7 9 1 then in the overlap sharred by them you HAVE to have only the shared coloyurs, 2 3 1. That's it.

 

It may seem pretty complex to start but if you have a good NVME ssd, it is no problem to work on this all inside a layerd PSB file regardless how bit the image and how little ram you have. (see bottom segment in this post)

 

NORMAL

 

 

 

 

 

 

NORMAL MAPS!

Spoiler

Normal maps:

  • Why should I sacrifice a terrain surface just to have a normal map?

Not having a normal map is simply lazy.

WIth Arma3 1.6 update, any terrain without one simply looks washed out and inferior.

 

These screenshot show the importance of a normal map:

48iqZwn.jpg

G14MTdW.jpg

The right side and the left side are both using exactly the same _CO but the right side doesn't have a normal map.

How to make a terrain normal map? First you need to read this: https://community.bistudio.com/wiki/Arma_3_Parallax_Map

It works similarly but instead of having the data in an alpha channel of a NOPX, you simply make a greyscale image and process it with xnormal.

Using X-Normal and photoshop it is pretty easy. By following the info in the post above, create a greyscale image from your SAT source image where the lowest parts are dark and the highest are bright. You don't want to simply take your SAT image and generate a normal from that, but even doing so is better than not having one!

 

Things to consider: Rocky areas should be noisy and span the entire spectrum. Grass should be brighter than roads so it appears as if the grass is above the roads, ditches should naturally be darker and woodlands should stick out from grass plains. This is where you have fun and get creative 🙂

 

I also recommend limiting output levels of the greyscale map before generating normals to around 50-230 rgb or lower, else the effect becomes too extreme.

Unfortunately, xnormal will not handle images bigger than 16384x16384 or such so if you, (like me) use much larger images than that, you have to split your source imagery.

This is no problem as you can simply load the split images into TB and place them in a grid and TB will do the rest when generating tiles. Note you can have as many images you want in tb to consitute your final tiles.

 

If your terrain is 30000x30000, simply split it in four and load the finished normal map imagery into TB with 15000 horizontal offset and/or 15000 vertical to the base coords of your terrain and you are set.

 

But muh tiles?!?! I needs dat extra surface! No... You really don't. You just have to set up your mapframe properly and plan your surfaces.. I will be back with a guide on that soon!

 

 

Xnormal is free! get it here! http://www.xnormal.net/

 

GROUND TEXTURES

Spoiler

PXxY1fU.jpg

 

qQirFFx.jpg

In game it ends up like this. The root squggles stick up out of the ground and the leaves appear to sit on top of the dirt. If you do it right it gets hard to tell what is clutter objects and what is the ground texture.

This is how I put together ALL my ground textures.. Can be done in gimp or ps.

 

 

To make sure your texture tiles perfectly, photoshop has an OFFSET filter which lets you offset the map edges to the centre of the image and you can use the clonestamp tool to get rid of the borders.

 

You MUST read this: https://community.bistudio.com/wiki/Arma_3_Parallax_Map

You also want xnormal: http://www.xnormal.net/

 

 

MID TEXTURE

Spoiler

The mid texture is tricky. I like to think of the mid texture as doing two jobs.

Obviously it is there to create a bridge between your detail texture and  your distant but also it serves to add percieved detail to your sat and heightfield.

 

If we think of the mid detail texture as a tiny height map, we can consider how we want to implement it and the sort of data we want to put in it.

If making a rocky desert terrrain it is fine to use the one BI (up until last time I checked) use on all their terrains which has some rocks in it...

Personally I like to make my own one for each of my terrains depending on what they are.

 

The absolute easiest way to use it is to think of it simply as a height map. That is what I do. I only put greyscale data in mine and it is mostly noise patterns from photoshop.

It is very important to keep the average colour in it as close to 128 128 128 as possible, else it WILL affect overall brrightness of your sat imagery and make the lighting seem off at different times of day.

I cater my middle texture to my most frequent and visible type of ground surface in almost every case. That is most often fields or meadows.

Tweaking your middle according to those, you can create the distant appearance of different patches of vegetation and with a properly configured normal map, it is in my opinion one of the quickest and most effective ways of enhancing the appearance of your terrain.

 

I would never use anything but greyscale in my middle texture. On my terrains, VIDDA and RHSKATYA, the middle is entirely set up to enhance the snow appearance and as such, don't have any definable details. Only noise.

 

A good way to start with middle texture is simply using cloud filter in photoshop with foreground set to  something like 50 50 50 and background 200 200 and then applying some noise. 1% or so.

Then adjust as you need.

 

 

 

For editing terrain technical imagery, it is adviced to keep them and map config in their own PBO you pack alongside the wrp to save time.

 

 

 

 

 

 

 

DECALS

Spoiler

What are DECALS? Decals are objects that you place on the map like any other but they have different properties. Roads are in essence also decals, albeit with properties that the engine can interface with in different ways. I will cover roads in another section.

 

The geometry in the decal is only there to provide UV coordinates so that the engine can map the texture onto the ground. Decals are not to be confused with objects such as BI's blood or puddle models, which are merely planes that sit on the gound. Both have pros and cons. You can have technical LODS in a decal but then you will lose the ability to resize it, as such lods actually add geometry on top of the terrain at runtime. This will also increase CPU load on every frame. Which method you choose depends on your scene.

 

Actual decals should only be placed on level or close to level ground because of how the terrain shading works. Unlike certain clutter, decals will not get any information from terrain shader,(sun,shadow,ambient etc) so if you put a decal on a sloped surface of a hill and the sun is behind, causing shadow on the terrain, the decal will still be fully lit. I am looking into the exact cause of this but it seems in some way tied to a value being read inversely in the engine somehow as the lighting is almost dirrectly opposite of terrain lighting.

 

 

The above limits how decals can be used.

How to make a decal? Simply create a flat plane in ObjectBuilder, go to "points/properties" and set Surface to On surface. create UV map and apply some texture and material.

Smaller decals will use a lot less CPU time than big decals. This because a decal is constantly updated and "created" in every frame as distant terrain is changed. Technical lods drastically increase this. (extensively tested)

BI type ones set to "above surface" turns them into a plane that just sits on the ground and is thus much easier on the simulation.

 

Simple decals without any technical lods, land class and are only visual (how I do it) are extremely light on CPU use but footstep sounds etc have to come from the terrain surface below. They also render much further than normal roads do.(THE ENGINE CAPS DRAW DISTANCE ON ROADS GENERATED ON RUNTIME DIFFERENTLY THAN PLACED ONES EVEN THOUGH BOTH ARE DECALS). You can use land class on them to affect this if you need to.

 

 

 

IMPORTANT NOTE: YOU CAN NOT ADJUST SIZE OF A DECAL THAT HAS TECHNICAL LODS. THIS IS BECAUSE OF HOW THE GEOMETRY OF THE LOD IS SET ON OBJECT SPAWN AND CANNOT BE ADJUSTED LATER ON IN RUNTIME. THE DECAL SHAPE IS GENERATED VIA OBJECT DEFAULT SIZE IN THE GEO LODS AND THE SIZE CHANGE HAPPENS AFTER THIS WHEN THE MAP IS LOADED AND PERPETUALLY WHEN THE GAME IS RUNNING. THUS YOUR TECNICAL LODS WILL ALWAYS BREAK IF YOU RESIZE THE DECAL.

 

 

 

ROADS

Spoiler

Roads in Arma 3 are super easy compared to Arma 2. You should already have followed PMC and know how they work. The most important thing about them is to have the continuous network working properly and have enough clearing on the sides of them for the vehicles you intend to drive there. Look at Tanoa.  Myself I only use 100% artificial  terrrain data so I paint my roads by hand in TB as I go with the terrain. I find it is too much hassle converting and adjusting real roads from GIS and would rather simply paint them down perfectly instead of having to fix and resize and what ever else.

 

My good friend @lappihuan has made some good tools to help us with this. With his tools loaded (they come with mikero tools) it is very quick and easy to make roads.

You paint the roads in TB, export to shp, then in buldozer hit the 1 key to rerfesh the road, and hit 3 to show road debug.

When you hit 3, it will draw some balls on each road node. If there are any red balls, roads won't work properly. if all balls arre blue, it works fine.

Example image with bridge:

aa6hSnS.png

If your roads are set up correctly like this. AI should work perfectly. If they do weird stuff and everything seems normal. try to create more clearing around the road.

If you have a red ball in the middle of a road, try nudging the vertices around a little in TB and refresh in buldozer to see if that solved it.

Some times you will need to slightly modify terrain and nudge objects a little to make the road network connect properly.

 

AI CONSIDERATIONS

Spoiler

 

 

THINGS YOU SHOULD CONSIDER

Spoiler

 

 

HARD EARNED EXPERIENCE

Spoiler

Never secondguess what Bohemians do. If you can think of it, they have tried it and if they don't do it in their terrains, it is for a reason. (Exception being artistic choices.)

 

Backup your map core components constantly.

You want to always have your heightfield and object placement backed up.

Terrainbuilder is a fickle mistress and you have to treat her right. It is easy to corrupt your data if you don't do things right.

It is VERY important to let terrainbuilder "breathe" a little between operations. ALWAYS pay close attention to the titlebar of TB as it will change depending on communication between buldozer and itself. if it says Queue occupancy 0/2048 then you are safe to do another operation. ALWAYS give some seconds between making manual terrain edits and moving objects around. It is very easy to make TB crash if the que goes over 2048 operations it has to synch.

 

This is what my desktop looks like when working in buldozer.

yVLi0v1.png

 

 

 

Get the fastest ssd you can possibly afford. Trust me on this. Even if you have just 12gb ram, you can create images tens of thousands of pixels wide with quickness in photoshop by simply saving imagery to and using an NVME ssd as scratchdisk.

When working on projects this big, no matter how much ram you have you will run out so the amount you have doesn't really matter. Same goes for loading into the game and starting buldozer. When spending hundreds and hundreds of hours worrking on something, seconds add up to hours faster than you would think. Time is money and all that.

64gb ram is nice and all but if your data is bigger than that in memory anyway (which it will be when editing sat imgs etc), superfast SSDs are a much better investment.

 

I will add more content very soon. This post might get extensive and each bit of info will be in their own spoiler.

 

 

What I will NOT cover:

Modeling.

Configs.

Packing your terrain.

Real world data.

 

  • Like 12
  • Thanks 6

Share this post


Link to post
Share on other sites

01.02.20 Updated. Added middle_mco and folder structure sections.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×