Fix T95212: Mirror modifier normals crash
The vertex and face normals from the input mesh were used to calculate the normals on the result, which could cause a crash because the result should be about twice as large. Also remove an unnecessary dirty tag, since it is handled automatically when creating a new mesh or in the case of the mirror modifier, when calculating the new custom face corner normals.
This commit is contained in:
parent
d7ac659e02
commit
834b966b41
Notes:
blender-bot
2023-02-14 10:32:59 +01:00
Referenced by issue #95212, The mirror modifier crashes Blender
|
@ -420,7 +420,7 @@ Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(MirrorModifierData *mmd,
|
|||
/* calculate custom normals into loop_normals, then mirror first half into second half */
|
||||
|
||||
BKE_mesh_normals_loop_split(result->mvert,
|
||||
BKE_mesh_vertex_normals_ensure(mesh),
|
||||
BKE_mesh_vertex_normals_ensure(result),
|
||||
result->totvert,
|
||||
result->medge,
|
||||
result->totedge,
|
||||
|
@ -428,7 +428,7 @@ Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(MirrorModifierData *mmd,
|
|||
loop_normals,
|
||||
totloop,
|
||||
result->mpoly,
|
||||
BKE_mesh_poly_normals_ensure(mesh),
|
||||
BKE_mesh_poly_normals_ensure(result),
|
||||
totpoly,
|
||||
true,
|
||||
mesh->smoothresh,
|
||||
|
|
|
@ -120,9 +120,6 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
|
|||
|
||||
result = mirrorModifier__doMirror(mmd, ctx->object, mesh);
|
||||
|
||||
if (result != mesh) {
|
||||
BKE_mesh_normals_tag_dirty(result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue