unity 畸變 unity3d 幾種鏡頭畸變

2021-10-17 06:17:08 字數 1245 閱讀 1224

1.fisheye distortion  魚眼鏡頭

關鍵**如下:

float2 fisheye(float2 uv)

float2n_uv = (uv - 0.5) * 2.0;

float2 r_uv;

r_uv.x = (1 - n_uv.y * n_uv.y) * _intensity_y * (n_uv.x);

r_uv.y = (1 - n_uv.x * n_uv.x) * _intensity_x * (n_uv.y);

return(uv* _scale - r_uv);

效果是這樣的:

2.barrel distortion  桶形畸變

桶形畸變(barrel distortion),又稱桶形失真,是由鏡頭中透鏡物理效能以及鏡片組結構引起的成像畫面呈桶形膨脹狀的失真現象。我們在使用廣角鏡頭或使用變焦鏡頭的廣角端時,最容易察覺桶形失真現象。當畫面中有直線(尤其是靠近相框邊緣的直線)的時候,桶形失真最容易被察覺。普通消費級數位相機的桶形失真率通常為1%。

關鍵**如下:

float2 barrel(float2 uv)

float2 h = uv.xy - float2(0.5, 0.5);

float r2 = h.x * h.x + h.y * h.y;

float f = 1.0 + r2 * (_distortion + _cubicdistortion * sqrt(r2));

return f * _scale * h + 0.5;

效果是這樣的:

3.pincushion distortion  枕形畸變

在正確的拍攝條件下,矩形物體的像仍應呈矩形。但有的鏡頭由於有缺陷,將矩形物體拍成四邊向內凹進形如枕頭的影像,稱鏡頭的這種像差為枕形畸變。相反如拍成四邊突出的影像即稱桶形畸變。

枕形畸變又稱正畸變,是由於視場邊緣部分的放大率高於中心部分放大率所引起,即傾斜角度大的光線的放大率比傾斜角度小的光線的放大率高。

把桶形畸變引數修改即為枕形畸變

效果是這樣的:

全部**已上傳至github

------by wolf96   

原文:/article/details/46997179

Unity3D開發(九) Unity3d流光效果

遊戲開 壇 hello game 遊戲開發群 201276069 之前曾經注意過material 中紋理的屬性都有 tiling 和offset 但沒有深究過其用途,今天才知道竟然可以利用 offset做uv 動畫,從而完成各種有趣的動畫,比如流光效果!流過效果即通常一條高光光在物體上劃過,模擬高光...

Unity3d時鐘指令碼

var tu1 texture2d var time1 float 0 function fixedupdate function ongui function gettime time float string var lasttime string var hour mathf.floortoi...

Unity3D 視窗裁剪

實現效果 拖動readplane 當包圍盒最小點超出blueplane的最小點時 僅做了左邊裁剪 對超出部分裁剪,當全部超出隱藏readplane 當readplane包圍盒的最大座標點大於blueplane的最小點時,顯示readplane 閱讀此文時,讀者最好具備世界座標 本地座標 bounds...