add 3d zoom function