blender/intern/mikktspace
Lukas Stockner 119846a6bb Mikktspace: Speed up the merging of identical vertices
Previously, Mikktspace just bucketed the vertices based on one spatial coordinate and then ran full pairwise comparisons inside each bucket.
However, since models are three-dimensional, the bucketing has a massive false-positive rate, and since pairwise comparison is O(n^2), the merging process is very slow.

But, since we only care about exactly identical vertices, there is a much more efficient approach - we can just hash all values belonging to each vertex and form buckets based on the hash.
Since the hash has 32 bits and considers all values, false-positives are very unlikely - and since both hashing and the radixsort that's used for bucketing are O(n), both asymptotical and
real-world performance (as well as code complexity) are significantly improved.
2017-11-17 18:34:53 +01:00
..
CMakeLists.txt CMake: use -Wshadow warning for C source 2015-11-23 17:43:55 +11:00
mikktspace.c Mikktspace: Speed up the merging of identical vertices 2017-11-17 18:34:53 +01:00
mikktspace.h style cleanup 2012-06-06 22:38:39 +00:00