fc64f4868230638162d5ec56886a820bab26b063
Glow effect was doing the correct thing algorithmically (separable gaussian blur), but it was 1) completely single-threaded, and 2) did operations in several passes over the source images, instead of doing them in one go. - Adds multi-threading to Glow effect. - Combines some operations, e.g. instead of IMB_buffer_float_from_byte followed by IMB_buffer_float_premultiply, do IMB_colormanagement_transform_from_byte_threaded which achieves the same, but more efficiently. - Simplifies the code: removing separate loops around image boundaries is both less code and slightly faster; use float4 vector type for more compact code; use Array classes instead of manual memory allocation, etc. - Removes IMB_buffer_float_unpremultiply and IMB_buffer_float_premultiply since they are no longer used by anything whatsoever. Applying Glow to 4K UHD sequencer output, on Windows Ryzen 5950X: - Blur distance 4: 935ms -> 109ms (8.5x faster) - Blur distance 20: 3526ms -> 336ms (10.5x faster) Same on Mac M1 Max: - Blur distance 4: 732ms -> 126ms (5.8x faster) - Blur distance 20: 3047ms -> 528ms (5.7x faster) Pull Request: https://projects.blender.org/blender/blender/pulls/115818
…
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%
