580833165ca105016af5e5b7338232de429f203b
Currently, while calculating face corner normals, Blender retrieves custom normal data with write access. When the the custom normals in a single smooth corner fan don't match, they are reset to the average value. This behavior is very old, but it comes from when Blender didn't have a strong idea of const correctness. Indeed, modifying custom normal data while calculating normals isn't threadsafe, which is important because normals are calculated for viewport drawing, for example. And in the future, properly caching face corner normals (see #93551) will require the ability to calculate normals on a properly const mesh. The fix is to still use the average of custom normals in a fan, but not write that back to the custom data array. In my testing the results are the same. Setting custom normals still fills the same value for all corners in a fan. Pull Request: https://projects.blender.org/blender/blender/pulls/110478
…
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%
