裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感
http://sd89.blog.163.com/blog/static/356041322014112532958728/
3D图片的拍摄,与平面有着全新的不同要求,那就是空间感的表现。
简单来说,空间感是由两条视线分别从左右不同的视角,各自获取物体左右两面的不同信息交汇而产生的,获取的物体两侧信息越是丰富,空间感就越是强烈,就像我们的双眼,对中近距离的空间感觉十分敏锐,而对远景的空间效果则感觉平淡,这是因为物体越近,我们两眼就越是能从不同的角度观察到相同物体更多的侧面信息,而远处的物体,相对于我们双眼那不大的间距来说,双眼看到的几乎都是一个正面,侧面信息实在是太少,也就很难有立体的感觉。
由于光线进入我们眼睛的位置是瞳孔,所以双眼的间距实际上也就是瞳孔的间距,即瞳距。当瞳距越大,看到同一个物体就会让视角更多地向内偏转,也就能获得物体侧面更丰富的信息。
由此我们得到一个关于空间感的重要结论:双眼对同一物体的不同视角,才是产生空间感的根本原因。
显然瞳距是产生不同视角的前提,瞳距越大,双眼视线交汇时产生的视角也越大,获得的物体两侧信息就越丰富,空间感也越强烈。
比如当我们想看清稍远一些的路面是否平整时,往往会向前多跑几步,这倒不是我们看不清路,而是看不清路面细节的凹凸坑洼,多走近一些,双眼视角就会产生更多的向内偏转,以便获得更多关于路面细节的立体效果。
在军事上,双筒望远镜的应用更是如此:目镜的间距跟我们人眼瞳距相当,但物镜的间距,也叫镜距,则会分开很多,使得我们能在更远的距离上,产生清晰的立体效果,从而能看到不同的地形和物体相互空间排列,更有大型望远镜,两个物镜会分开更多,能使我们肉眼无法分辨的远处物体产生空间感觉。
图1、空间感觉的产生,是双眼的瞳距,产生了不同的视角,从而获得了物体两侧不同的视觉信息。

图2、两次拍摄之间,镜头的间距越大,则空间感也越强烈,这是因为两次拍摄获得了物体更多的两侧的信息,或者说,从两侧角度观察到了物体的更多差异信息。

至此,我们从瞳距延伸推理,得到新的结论:
两次拍摄之间,镜头间距越大,视角偏转越多,则获得的3D效果也越强烈。
但是从欣赏的角度来说,并不是两个画面的信息差异越大越好,太大的差异,会让我们左右两眼很难将两个画面的信息通过转变视角(内视法)合成在一起,或者能合成立体效果,但看起来却很累,时间长了,难免会感到视觉疲劳甚至头晕恶心,就像我们想努力看清距离眼睛很近的物体一样,需要用“斗鸡眼”的战斗姿态,很费力地调整两眼向内聚焦才行。
于是找到一个合适的视角,能舒适地欣赏到很明显的3D效果,就成了3D摄影镜头间距的重要指标。
那么多大的视角才合适?要弄明白这个问题也很简单,睁开双眼,看我们身边多远的地方最舒服、空间感也最强烈?对于一般人来说,这个距离大概是在20-80厘米之间吧,更近的物体看起来费劲儿,更远的物体,空间的准确细节就不太好判断,而且有远离我们无法掌控的感觉,再看看眼前的键盘、鼠标、手机等物体,其色彩层次质感大小体积及其相互位置,看起来都那么清晰而舒适,而且让您有一种君临天下、随手把玩的感觉!
于是我们认为视距为50cm左右的场景,会呈现十分理想的立体效果,而我们的瞳距,假设平均值是8厘米左右,现在来计算一下,我们要对一个物体转动多大的角度来拍摄才合适?
这要用到三角函数的反正切计算:先取瞳距的一半8/2=4cm,得到对边距离,而邻边距离为50cm,于是:Arctan(4/50)=4.57 度,这是单只眼睛的偏转角度,那么两眼的偏转角度就是4.57*2=9.14度,取个整数,就算是10度吧。
图:



于是我们不会再为镜距烦恼了,直接用被摄物体的10度偏转视角来决定镜距,岂不是更直观?!而相对于10度的物体视角偏转,远近不同的物体显然会有不同的镜距:眼前的物体可能只有10厘米的镜距,而外景会有几十厘米的镜距,至于远山,或许要有几米的镜距才行!
图:看远山的空间效果,那镜距是要走两步才行的,也只有单机才能拍摄,当视角偏转到15度左右时,远山的空间感也就相当于眼前几米处的感觉,比真实场景的肉眼视觉空间感更强,整个山景就像近在咫尺的沙盘!

***************************************
裸眼3D教程必读:
**************************************************
写作软件类 推荐阅读:
裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感的更多相关文章
- VS2013全攻略(安装,技巧,快捷键,插件)!
工欲善其事,必先利其器.VS2013全攻略(安装,技巧,快捷键,插件)! 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥>承蒙大家喜爱和编辑推荐,在此 ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
- 生成 PDF 全攻略【2】在已有PDF上添加内容
项目在变,需求在变,不变的永远是敲击键盘的程序员..... PDF 生成后,有时候需要在PDF上面添加一些其他的内容,比如文字,图片.... 经历几次失败的尝试,终于获取到了正确的代码书写方式. 在此 ...
- 从小工到专家 ——读《Java程序员职场全攻略》有感
从小工到专家 ——读<Java程序员职场全攻略>有感 <Java程序员职场全攻略>是以故事的形式,向读者介绍Java程序员的职场经验.作者牛开复在北京从事软件开发,已经是一 ...
- Android屏幕适配全攻略 (转载)
http://blog.csdn.net/jdsjlzx/article/details/45891551 https://github.com/hongyangAndroid/AndroidAuto ...
- Moon.Orm3.8技术全攻略
Moon.ORM技术全攻略 一.绪论 本文主要是针对Moon.ORM的技术的讨论及其使用使用指导.如有其它疑问,请留言.本文主要针对Moon.ORM3.9版本,同时将会对4.0做一个技术预览.本文从 ...
- TestLink安装全攻略
TestLink安装全攻略 此文章转自该链接--http://www.cnblogs.com/Tcorner/archive/2011/07/26/2117296.html 安装前准备 需要下载xam ...
- 取代奶瓶Minidwep-gtk破解WPA 全攻略
取代奶瓶Minidwep-gtk 破 WPA 全攻略 目录 1. CDlinux 下使用 minidwepgtk 获取握手包并使用自带的字典破解 2. 自带的字典破解不出密码时使用 U 盘外挂字典继 ...
- 用C#制作PDF文件全攻略
用C#制作PDF文件全攻略 目 录 前 言... 3 第一部分 iText的简单应用... 4 第一章 创建一个Document 4 第一步 创建一个Document实例:... 5 第二步 ...
随机推荐
- 泛型的几种类型以及初识winform
今天学习的可以分为两类吧,但是学习的都是比较抽象的,不太容易掌握吧.首先我们大部分时间学习了泛型,泛型的委托,泛型接口以及枚举器,迭代器,扩展方法:最后简单的认识了webform,实现了一个简单的功能 ...
- php检测文件只读、可写、可执行权限
例子:检测文件是否可读.可写.可执行. 复制代码代码示例: <?php $myfile = "./test.txt"; if (is_readable ($myfile)) ...
- FastCGI中fastcgi_param 详细说明
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径 fastcgi_param QUERY ...
- Android 使用WebView显示网页
构建WebView就可以显示Web信息.因为我觉得这里会讲述很多方式来实现WebView,所以我决定为每一种方式创建一个对应的Activity,MainActivity通过Button可以点击进入对应 ...
- 设计模式之模板方法模式(Java实现)
"那个,上次由于我老婆要给我做饭,所以就没有说完就走掉了...这个那个".这次和以前一样,先来开场福利(工厂方法模式已被作者踹下场).由美女抽象工厂介绍一下适用场景~大家欢迎 抽象 ...
- 河南省第七届ACM程序设计大赛总结
省赛总结 首先说说比赛时的情况吧,刚开始的时候我的任务就是翻译英文题目,找出比较水的题目,他们两个直接找中文水题切,其实每次比赛我们都是这样配合的,由于他们的判题系统一开始存在问题,交的正确的代码给判 ...
- Dij二级最短路
hdu1245 Saving James Bond Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- C++,一些常用的知识点
用typedef定义数组.指针.结构等类型将带来很大的方便,不仅使程序书写简单而且使意义更为明确,因而增强了可读 性. C++中是用关键字typedef定义一个标识符来代表一种数据类型,该标识符可以象 ...
- 前端~HTML~CSS~JavaScript~JQuery~Vue
HTML CSS JavaScript DOM文档操作 jQuery实例 Vue
- Python开发【Django】:缓存、信号
缓存 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache ...