14e3523ac26cec0b99d51cde299e2014d23f920e
Implement the next phases of bounds improvement design #96968. Mainly the following changes: Don't use `Object.runtime.bb` for performance caching volume bounds. This is redundant with the cache in most geometry data-block types. Instead, this becomes `Object.runtime.bounds_eval`, and is only used where it's actually needed: syncing the bounds from the evaluated geometry in the active depsgraph to the original object. Remove all redundant functions to access geometry bounds with an Object argument. These make the whole design confusing, since they access geometry bounds at an object level. Use `std::optional<Bounds<float3>>` to pass and store bounds instead of an allocated `BoundBox` struct. This uses less space, avoids small heap allocations, and generally simplifies code, since we usually only want the min and max anyway. After this, to avoid performance regressions, we should also cache bounds in volumes, and maybe the legacy curve and GP data types (though it might not be worth the effort for those legacy types). Pull Request: https://projects.blender.org/blender/blender/pulls/114933
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
