[perspectiveTaking] Generalize viewports paradigm