Yes, I understand one way to get imperfections is to use the imperfection roughness map in the shader, but I want the imperfection just in some places of the object. So for example I have a concrete material setup with albedo, roughness, and normal maps. And I have downloaded this imperfection decal that has an albedo and opacity map given. Is there a way to set up this albedo and opacity texture and then paint with it?
Also, I got an imperfection from megascans which came with a roughness map only, this preview looks great but I can never get such a result. Is there a way that somehow I can paint this imperfection in just some areas
When I texture paint by opening this map the result is nowhere near as the preview.
If you have decals with opacity, those can be placed on planes that you then place on walls. Decals are intended more for game engines, which have actual decal systems (at least, I can tell Unreal does).
In Blender, the easier way would be to create 2 versions of the same texture, one dirty and the other clean. You then plug the 2 textures in a mix rgb node. Then, you create a new texture that you plug in the factor of the mix node and you use it to paint a mask to blend between the clean and dirty textures. In order to create the dirty texture, you could search for “seamless imperfection textures” and layer some of those over your existing texture.
Or, alternatively, setup 2 entire material node trees, plug them in a mix shader and use the same method to mix between 2 entire materials. At the end, you can then bake the result to a single texture if you want.
The reason previews look different is that roughness maps tend to look different between 3D software. You can improve them by sending them through a color ramp and moving the 2 colors around to adjust the map.
I have no idea how to paint a mask. Have you seen the subway video by Blender Guru, the part where he paints that dirt on the ceiling? (https://www.youtube.com/watch?v=nb6rSMAooDs&t=734s) {11:47}. I can’t seem to do that in blender 3.1. When I do paint I get something like this which is nowhere near the preview.
I can just do the imperfection the classic way, by using the imperfection roughness map in principle shader, but that puts it on the entire object. And I don’t know about painting masks so that I can put that in just some areas.
I think this video depicts exactly what I want to achieve.
It sounds like your problem is not so much with texture painting, but rather knowing how to use the texture in the material editor. I am not going to repeat an entire tutorial in a comment, but I have something slightly different that might help you:
It uses a mix rgb node set to multiply, so the dirt texture appears as a dark layer on top of the concrete. The color ramp controls the dirt texture, allowing its contrast to be adjusted precisely.
The mask texture is just a new black image that you create in Blender. You then paint it with a solid white brush and this will decide where the dirt texture appears. The mask doesn’t need to be painted with a textured brush, as it will reveal dirt which is already textured.
Alright thanks mate, I’ll give this a try.