Terrain Painter [DEPRICATED]

Terrain Painter
[DEPRECATED]

Terrain Painter is a terrain extension to make it easier to paint Unity terrains. Terrain Painter has a variety of painting tools;

  • Painting steep hills without affecting the flat parts
  • One-click terrain paint which paints the whole terrain in a single click
  • Texture brush which can also paints cliff sides with a selected texture
  • Height based brush
  • Noise option
  • Blur and sharpen splat-maps
  • Paint details/foliage
  • You can also import custom brushes

Experimental features:

  • Load/Save splatmaps (for now, only works with same splat-map size and same amount of terrain textures)

Notes:
I would love to see some results, so please feel free to post your results!

The noise option is by default a bit subtle. To get a more visible result, the noise image should have a bit more darks than whites.

Changelog:
v 1.3.8

  • Placed custom brushes in “Editor Default Resources”. this folder has to be manually moved to Assets (the root project folder).
  • Brushes use alpha channel instead of grayscale.
  • Added unity default paint brushes.
  • Detail painting with one detail fix.
  • Non 1 terrain aspect ratio paint fix.
  • Brush shader updated.

v 1.3.7

  • Unity 5.4 error fix
  • Rotatable brush (press and hold CRTL and drag with the mouse)
  • Tool-tips option added (basic tool-tips only)

v 1.3.6:

  • Texture select added (Sharp/Smooth splat-map tool)
  • Small UI changes
  • Code improvements

v 1.3.5:

  • Splat-map Smooth tool
  • Splat-map Sharp tool

v 1.3.4:

  • Foliage feature added
  • Paint optimizations
  • UI improvements

v 1.3.3:

  • Projector Bug Fix for Unity 5.3

Asset Store

1 Like

A possible feature. A noise option (see image below). Please let me know if you would like this option, if you like this option I will add it to the tool.

Thanks for an amazing tool.
I bought this yesterday and it has saved me a lot of time.

I do get an error when I try to build a project containing Terrain Painter though.
If I remove the folder, I can build as normal.

I will post the error here in a bit. It is something to do with UnityEditor.

Hi there, is it possible to randomly swap textures (i.e. mix up the textures) to a flat terrain? I would be interested in the noise brush, but very slight but rough texture, similar to what you have on your photo.
Thanks

Do you mean a noise brush/one-click-paint that paints multiple textures at ones?
Thanks for the suggestion, I really appreciate it!

And for the bug that @mrmdesgin called, I gave him a quick solution. In the next update the bug is solved.

I’ve just bought the asset, I’m very pleased with it, thanks a lot. What I meant was the noise option you mentioned two posts earlier, the effect it’s had on that picture is very nice. Another option that would be great would be to allow painting grass, I like the fact you can increase the brush size to any amount, and it would be good to be able to paint large areas with grass and bushes, rather than have to do them in small patches at a time which not only takes ages, you can end up with uneven distribution. Or an option to add grass/bushes based on height, i.e. ferns and green grass near the water’s edge, and other bushes and drier grass higher up.

@jonfinlay I am going to include the feature showed at post #2. And your idea of painting grass and bushes is great! I certainly going to dive into that one.

Also added a feature that allows you to save your splat-maps
2293699--155141--Untitled2.png
(splat-map size: 512x512, texture-count: 12)
It is only possible at splat-maps of the same size and amount of textures.

Terrain Painter Version 1.3.0 is online!

Great! I’ve already had a look at it and it’s working fine :slight_smile: The UI is a great improvement. The noise generator is very subtle though isn’t it, after using it I couldn’t see clearly whether it had been applied or not (which is better as less is more), but just wanted to know that I’d applied it correctly

@jonfinlay Thank you! My goal was to keep it a bit subtle, if you would like to see a more of a noise effect; lower the offset a bit. A bit more blacks than whites would give you a nice result. Also mess around with the scale.

Yeah I noticed the overall shades darken when I applied it, very nice effect! One of the best purchases I’ve made from the asset store :slight_smile:

From a request to include the source code.

The new version including the source code is now available

And for future updates; there will be no DLL files anymore. Because there are more disadvantages that advantages.

Note for upgrading from version “1.3.1” to “1.3.2”;
First delete the old version before upgrading to version “1.3.2”

In some cases there can occur an error at (“tp_LoadSave” line 64) just comment it out.

Sorry for not mentioning it.

Just uploaded a new version (will be available after Unity Asset Store review) that includes the option to safe the settings and enable/disable the paint all option in each tab.

1 Like

From a request to include Foliage. Good news, I am working on it.
I do not know when it is done… but when it is I will post it here.

I was just looking at this picture again, and realised that I’ve never been able to get my noise like that. Which settings did you use? Whenever I increase or decrease the noise generator, the effects are not nearly as visible as this picture.

My settings:
Terrain Texture control: 512
Noise Scale: 100
Noise Amplitude: 1.8
Noise Offset: -1.7
Brush opacity: around 90
Alpha Texture: the second one (just one that is a bit noisy)
The other settings all default

Try some different “techniques”; try some clicking and switching a few times between the texture combination you’re aiming for.

for example a mix between grass and sand, just paint the area with sand, switch over to grass generate new noise texture and do some clicks and switch back to sand.

This should give you some nice results.

I hope this helps you.

1 Like

Great thanks, I’ll give it a shot tomorrow.

I’ve used the exact same settings as you, and also done a lot of experimenting, but the result I’m getting is like the attached the screenshot. The noise isn’t defined like your screenshot, most notably the ‘darkness’. When I apply the texture, I don’t notice any difference, even zoomed close up and from various angles. Do you think it may be the textures I’m using, or another factor? I wanted the noise like you have because it adds a lot of contrast and ‘roughness’ to the terrain, an effect I’m after. As it stands, my textures look too smooth, as in the screenshot. The textures I’m using are here: Unity Asset Store - The Best Assets for Game Making

Any suggestions would be greatly appreciated!
Thanks

It could be a few factors:
The contrast between textures is less than the grass/sand example.

And I think this is the biggest factor;
I forgot to mention the size of my terrain, it was [250 x 250] so the splat-map resolution (512 mentioned in previous post) per unit was (512 / 250) 2.05. And it looks like your terrain is way bigger, so the splat-map resolution per unit is way lower than mine so there will be more blending between those “splat-map pixels”, and so looses contrast.

I hope it makes some sense, but I am going to look how the contrast can be increased on an lower splat-map resolution per unit.

Edit:
I tested it, and I noticed indeed low contrast. I tested it again and without the nice sliders so there where no slider limits and I got this (it is a bit closer).

File: tp_Editor.cs
Line: 281

Steps to replace the sliders with fields:

  • start of line 281, insert this “/*” without the quotes
  • go to line 294, insert before “EditorGUILayout.EndVertical();” this “*/” (It is now commented out)
  • Inert the following code after “*/” and before “EditorGUILayout.EndVertical();”
GUILayout.Label(new GUIContent("Scale", "Noise scale"));
tp.Noise.Scale = EditorGUILayout.FloatField(tp.Noise.Scale);

GUILayout.Label(new GUIContent("Octaves", ""));
tp.Noise.Octaves = EditorGUILayout.IntSlider(tp.Noise.Octaves, 1, 10);

GUILayout.Label(new GUIContent("Amplitude", ""));
tp.Noise.Amplitude = EditorGUILayout.FloatField(tp.Noise.Amplitude);

GUILayout.Label(new GUIContent("Gain", ""));
tp.Noise.Gain = EditorGUILayout.FloatField(tp.Noise.Gain);

GUILayout.Label(new GUIContent("Lacunarity", ""));
tp.Noise.Lacunarity = EditorGUILayout.FloatField(tp.Noise.Lacunarity);

GUILayout.Label(new GUIContent("Offset", ""));
tp.Noise.Offset = EditorGUILayout.FloatField(tp.Noise.Offset);

2406396--164350--Low Res Splat.png

1 Like

Makes perfect sense, it must be this, my terrain is 2048 x 2048, with a resolution of 1024. I’ll see if I can increase the resolution, I wanted the terrain resolution as high as possible because of the viewpoint I’m using in the game as the terrain texture is always clearly visible. Thanks.