forked from bartvdbraak/blender
b01dd748b6
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. |
||
---|---|---|
.. | ||
blender | ||
blenderplayer | ||
creator | ||
gameengine | ||
icons | ||
CMakeLists.txt | ||
SConscript |