How to apply mask to parts?

Hello! I want to render only a half of a big model in a ViewportFrame, is this possible? 0.999 glass transparency trick doesn’t work for me, because it hides not only parts inside it, but also parts behind it. I can’t really use UnionParts because they are bad for performance and parts inside ViewportFrame can move.

I could reverse everything and display real world in ViewportFrame instead as an overlay, but I don’t like that idea.