色分(Anaglyph)模式:典型的如红蓝立体,是利用红镜片只允许红光通过,蓝镜片只允许蓝光通过的原理,将两幅视差的图片(一张红色、一张蓝色)叠加构成一张立体图片

由于红蓝立体去掉了绿色分量,会导致最后看到的立体图片不是正常彩色的立体图像,所有在实际中,一般会使用红-蓝绿(全彩)来制作立体图片(如下图)

由于人的两只眼睛对视觉的贡献是不一样的(主眼对视觉贡献大),而且在视觉空间不同区域两只眼睛贡献系数也不一样(靠左区域,左眼的视觉贡献越大;靠右区域,右眼的视觉贡献越大)

因此,色分模式不能在各视觉方向上很好地还原整副图片的颜色,特别是视线的左右边缘处会出现全红和全蓝的现象。

但这种立体模式的好处是不需要显示设备的支持,只需要有一个红蓝眼睛就可以了;而且对立体图片压缩、放大缩小也不是特别敏感

左右图片见:https://www.mtbs3d.com/gallery/albums%2Favatarthegame3d%2FAvatar29_50.jpg

左右图片见:https://www.mtbs3d.com/gallery/albums/avatarthegame3d/Avatar33_50.jpg

交错立体模式(偏振立体模式):分为行交错立体(水平交错立体,行偏振立体)和列交错立体(垂直交错立体,列偏振立体),依赖于显示设备,然后通过偏光镜来形成立体

将左眼和右眼看到的具有视差的图像分别显示到奇数行(列)和偶数行(列),再配合偏光镜进行相反过滤,让左眼只看到奇数行(列)的图像,右眼只看到偶数行(列)的图像

如果图片的奇数行(列)对应到显示设备的偶数行(列),使得左眼看到了右眼的图像,右眼看到左眼的图像,这也会导致无法看到正确的立体

这时可以,将图片水平方向(垂直方向)偏移一个像素来让图片的奇偶行(列)与显示设备的奇偶行(列)对应上,或者使用立体软件进行左右眼交换之后再查看图片

由于左图的像素在奇数行(列)中,右图的像素在偶数行(列)中,因此要用1:1的大小去观察这样的立体图片,否则就会有问题(放大或缩小图片都会使得奇数行和偶数行之间的像素发生插值重计算混合在一起)

并且最好是使用bmp等无损压缩的格式来存储该立体图像,因为有损压缩格式也会使奇数行和偶数行之间的像素发生插值重计算混合在一起

还有一点需要注意的是,桌面分辨率要与显示设备的物理分辨率一致(即把桌面分辨率设置为最大),游戏则需要设置成窗口模式或者与显示设备的物理分辨率一致的全屏模式,否则也会看不到立体

另外,这种立体方式在视觉上会降低行方向或列方向的dpi为原来的1/2,有像素颗粒感

https://www.mtbs3d.com/articles/game-reviews/2761-Avatar--The-Game

更多Avatar游戏的立体截图见:https://www.mtbs3d.com/gallery/thumbnails.php?album=157

快门立体

通过提高显示设备的刷新率(如:120Hz),让左右图像以帧序列快速交替刷新,然后负责接收的3D眼镜进行同步刷新,来实现左右眼观看对应的图像。

即使以120Hz的速度高速刷新,人眼仍能感觉出左右图像在时间上的不同步,有闪烁感,容易引发眼睛疲惫

裸眼立体

利用的是显示屏光栅折射特性,让处于不同角度的左右眼看到不同的画面,这种对观察者所处位置及离屏幕的距离都有较高的要求

为了解决这个问题,可通过追踪观察者左右眼球的位置、视线方向、瞳孔焦距来动态地调整显示屏光栅折射方向;然而这种对追踪的实时性以及调整显示屏光栅的精度有极高的要求

如何分辨出那个是左眼图像,那个是右眼图像?

找立体图片上远景的地方,在左边的是左眼图像,在右边的是右眼图像

stereoscopic 3D的更多相关文章

  1. {ICIP2014}{收录论文列表}

    This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...

  2. FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM

    FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM T.. = Timeline support 支持时间轴 .S. = Slice t ...

  3. FFMpeg ver 20160213-git-588e2e3 滤镜中英文对照

    1 FFMpeg ver 20160213-git-588e2e3 滤镜中英文对照 2016.02.18 by 1CM 2 T.. = Timeline support 3 支持时间轴 4 .S. = ...

  4. FFMpeg 滤镜中英文对照

    FFMpeg ver 20160213-git-588e2e3 滤镜中英文对照 2016.02.17 by 1CM T.. = Timeline support 支持时间轴 .S. = Slice t ...

  5. cg tut

    Gesture Drawing with Alex Woo Gesture Drawing with Alex Woo and Louis Gonzales http://eisneim.com/?p ...

  6. 【多媒体封装格式详解】---MKV

    http://blog.csdn.net/tx3344/article/details/8162656# http://blog.csdn.net/tx3344/article/details/817 ...

  7. 多媒体封装格式----mkv

    Matroska 开源多媒体容器标准.MKV属于其中的一部分.Matroska常见的有.MKV视频格式.MKA音频格式..MKS字幕格式..MK3D files (stereoscopic/3D vi ...

  8. VR/AR工作原理、目前存在的技术问题

    http://blog.csdn.net/liulong1567/article/details/50686558 摘要: 这些挑战,每一个都还需要很多努力才能解决.目前它们很多都还不到量变(只是需要 ...

  9. Getting Started with the Intel Media SDK

    By Gael Hofemeier on March 19, 2015 Follow Gael on Twitter: @GaelHof Media SDK Developer’s Guide Med ...

随机推荐

  1. [Swift]LeetCode622. 设计循环队列 | Design Circular Queue

    Design your implementation of the circular queue. The circular queue is a linear data structure in w ...

  2. 面试题:反转字符串(leetcode344)

    编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. 你可以 ...

  3. 我的.gitignore下配置。存在这里一下。日后有空研究研究!

    .DS_Storenode_modules/dist/yxxt/npm-debug.log*yarn-debug.log*yarn-error.log* # Editor directories an ...

  4. Chapter 4 Invitations——23

    The next morning, when I pulled into the parking lot, I deliberately parked as far as possible from ...

  5. Spring IOC核心源码学习

    1. 初始化 大致单步跟了下Spring IOC的初始化过程,整个脉络很庞大,初始化的过程主要就是读取XML资源,并解析,最终注册到Bean Factory中: 在完成初始化的过程后,Bean们就在B ...

  6. MySQL 个人学习笔记

    最早之前学习了Mysql,不知道是多长时间了 O(∩_∩)O,今天突然发现之前学习过程中的这个笔记,于是,就分享给大家,希望,能帮助到有需要的朋友,有不足的地方欢迎大家多多交流 b( ̄▽ ̄)d 1. ...

  7. 使用MaxCompute Java SDK 执行任务卡住了,怎么办?

    场景一 用户AA: “亲,用 MaxCompute Java SDK 跑作业,为什么卡住不动了?”me: “有 Logview 吗?发来看下”A: “没有,我用的是SDK,没Logview” 场景二 ...

  8. springboot情操陶冶-web配置(一)

    承接前文springboot情操陶冶-@SpringBootApplication注解解析,在前文讲解的基础上依次看下web方面的相关配置 环境包依赖 在pom.xml文件中引入web依赖,炒鸡简单, ...

  9. Using rqt_console and roslaunch

    Description: This tutorial introduces ROS using rqt_console and rqt_logger_level for debugging and r ...

  10. JS闭包作用域解析

    什么是闭包? 简单理解,当在一个函数的外部访问函数内部定义的变量的时候就会形成一个闭包,由这个理解可以知道,当一个函数执行完成的时候,一般情况下,其作用域会被销毁,其内部定义的变量也会变得不可访问,所 ...