[Bf-blender-cvs] [7965c735f12] blender-v2.83-release: Fix T73286: Projection Painting Dense Mesh Bleed

Jeroen Bakker noreply at git.blender.org
Thu May 14 14:30:18 CEST 2020


Commit: 7965c735f12b885803933363e9b1ca8e85067af6
Author: Jeroen Bakker
Date:   Thu May 14 14:22:52 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB7965c735f12b885803933363e9b1ca8e85067af6

Fix T73286: Projection Painting Dense Mesh Bleed

When projection painting a dense mesh a face can be marked
PROJ_FACE_DEGENERATE when it is too small. Degenerative faces are
handled differently and as documented can create incorrect results.

Not sure what these incorrect results are and if there could be a better
solution for handling these results.

This fix would only mark a face degenerative when all the verts are the
same.

Reviewed By: Campbell Barton

Differential Revision: https://developer.blender.org/D7662

===================================================================

M	source/blender/editors/sculpt_paint/paint_image_proj.c

===================================================================

diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c
index 6af9ec01fc3..af84cb2d15b 100644
--- a/source/blender/editors/sculpt_paint/paint_image_proj.c
+++ b/source/blender/editors/sculpt_paint/paint_image_proj.c
@@ -4022,7 +4022,7 @@ static void project_paint_bleed_add_face_user(const ProjPaintState *ps,
      * Ideally this would be checked later, not to add to the cost of computing non-degenerate
      * triangles, but that would allow other triangles to still find adjacent seams on degenerate
      * triangles, potentially causing incorrect results. */
-    if (area_tri_v2(UNPACK3(lt_tri_uv)) > FLT_EPSILON) {
+    if (area_tri_v2(UNPACK3(lt_tri_uv)) > 0.0f) {
       const int lt_vtri[3] = {PS_LOOPTRI_AS_VERT_INDEX_3(ps, lt)};
       void *tri_index_p = POINTER_FROM_INT(tri_index);



More information about the Bf-blender-cvs mailing list