[Bf-blender-cvs] [135e530356d] master: Fix T99781: uv minimize stretch now unflips flipped faces
Chris Blackbourn
noreply at git.blender.org
Tue Jul 19 00:26:28 CEST 2022
Commit: 135e530356d09378f153c4cb483a77b3375cc4f2
Author: Chris Blackbourn
Date: Tue Jul 19 10:24:29 2022 +1200
Branches: master
https://developer.blender.org/rB135e530356d09378f153c4cb483a77b3375cc4f2
Fix T99781: uv minimize stretch now unflips flipped faces
Add a small gradient to flipped faces proportional to length of edges.
Differential Revision: https://developer.blender.org/D15475
===================================================================
M source/blender/geometry/intern/uv_parametrizer.c
===================================================================
diff --git a/source/blender/geometry/intern/uv_parametrizer.c b/source/blender/geometry/intern/uv_parametrizer.c
index 7ef17d4e9d0..38924c718c3 100644
--- a/source/blender/geometry/intern/uv_parametrizer.c
+++ b/source/blender/geometry/intern/uv_parametrizer.c
@@ -3307,8 +3307,10 @@ static float p_face_stretch(PFace *f)
area = p_face_uv_area_signed(f);
- if (area <= 0.0f) { /* flipped face -> infinite stretch */
- return 1e10f;
+ if (area <= 0.0f) {
+ /* When a face is flipped, provide a large penalty.
+ * Add on a slight gradient to unflip the face, see also: T99781. */
+ return 1e8f * (1.0f + p_edge_uv_length(e1) + p_edge_uv_length(e2) + p_edge_uv_length(e3));
}
w = 1.0f / (2.0f * area);
More information about the Bf-blender-cvs
mailing list