Page MenuHome

Fix T88230: Properly handle Face Set visibility in Expand Face Sets editing
ClosedPublic

Authored by Pablo Dobarro (pablodp606) on May 13 2021, 2:40 AM.

Details

Summary

Expand is not expected to update the visibility state of the PBVH, only
the Face Sets IDs. If visibility updates are made accidentally, PBVH
rendering breaks.

In order for this to work properly, the following fixes are needed:

  • Expand should always check for active component before attempting to modify a Face Set ID
  • Expand should always check the visibility state on original_face_sets, as it is the array that contains the visiblilty state that corresponds with the current state used for PBVH rendering. This implies that after any modification done by Expand, the visibility state of ss->face_sets and expand_cache->original_face_sets should match (like in any other tool that does not modify visibility).
  • Expand should never modify the Face Set ID of a poly that is hidden in expand_cache->original_face_sets.
  • When deleting an ID, hidden Face Sets should be skipped when picking IDs for content filling. This avoids introducing hidden IDs back into the visible geometry even after updating its visibility state.

Diff Detail

Repository
rB Blender

Event Timeline

Pablo Dobarro (pablodp606) requested review of this revision.May 13 2021, 2:40 AM
Pablo Dobarro (pablodp606) created this revision.

This fixed the T88230 issue well for me. I didn't notice any other issues from this when testing it.

This revision is now accepted and ready to land.May 17 2021, 12:59 PM