unity 畸變_unity3d 幾種鏡頭畸變

1.Fisheye distortion? 魚眼鏡頭

解釋來自百度百科:魚眼鏡頭是一種焦距為16mm或更短的并且視角接近或等于180°。 它是一種極端的廣角鏡頭,“魚眼鏡頭”是它的俗稱。為使鏡頭達到最大的攝影視角,這種攝影鏡頭的前鏡片直徑很短且呈拋物狀向鏡頭前部凸出,與魚的眼睛頗為相似,“魚眼鏡頭”因此而得名。

關鍵代碼如下:

float2?fisheye(float2?uv)

{

float2??n_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);

}

效果是這樣的:

1563c19c3527da489f0da35dda0871dd.png

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;

}

效果是這樣的:

37e9e66d281c0d405b34e08f1271aed6.png

3.Pincushion Distortion??枕形畸變

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

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

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

效果是這樣的:

7807bc933e1968c8aa223f8291e296f4.png

全部代碼已上傳至GitHub

------by wolf96 ?? http://blog.csdn.net/wolf96

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534493.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534493.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534493.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

restfull加簽_SpringBoot RestFull API簽名

一、需求如下對指定的API路徑進行簽名認證,對于沒有指定的無需認證,認證具體到方法。二、查閱資料與開發1.了解JWT,實際上用的開源jjwt2.編寫自定義注解3.編寫攔截器,主要是攔截特定的url進行簽名驗證,這里解析請求的h…

mysql 5.5.18下載_MySQL5.7.18下載和安裝過程圖文詳解

MySql下載1、打開官網找到下載路口,這里直接給出下載的地址2、選擇64位版本3、直接下載MySql5.7.18.1安裝過程1 、運行安裝軟件,接受協議2、選擇默認安裝3、下一步到檢查環境界面,點擊“Execute”執行檢查 (可以后面單獨下載插件安裝)&…

mysql找不到performance_Mysql安裝完畢運行時沒有mysql和performance_schema數據庫_MySQL

Mysql問題 ERROR 1045 (28000): Access denied for user ‘root’’localhost’ (using password: YES)Mysql安裝完畢運行時沒有 mysql 和 performance_schema 數據庫問題一:之前卸載未卸載干凈問題二:沒有管理員權限進入問題三:登錄時&#…

mysql latid1_mysql觸發器的實戰經驗

1 引言Mysql的觸發器和存儲過程一樣,都是嵌入到mysql的一段程序。觸發器是mysql5新增的功能,目前線上鳳巢系統、北斗系統以及哥倫布系統使用的數據庫均是mysql5.0.45版本,很多程序比如fc-star管理端,sfrd(das),dorad…

mysql數據庫sql注入原理_SQL注入原理解析以及舉例1

sql注入是指web應用程序對用戶輸入數據的合法性沒有判斷,導致攻擊者可以構造不同的sql語句來實現對數據庫的操作。sql注入漏洞產生滿足條件:1;用戶能夠控制數據的輸入。2;原本需要執行的代碼,拼接了用戶的輸入。舉例&a…

mysql存儲map數據結構_map數據結構

Go map實現原理 - 戀戀美食的個人空間 - OSCHINA - 中文開源技術交流社區 https://my.oschina.net/renhc/blog/2208417// A header for a Go map.type hmap struct {// Note: the format of the hmap is also encoded in cmd/compile/internal/gc/reflect.go.// Make sure this…

四因素三水平正交表_做論文要用正交表?我打包送給你

正交試驗目前在國內的應用量仍然是比較高的,許多高校畢業生喜歡利用正交試驗來獲取研究數據,最終完成畢業論文的撰寫或者期刊投稿。正交試驗方案的設計,必然要用到(標準)正交表。那么大家都是從哪里獲取正交表的呢?小兵給這方面的…

plsql視圖添加表字段_Oracle-單表多字段查詢(不使用*)

環境:Oracle 11g,plsql 14目的:不使用*,查詢擁有上百個字段的表的所有字段。懶人大法:在文章末尾。sql實現邏輯:1、首先建一張100個字段以上的表,通過excel的方式將表建好后直接復制粘貼到plsql的建表界面。…

mysql 編譯安裝與rpm安裝的區別_編譯安裝與RPM安裝的區別

建議在安裝線上的生產服務器軟件包時都用源碼安裝,這是因為源碼安裝可以自行調整編譯參數,最大化地定制安裝結果。這里以MySQL 5線上環境的編譯安裝來說明之,其編譯參數如下所示:./configure-prefix/usr/local/mysql -without-deb…

python字符串變量s的值是python網絡爬蟲_【Python爬蟲作業】-字符串

一、定義字符串變量1.請定義三個字符串a,b,c值分別為 I,like, python2.請將上面三個變量合并輸出I like pythonaIblikecpythonprint(a)print(b)print(c)print(a,b,c)二、定義一個變量 s sdghHhf 1.請先將變量s的空白符去掉 賦值給新變量s1 打印輸出2.請分別將s1變為全部大寫(命…

lableimg閃退_CV學習筆記(二十五):數據集標注與制作

最近在做一些數據標注的工作,雖然標注數據比較枯燥,但這也是每個做算法的工程師升級打怪的必由之路。使用一些合適的工具往往可以事半功倍,效率UP。一:數據標注流程二:數據處理的一些小代碼1:重命名當得到這…

mysql show profile詳解_SQL 性能分析利器 show profile

本文首發個人公眾號《andyqian》, 期待你的關注~前言在之前的文章中,我們提到過一些慢SQL優化的步驟。其中就包括:使用 explain 關鍵字來查看執行計劃,是否命中索引。通過計算某列的區分度,來判斷該列是否適合新建索引…

php判斷給定的整數是否是2的冪_C++_C語言判斷一個數是否是2的冪次方或4的冪次方,快速判斷一個數是否是2的冪次 - phpStudy...

C語言判斷一個數是否是2的冪次方或4的冪次方快速判斷一個數是否是2的冪次方,若是,并判斷出來是多少次方!將2的冪次方寫成二進制形式后,很容易就會發現有一個特點:二進制中只有一個1,并且1后面跟了n個0&…

python 包編譯安裝mysql_CentOS7編譯安裝MySQL8.0.23和Python3.1.9

卸載mariadbrpm -qa | grep mariadbmariadb-libs-5.5.64-1.el7.x86_64yum remove mariadb-libs.x86_64 -y安裝高版本GCC,解決編譯中會遇到的GCC 5.3 or newer is required (-dumpversion says 4.8.5)cd /optyum install centos-release-scl -yyum install devtoolse…

python3.0下載用什么瀏覽器_無法讓Python下載網頁源代碼:“不支持瀏覽器版本”...

查看您列出的url,我執行了以下操作:使用wget下載了頁面將urllib與ipython一起使用并下載了頁面使用chrome,只保存了url所有3個都給了我相同的結果文件(相同的大小,相同的內容)。在這可能是因為我沒有登錄,但我確實看到…

java線程堆棧_深入JVM剖析Java的線程堆棧

在這篇文章里我將教會你如何分析JVM的線程堆棧以及如何從堆棧信息中找出問題的根因。在我看來線程堆棧分析技術是Java EE產品支持工程師所必須掌握的一門技術。在線程堆棧中存儲的信息,通常遠超出你的想象,我們可以在工作中善加利用這些信息。我的目標是…

java 文件下載方法_【工具類】Java后臺上傳下載文件的幾種方式

/*** 將本地照片上傳至騰訊云服務上*/public void uploadImage(String localImagePath) throws Exception {// 1.將訂單照片上傳至騰訊地圖眾包側提供的云服務上try {File imageFile new File(localImagePath);if (imageFile.exists()) {String url "http://" map…

java io流讀取txt文件_Java使用IO流讀取TXT文件

通過BufferedReader讀取TXT文件window系統默認的編碼是GBK,而IDE的編碼多數為UTF-8,如果沒有規定new InputStreamReader(new FileInputStream(file),“GBK”)為GBK會出現讀取內容亂碼。//文件路徑String filePath"C:/Users/Admin/Desktop/products.…

c 調用java程序_C ++可以調用Java代碼嗎?

小編典典是的,您當然可以。這是一個例子:這是java文件:public class InvocationHelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");System.out.println("Arguments sent to this pro…

java 大數類_Java大數類介紹

java能處理大數的類有兩個高精度大整數BigInteger和高精度浮點數BigDecimal,這兩個類位于java.math包內,要使用它們必須在類前面引用該包:importjava.math.BigInteger;和importjava.math.BigDecimal;或者importjava.math.*;以下從幾個方面對B…