From 7965c735f12b885803933363e9b1ca8e85067af6 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Thu, 14 May 2020 14:22:52 +0200 Subject: 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 --- source/blender/editors/sculpt_paint/paint_image_proj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); -- cgit v1.2.3