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.mzph.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…