I watched a video about WoW's engine from the latest blizzcon. They showcased their terrain painting features and I was really curious as to how they were able to paint textures onto very low res terrain in high detail. With Unity, as far as I know you can only really paint terrain in square tiles. In their engine, they painted the textures with a circular brush and they could do it at a very low scale. Here's the video of it, on the right side - at about 20:13 there's a fairy decent view of it.
https://youtu.be/eYDd3T_s1zo?t=1213 if anyone has any insight as to how this is done that'd be great. Thanks.
Replies
You can paint with a variety of brush shapes; circle is only the default.
You're painting the transitions between textures, which are being tiled across the terrain.
In our game, we use a custom terrain shader I made that uses the tiled textures to add detail in the transition areas. Ordinarily it's a linear blend, but that looks boring, and unnatural.
Anyhow some pics in my sketchbook.
http://polycount.com/discussion/160691/sketchbook-eric-chadwick
Maybe your computer is too slow to paint properly?
And are you using a tablet or a mouse? Tablet makes a huge difference in control and subtlety.
I put screenshots in my thread about how to setup Shader Forge to make a modulated heightblend shader.
Though I went a slightly different route than the blog you linked... I don't use an alpha channel. I use only one texture to store four terrain textures, in red green blue and alpha channels. Then I use each one for both color and height.
But ultimately this is not what you want, if you're making a terrain for an actual game. You don't want a super high-resolution splat map, because that will be too expensive in memory, and also balloon your download size.
The trick is to use as low resolution as you can, and still make it look good. The never-ending game art quandry.
So to that end, the heightmap modulation shader is a good solution. You use a fairly low-res splatmap, and rely on the heightmaps to provide detail in the blends. The downside of this is you can't get 1-pixel control for your terrain painting. You just have to do as good as you can, and let the textures do the rest. Lightmapping helps a lot, good material colors, etc.
The shader is in my sketchbook thread.
https://gyazo.com/e40157bfea9285b7f321cf2b213b1dd9
and here's what the shader's properties are set as:
https://gyazo.com/62c95d9a65e23bf1adc9670ec349c168 The terrain palette is properly setup as well with grass being 4th or alpha. Any help would be appreciated
Here's the shader code:
You could try using the Unity version that was current then, or you could contact the author and ask for help, or you could make your own shader and use the current Unity build (this is what I did for my own terrain).