Unity中放大鏡效果的實現及實現細節。

2022-04-10 11:57:31 字數 767 閱讀 2911

基本原理:

兩個相機照射同乙個物體,將副相機照射到的東西,渲染在主相機機中。

通過調整副相機的位置、角度、視窗大小,使副相機的視野比主相機小且距離物體更近。

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去渲染時候,會出現周圈放大不明顯,中間放大明顯的效果,更接近真實的放大鏡效果。 

實現放大鏡的效果

page xlanguage c autoeventwireup true codebehind webform2.aspx.cs inherits 3.19jquery實現放大鏡效果.webform2 page xlanguage c autoeventwireup true codebehind...

WPF放大鏡效果

原文 wpf放大鏡效果 在做wpf專案中,不止兩個專案需要有放大鏡功能。第乙個專案是乙個手術室的遠端示教系統,主要是為了方便專家演示病症時,可以放大上的某些部位。第二個專案是乙個工廠的mes專案,其中有個功能是質量預警,主要就是根據疵點,對比實物進行預警。可是疵點很小,這時就需要乙個放大鏡的功能。效...

京東放大鏡效果

先上html和css box box1 box1 img mask mask hover box2 box2 img 前面滑鼠覆蓋出現,滑鼠離開消失等都不難。先獲取各個元素,設定display屬性就好了。直接上 let mask document.queryselector mask let box...