diff options
author | Jacques Lucke <jacques@blender.org> | 2022-07-25 12:32:27 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2022-07-25 12:32:39 +0300 |
commit | 53113a2e571972e835f43217fea217066892e435 (patch) | |
tree | 154ead0181459d67844fbfca9b9948c545519bb3 /source | |
parent | c5394f3db83fe189316f420b0613fb00ceefb7ef (diff) |
Geometry: detect when the sample uv is in multiple triangles
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/geometry/intern/reverse_uv_sampler.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/geometry/intern/reverse_uv_sampler.cc b/source/blender/geometry/intern/reverse_uv_sampler.cc index 54df43db4ea..39fec40333c 100644 --- a/source/blender/geometry/intern/reverse_uv_sampler.cc +++ b/source/blender/geometry/intern/reverse_uv_sampler.cc @@ -67,9 +67,9 @@ ReverseUVSampler::Result ReverseUVSampler::sample(const float2 &query_uv) const const float z_dist = std::max(-bary_weights.z, bary_weights.z - 1.0f); const float dist = MAX3(x_dist, y_dist, z_dist); - if (dist <= 0.0f) { - /* Return early if the uv coordinate is in the triangle. */ - return Result{ResultType::Ok, &looptri, bary_weights}; + if (dist <= 0.0f && best_dist <= 0.0f) { + /* The uv sample is in multiple triangles. */ + return Result{ResultType::Multiple}; } if (dist < best_dist) { |