Texture painting: is there a way to make the brush falloff consider 3D-space

I have this problem that when I paint an extremity on a character and other body parts happen to line up behind it, the brush paints right past the space between the faces.

brush falloff2

Now I know, a simple face mask would solve the problem of painting unwanted areas, but the problem is that Blender also needs a lot of resources to calculate the distance between the faces, which takes multiple seconds, between every brush stroke. and it does that BEFORE it checks whether the faces are even selected for painting! The further away a face, the longer it takes. I don’t know why this is happening though, as I never dealt

with that problem before… It makes the job unbearably tedious.

Is there a way to tell Blender that I only want to paint what is in close 3D-proximity to where the cursor is clicking? Just like in weightpainting, where spherical and projected falloff can either affect everything that’s in line of sight of the brush, or just what’s close.
Thank you!

You can AFAIK select the wanted faces in edit mode (also tab in texture paint workspace) and switch on Paint Mask directly in Texturepaint mode (left from view) and even select them directly in paint mode with box or circle select .
mask

that is true, but please reread the paragraph under the image. the paint is not the problem - - it’s the time blender takes to calculate the distance between the cursor and a distant face, which is always does, no matter if the face is selected or not

You mentioned face mask and meant what i showed you?? Then maybe your model is by far to high poly for you computer setup (it could get into million of polygons and pixels) you may try to paint the basic features with a lower supdiv and detail paint in an paint programm? Or splitting you modell temporally and joining later.

well the problem only occurs when there’s a lot of “distance” between the cursor and the face its trying to paint on… as in the gif, zooming in on a finger and painting that is no big deal, but as soon as the brush hits a face on the chest behind it, even with face masking on, the whole thing comes to a screeching halt.

it’s true, I have a heavy multires modifier on the character, which I can reduce for many cases, unless I paint details that I sculpted into a high multires level. and yet, it is an issue that this problem occurs while face masking is on! after all, these calculations could be avoided to give way to better performance, right? to check if the face is included in the face mask at all, before Blender starts doing the distance calculations.

The best thing would be if the brush would only paint what’s nearby anyways. I can’t really think of a situation where I’d want to paint two distant spots on a mesh, like the fingers and chest, at the same time. it only leaves me with a finger-shaped stain on the latter.
Weight painting has this feature where the paint brush only affects what’s nearby, under falloff sphere/projected.
But as far as I can see, texture paint doesn’t.

Not exactly the solution you want, but have you explored vertex painting? Especially for blurring, shadows, highlights, it’s great for that. I thiiiiink the system is more efficient and less prone to cpu hickups and unecessary calculations.

I was always a bit afraid to get into vertex painting, so I know very little about it.

Say, if I wanted to use my character for a game engine later down the line, would it be a problem if I used vertex painting? Like, is it possible to bake it onto a low-poly version of the sculpt, and export maps from it?

Vertex colors can be used in game engines directly OR you can bake to texture However, the location of color is limited to vertex resolution, so you may need to do hi to lo poly stuff. However, in terms of smoothness, vertex colors have infinite resolution, like vectors.

You can have up to 8 layers of vertex colors.

okay, hope you don’t mind if I ask you some more questions:

I suppose there will be problems if I start vertex painting on the sculpt while it’s still in progress.

Would the vertex paint be able to get transferred to a retopologized version of that model, or would that distort the position of the colors?

If I painted on a mesh with good topology, and I then decided to slap a higher multires level to work on more details, would that be a problem?

You would do that via data transfer, but accuracy could be a problem. Another problem is Blender does not have visual support for the alpha channel in vertex painting right now.

ORIGINAL

TRANSFER:

oh wait, it looks better after applying the data transfer modifier, but doesn’t preserve that sharp edge.

hm, I see, thank you for these helpful examples!