NOTE: this version has reduced-memory material storage compared toFShapeInstanceProxy, but increased cost when switching from a single-material to a multi-material shape (though this should not be happening much if at all).