improved camera 2d<->3d switching