From a35ad5899fca168e9457af98b7ff11a7c4000ac9 Mon Sep 17 00:00:00 2001 From: Chris Blackbourn Date: Mon, 31 Jul 2023 10:39:24 +0800 Subject: [PATCH] Fix #110626: restore abf uv unwrap logic Regression from 8ace65e3c6. --- source/blender/geometry/intern/uv_pack.cc | 2 +- source/blender/geometry/intern/uv_parametrizer.cc | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/source/blender/geometry/intern/uv_pack.cc b/source/blender/geometry/intern/uv_pack.cc index ec5e23147f8..1befeeff27c 100644 --- a/source/blender/geometry/intern/uv_pack.cc +++ b/source/blender/geometry/intern/uv_pack.cc @@ -2216,7 +2216,7 @@ float pack_islands(const Span &islands, const UVPackIsland_Params blender::Array phis(islands.size()); const float scale = 1.0f; const float max_uv = pack_islands_scale_margin(islands, scale, margin, params, phis); - const float result = can_scale_count > 0 ? params.target_extent / max_uv : 1.0f; + const float result = can_scale_count && max_uv > 1e-14f ? params.target_extent / max_uv : 1.0f; for (const int64_t i : islands.index_range()) { BLI_assert(result == 1.0f || islands[i]->can_scale_(params)); islands[i]->place_(scale, phis[i]); diff --git a/source/blender/geometry/intern/uv_parametrizer.cc b/source/blender/geometry/intern/uv_parametrizer.cc index cb624df42cc..f21cf0e0ad5 100644 --- a/source/blender/geometry/intern/uv_parametrizer.cc +++ b/source/blender/geometry/intern/uv_parametrizer.cc @@ -2984,10 +2984,9 @@ static void p_chart_lscm_begin(PChart *chart, bool live, bool abf) } if (abf) { - if (p_chart_abf_solve(chart)) { - return; + if (!p_chart_abf_solve(chart)) { + param_warning("ABF solving failed: falling back to LSCM.\n"); } - param_warning("ABF solving failed: falling back to LSCM.\n"); } if (npins <= 1) {