diff options
author | Hans Goudey <h.goudey@me.com> | 2022-02-03 19:35:50 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-02-10 19:10:45 +0300 |
commit | c0674aa1450555b99435b9d09f8d94ae856f23d5 (patch) | |
tree | 828a89f2a69d7d344fba84ed471c1126b3d45464 /source/blender/blenkernel/BKE_DerivedMesh.h | |
parent | 94f023023035492da824fb1f4df1067e1e1237f1 (diff) |
Fix T95334: Crash with no vertex normals in multires bake
This is partially caused by a stupid mistake in cfa53e0fbeed7178c78
where I missed initializing the `vert_normals` pointer in
`MResolvePixelData`. It's also caused by questionable assumptions
from DerivedMesh code that vertex normals would be valid.
The fix used here is to create a temporary mesh with the data necessary
to compute vertex normals, and ensure them here. This is used because
normal calculation is only implemented for `Mesh` and edit mesh, not
`DerivedMesh`. While this might not be great for performance, it's
potentially aligned with future refactoring of this code to remove
`DerivedMesh` completely. Since this is one of the last places the data
structure is used, that would be a great improvement.
Differential Revision: https://developer.blender.org/D13960
Diffstat (limited to 'source/blender/blenkernel/BKE_DerivedMesh.h')
-rw-r--r-- | source/blender/blenkernel/BKE_DerivedMesh.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 1801c1ee1c9..04ea987579d 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -401,11 +401,6 @@ void makeDerivedMesh(struct Depsgraph *depsgraph, struct Object *ob, const struct CustomData_MeshMasks *dataMask); -void DM_calc_loop_tangents(DerivedMesh *dm, - bool calc_active_tangent, - const char (*tangent_names)[MAX_NAME], - int tangent_names_len); - #ifdef __cplusplus } #endif |