forked from blender/blender
Hans Goudey
c8c6f62cf3
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: blender/blender#110478 Pull Request: blender/blender#112055 |
||
---|---|---|
.. | ||
engines | ||
intern | ||
tests | ||
CMakeLists.txt | ||
DRW_engine.h | ||
DRW_pbvh.hh | ||
DRW_select_buffer.h |