change textures (or models?) as object falls through a plane

Imagine a 3d character falling down. As they fall they are dressed in a suit. They fall through a plane, and as they pass through the plane their outfit (whether that’s the model and/or just the texture) changes, but the part of their body that is above the plane remains as the first model or texture, and the part of their body that falls beneath takes on a new texture or model. So if their torso fell through, it would be the torso of a new character or texture, let’s say dressed as a priest. Once they have passed through the plane entirely, they are a priest.

Is there a good way of going about this? In the example image I’ve uploaded I’m just using a cube, but you can imagine it falling down. The bottom half of the cube would have a different material than the top as it falls.

If its just a color or material, perhaps simplest way would be custom shader,
inside shader check if worldspace Y value is less than …, then draw another texture instead…

Or if the model should change also, then maybe stencils, similar to effect like

(so you would have 2 models, only visible based on the mask)

maybe 2nd camera could work also, with masking like

although custom shader could hide lower part mesh also (discard/make it transparent, based on Y value),
this should be easier than those masks…