Page MenuHome

Fix T93084: Area stretch overlay full red on large scale mesh
ClosedPublic

Authored by Philipp Oeser (lichtwerk) on Aug 30 2022, 1:42 PM.

Details

Summary

Issue arises when face areas are really large combined with small UV
areas (report has a mesh ~1.5 km), then precission of shorts is
insufficient.

Now use floats instead.

NOTE: this is an alternative to D15805 (and quick tests show this does not introduce the tiny performance hit as D15805 did).

Diff Detail

Repository
rB Blender
Branch
T93084_b (branched from master)
Build Status
Buildable 23541
Build 23541: arc lint + arc unit

Event Timeline

Philipp Oeser (lichtwerk) requested review of this revision.Aug 30 2022, 1:42 PM
Philipp Oeser (lichtwerk) created this revision.
Brecht Van Lommel (brecht) requested changes to this revision.Aug 30 2022, 1:55 PM
Brecht Van Lommel (brecht) added inline comments.
source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edituv_stretch_area.cc
40

This can just be return uv_area / area; now.

47

This can be ratio * tot_ratio now, also in the GLSL code. inv_tot_ratio can be removed.

This revision now requires changes to proceed.Aug 30 2022, 1:55 PM

The reason this inversion with the negative sign was done before was to fit things in the 0..1 range, that's no longer needed with float.

removed the negative signed version of the total area ratio (since with floats it is no longer used)
Thx Brecht for the hand-holding!

This revision is now accepted and ready to land.Aug 30 2022, 3:08 PM