- Fix a comparison bug in VHACD Volume::Voxelize causing the number of voxels to explode when x == y and z < x.
- Activate axis alignment in VHACD to fix huge voxels being created due to an elongated part being placed diagonally in the voxel space causing precision problems.
- Make the data ordering in vhacdVolume GetVoxel more cache friendly toward loops iterating over (i,j,k) in that order.
- Parallelize bulk convex hull computation and make it available in blueprint.
- Replace standard allocator with our own (TBB) so that the parallel code actually runs faster instead of locking on allocs.
- Add an overridable task runner interface in VHACD to reuse our task pool instead of spawning threads for each async task.
- Add an overridable profiler interface in VHACD so we can add Insights tags inside VHACD.
- Fix convex hull computation progress not being shown when run inside a dataprep operation.
- Rewrite voxel flood fill algorithm toward cache friendliness and get rid of extra data structure causing high memory usage on large voxels.
- Recompile VHACD using clang/llvm
Results for running a generic convex hull dataprep operation on all meshes
- 305m @ 20GB RAM -> 2m25s @ 6GB RAM on 7628 meshes (DATASET-0019a)
- 486m @ 49GB RAM -> 3m33s @ 9GB RAM on 5506 meshes (DATASET-0008a)
Tested on Windows/Mac/Linux
From dev-enterprise@11497987
#jira UEENT-3026
#rb Benn.Gallagher, Julien.St-Jean
[CL 11499409 by danny couture in 4.25 branch]