Files
UnrealEngineUWP/Engine/Source/Developer/MeshUtilitiesCommon
danny couture edddecfb8c Improve performance of UV island packing
- Test rows from longest to shortest to get rid of one inner loop in the hot path
  - Add lookup table to skip another free segment inner loop in the hot path
  - Added island hashing to skip directly to last known best position
  - Split loops, simplify code and add comments for clarity
  - Reduce data copying and clearing to working area only
  - Multithreaded initial scale search when complexity is high enough
  - Added a segment grid along the Y axis for more efficient search of taller island
  - Added ability to log packing stats per island in Insights to understand algorithmic behavior
  - Now able to pack 300k islands on a 2048x2048 texture in under 60s using 4 cores

  - Improvements made while maintaining backward compatibility (same output as before)
     - 52m16s -> 80s for DATASET-0002a (foliage)
     - 148s -> 105s for DATASET-0008a
     - 333s -> 8.5s for DATASET-0020a (house)  using 2048x2048 MinResolution
  - Improvements made while activating segments in 2D including packing efficiency improvements
     - 52m16s -> 14s (efficiency 95.52% -> 97.68%) for DATASET-0002a (foliage)
     - 148s -> 105s (efficiency 63.3% -> 63.3%) for DATASET-0008a
     - 333s -> 6s  (efficiency 93.5% -> 98.57%) for DATASET-0020 (house) using 2048x2048 MinResolution

From dev-enterprise[at]9485619

#jira UE-82137
#rb Johan.Duparc, JeanMichel.Dignard

#ROBOMERGE-SOURCE: CL 9730840 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v539-9700858)

[CL 9730842 by danny couture in Main branch]
2019-10-21 06:30:37 -04:00
..