AmplifyShader Fisheye
Fisheye, 魚眼,像凸透鏡的一種應用,查了一些資料後發現,關鍵字打 "Barrel Distortion " 比較恰當。下面單純就自己理解的幾種針對 2D Image 的魚眼製作方式來記錄與分享。
* 不免俗還是要說一下什麼是魚眼?
** 查到一些資料是這麼說的:
一種光的折射現象,當光通過密度過大的物體 (如水或玻璃)時會發生折射,光會彎曲進而產生影像失真。但魚眼密度的差異變化是循序漸進的,沿著圓形圖案分布,這種結構使得光線緩慢地彎曲而不是折射,引導光線在透鏡中繞著完美的圓進行。
* 那魚眼的達成技術?
** 查到一些實踐技術:
** 簡單來說,我們其實是要做到:
* 一個像 1 的數值分佈(0~1~0), 2 是原 UV ,1 對 2 做效果的疊加就換產生 3 的新 UV,所以關鍵在 1 還有疊加的效果如何實踐。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
* Way 1. 簡化的數學式
1.1 做出一個 (0~1~0) 的數值,以下舉兩種方式
** 仔細看會發現其實計算方式是差不多的,重點還是拋物線公式( y = x2 )。1.2 與原 UV 疊加的效果
** 在做出了一個二維區間在 0~1~0 的數值後(就是1.1),疊加效果的實踐就是取得原UV與 1.1相乘 ,但相乘前記得將取得的原UV做中心點的校正(Offset -0.5),然後再次取得原UV減去疊加後的效果就是最終的結果,參考下圖。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
留言
張貼留言