blender/source
Antony Riakiotakis b01dd748b6 Dyntopo PBVH build optimization:
Optimize the full rebuild case for now (though same code can be adapted to
partial redraws)

Main changes here:

* Calculate bounding centroid for faces only once (instead of every intermediate node)
* Faces do not get added to GSets immediately, instead we track a face
array which has faces that belong in a node in consecutive order.
Nodes just keep accounting of start and length in the array.
* Due to faces not being added to GSets, we can skip doing cleanup of GSets
and readdition for each intermediate node and instead only
add the faces to the final leafs node GSets when those nodes are created.

Results:
For a 1.9 million face test model, PBVH generation time (roughly measured by undoing) is
dropped from 6 seconds to about 4 seconds. Still too high, but still a nice improvement.

TODO:
Thread some parts. Unfortunately threading the GSet assignment part might not help much since
we'd need a lot of locking to avoid collisions with node assignments, especially for unique vertices.
2015-05-12 21:03:16 +02:00
..
blender Dyntopo PBVH build optimization: 2015-05-12 21:03:16 +02:00
blenderplayer Depsgraph: New dependency graph integration commit 2015-05-12 16:06:37 +05:00
creator Depsgraph: New dependency graph integration commit 2015-05-12 16:06:37 +05:00
gameengine BGE : Fix Bullet shape margin for triangle mesh static objects 2015-05-12 13:38:46 +02:00
icons
CMakeLists.txt Move tests into tests/ top-level dir 2014-06-18 22:03:46 +10:00
SConscript