基本原理:
兩個相機照射同一個物體,將副相機照射到的東西,渲染在主相機機中。
通過調整副相機的位置、角度、視窗大小,使副相機的視野比主相機小且距離物體更近。
Unity中實現放大鏡流程如下:
1、主相機中放置放大鏡UI
2、放大鏡UI跟隨拖拽移動
3、創建renderTexture
4、將renderTexture設置到副相機中
5、創建一個材質球,將renderTexture設置為材質球的貼圖
6、將創建的材質球設置為放大鏡ui的材質球
7、根據放大鏡UI位置,修改副相位置。
8、調整副相機的縱深位置(z軸)和視野范圍。
有一點要注意,如果使用透視相機,會出現放大鏡中成像和主相機成像對不上的問題。
大致結構如下圖(圖丑的我想哭)

由於當相機放在A位置時候,如果直接看向Z軸正方向,看到的位置是A和最右豎線的垂線點,
所以如果是用A位置,計算出相機空間坐標后,要讓相機lookat物體。
B坐標則是先算出物體位置,將Z軸向左平移,則不會出現偏移問題。
另外這樣做出來的效果,整個放大不論中間或者邊緣的放大倍數是一樣的,放大效果不好,這時可以借助UV的渲染來優化。
如果是3D的鏡片,可以將模型上中間的網格做稀疏,周圈網格的密集,這樣UV去渲染時候,會出現周圈放大不明顯,中間放大明顯的效果,更接近真實的放大鏡效果。