Page MenuHome

Modifiers: require every modifier to copy mesh settings itself
ClosedPublic

Authored by Brecht Van Lommel (brecht) on Sep 16 2019, 11:57 AM.

Details

Summary

Modifier stack evaluation would copy mesh settings other than mesh topology
automatically, outside of the individual modifier evaluation. This leads to hard
to understand code, and makes it unclear which settings are available in following
modifiers, and which only after the entire stack is evaluated.

Now every modifier is responsible to ensure the mesh it outputs preserves the
required settings, or alters them as needed.

Fixes T64739: incorrect texture space for various modifiers

Diff Detail

Repository
rB Blender

Event Timeline

This revision is now accepted and ready to land.Sep 19 2019, 11:28 AM

Generally LGTM, though I would not be too much surprised if we get some side-effects from that change, things are fairly hard to fully track in that code area.

Also, next time please at least poke me before committing if you assign me as single reviewer. Not especially thrilled to see it committed while am half-way in review, feels like am being useless here. 3 days for a not-so-small patch is a *very* small review window.

source/blender/blenkernel/intern/mesh.c
675

I’d also check that this is not same pointer as me_src->bb (and same below with mat one), you never know… Or at least an assert.

Also consistency, thought we agreed on not doing implicit NULL pointer check (i.e. me_dst->bb != NULL, just like below with mat)?

[EDIT] Done as rB658d7eeed274