色分(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]LeetCode521. 最长特殊序列 Ⅰ | Longest Uncommon Subsequence I

    Given a group of two strings, you need to find the longest uncommon subsequence of this group of two ...

  2. [Swift]LeetCode676. 实现一个魔法字典 | Implement Magic Dictionary

    Implement a magic directory with buildDict, and search methods. For the method buildDict, you'll be ...

  3. [Swift]LeetCode762. 二进制表示中质数个计算置位 | Prime Number of Set Bits in Binary Representation

    Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime ...

  4. Truncated incorrect DOUBLE value: 'd'的解决方法(jdbc)

    今天写jdbc中dao的增删改查时遇到了一个问题,花费了好长时间,不过还好,有我峰哥出头,问题解决了,在这做个分享,对峰哥表达一下感激之情 网上搜索到的对“Truncated incorrect DO ...

  5. 浮点型和BigDecimal的使用

    //import java.math.*; package cn.xiaomu_01_rumrnjieduan; import java.math.BigDecimal; /** * 浮点型和BigD ...

  6. 第二周 IP通信基础回顾

    这周我们学习了OSI参考模型,了解局域网的分层为接入层,汇聚层,核心层.网络划分为通信直网,资源直网.osi模型概述在主动间数据传输为应用层,表示层,会话层:底层数据l流为传输层,网络层,数据链路层, ...

  7. HBase篇--HBase常用优化

    一.前述 HBase优化能够让我们对调优有一定的理解,当然企业并不是所有的优化全都用,优化还要根据业务具体实施. 二.具体优化 1.表的设计  1.1 预分区 默认情况下,在创建HBase表的时候会自 ...

  8. Python多版本共存(生产环境)

    安装pyenv $ git clone git://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/. ...

  9. ROS笔记1 安装及创建一个ROS Package

    安装 跟着官方的安装指引来就行了.安装前要先确定自己的ros版本和ubuntu版本.这二者是一一对应的. http://wiki.ros.org/ROS/Installation 主要是package ...

  10. Runloop详解

    RunLoop是iOS和OSX开发中非常基础的一个概念,这篇文章将从源码以及应用入手,介绍RunLoop的概念以及底层实现原理.本人看了一下RunLoop的英语源码,以及借鉴部分优秀博客,感谢!读完这 ...