Texture painting on a landscape - lock ups and best practice advice.

Hey guys. I have a two questions but one in particular has been driving me nuts for the last few days.

So I’m trying to texture a big piece of land. (ant landscape - 128 subdivisions) basically only using two textures of grass and dirt. I project from bounds, create a new 2048x2048 image in cycles and assign it to the material applied. I want the dirt to cover the entire stretch of land and then the grass to overlay it in areas where there would be grass. However, trying to cover the entire mountain range with dirt via texture painting causes my computer to lock up and lag considerably (Windows 8, 16gig ram, 2x Nvidia, AMD FX 8-Core Processor, GTX680’s in GPU Compute Mode), most especially when zoomed out or with a higher brush setting beyond the default 35px.

I’m just looking for a good way I can lay down a starting texture on a landscape that covers the whole thing and then paint over it with the less, prominent details. Or maybe what I’m looking for doesn’t exist. I was told the clone brush works in this case too, but I’m not sure where to reference my texture to clone from besides putting a splotch of it on my mesh to begin with and then re-setting the clone position to further it, but this also takes a decent amount of time.

Just not sure what I’m asking for is do-able.

Bonus Question: If you find you need more space for a region, like say you’re extending a city or a landscape of some kind, how can this be done seamlessly enough?

create a new 2048x2048 image in cycles

Are you using a newer build from graphicall, or are you using default 2.71? I would recommend getting a more recent version to paint with if you must do your texture painting in Cycles, and use the Material draw type for the 3d view. Up til now, I had generally expressed to people starting out in paint to start in Blender render first (internal) and then after painting using GLSL and saving the images, plug them back into Cycles node trees. In your case, you should be able to at least use the Stencil Texture brush to put your stuff down. You might just try and use the Face Masking to limit what you have to deal with in the paint to begin with depending on your intention of later masking.

Thank you for the replies guys. But is there even just a quick an easy way I can just apply a default tile-repeating texture to a mesh and then draw over that with like grass or something? Say for like a flat landscape? I can’t do this with two materials because when I tile one textures material (using scale under the textures tab), it tiles the other material I’m using to texture paint.

Hook us up with a screen shot of your set up, and then maybe we can show you a few ways to get around this. There are many ways to do this as mentioned, but part of it depends on what you are using for your initial textures. You can have multiple UV layers, and reference them so that one image is tiled and another is not, even in the same Material.

I’d stick with texture-painting as your approach. I think you’re correct to have chosen it. You shouldn’t be experiencing these problems. So, let’s find out why you are.

If you stop and think about it, “one way or the other, you’re going to be applying an image-texture to a surface.” Texture-painting is simply a way of interactively building the (one …) image texture that will be applied, drawing pixels in this case from two different sources and “spray painting” them onto a single target map. That’s a good, solid approach. The question before the house is … “why isn’t it working right now for you?” Please provide information as-requested and i’m sure we can help you get to the bottom of this very quickly.

Alright, here are some screens of my setup.


  1. My node tree. Just the UV unwrapped image (2048x2048) applied to a diffuse shader.

2. My mesh. Just an ANT Landscape with 128 subdivisons

3. My materials. The one that I’m using to texture with is ground, which is d

Sorry that got cut off. Diffuse with an image applied to it.

  1. And here’s my workplace as I was currently doing it when it was stuttering.