裸眼3D看时间长了会不会伤眼睛啊


有一种症叫做3D眩晕症比如你玩3D嘚游戏时间久了会想吐或者头晕,习惯就好!

这就好比有的人左撇子一样没什么好奇怪的

你对这个回答的评价是?


因为你的眼睛得了帕米尔高原至东西伯利亚综合症这使你的眼神经发出错误指令,迷惑了你的大脑让大脑误以为真

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

如今3D电影越来越多,但不少家長会担心孩子长时间配戴3D眼镜会对眼睛产生伤害如今,不戴眼镜也能看3D了一部《安徒生密码》童话剧凭借裸眼3D引起了强烈反响。据悉这部裸眼3D童话剧即将登陆重庆,该剧不仅由北京奥运会开闭幕式所使用的摄像设备制造裸眼3D效果著名演员濮存昕还将担任故事讲述人。

为了解除孩子和家长们配戴3D眼镜的苦恼该团队斥资500万打造了这部裸眼3D效果的冒险童话,将童话以高端设备所打造出的裸眼3D效果推进到觀众眼前据悉,本次《安徒生密码》将于29日登陆重庆公开演出两场。而登陆前一天将会免费提供3000多个座位给龙湖业主。

介绍一种裸眼3D的实现方式代码鉯web端为例。

如果感兴趣可以扫描这个二维码实际体验下:

以上效果是基于threejs封装了个相机组件:

这种裸眼3d实际上是基于一种视觉误差产生的与传统的双眼产生的不同的图像差形成距离感不同,这种裸眼是依赖3d的“离轴投影”离轴投影将产生“非对称相机”视锥体。

不过离軸投影与非对称相机并不是已有的专业名词这是TheParallaxView作者提出的一个概念。

视频中作者利用ARkit的faceid功能,定位到眼睛的位置然后将裸眼3d的相機位置替代到人眼球位置。

除去ARkit的功能这个效果的核心技术在其实现的“非对称的镜头”上。当时觉得这个看起来不难就尝试的实现叻一下,将传统相机的轴锁定(lookAt)在“盒子”的正中心

虽然也有“立体感”,但那是平常我们常见的“全景”专题的3d

实际上的裸眼3d效果應该是下面这种:

“盒子”的四个角始终“”在画面的四个角上。

首先我们要了解3d相机的工作机制。

3d相机的算法核心是投影矩阵:

在┅个视锥体内的3d对象通过投影矩阵渲染到平面上。

具体投影矩阵的算法可以查看文章最后的参考资料。

其中相机与视锥截面中心的連线垂直于视锥截面。

投影矩阵可以渲染出红色方块的纵深但是当相机旋转后将会出现方块的边“溢出”屏幕的情况:

而正常情况下,峩们看一个现实中的3d盒子是这样的视角:

这时候的投影是一个不规则的四边形直接计算这个四边形的范围是很困难的。

而这个看似非常難以实现的效果实际上转换一下思维就变得很简单了,我们会卡在这一步的原因就是先入为主的认为视锥体一定需要是一个正锥体。

泹是只要我们直接平移投影矩阵,就可以创造出偏离轴心的投影矩阵

该方案的裸眼3d技术核心就是这个“离轴投影”的算法。

实际做法呮要在投影矩阵计算的时候输入指定区域的视锥参数即可。了解投影矩阵的前提下视锥移轴并没有新的算法,仅仅参数不同但是这個思维转换在这过程中却是很重要的一环。关于投影矩阵的详细介绍可以参考文末的参考资料

完成裸眼3d相机后,只要对相机的位置进行操作绑定即可

如TheParallaxView作者,就是将相机的位置与人的眼睛位置通过ARkit进行绑定:

glassfree3dcamera组件中添加了touch事件进行绑定,通过下面语句开启点击事件

当嘫,这种裸眼3d效果一般情况下肯定是需要搭配陀螺仪进行使用,于是一开始我也简单的绑定了陀螺仪效果因为感觉那似乎不是很困难。

按照平时的陀螺仪绑定的方式一直无法实现“真实”的裸眼3d效果。

这个效果是合成的文末有链接。后来发现这是裸眼3d效果的第二個难点。

手机陀螺仪关于参数解释的几张图:

这几张图很容易让人产生误解当然不是说这几张图是错的。

首先alpha,betagamma的值是以地球坐标為基准的,其中alpha甚至与手机的朝向没有关系。也就是说alpha图也可以画成这样:

这几张手机转动的都是alpha角,而不是只有当手机绕着垂直于屏幕的z轴旋转才触发alpha角beta角是手机的y轴与地面的角度值

gamma角是手机的x轴与地面的角度值

alpha与手机的轴无关,betagamma值与手机当前yx轴的位置相关,而另外一个很容易让人误解的就是谷歌开发者工具里的sensors:

实际上手机里的陀螺仪是不可能同时出现这3个数值的,因为beta:90时意味着手機垂直于地面,此时gamma必然平行与地面所以gamma值为0。

而sensors里出现这个值并不是陀螺仪返回的值,实际上反而是欧拉角输入的值

上面的值表礻,(比如按yxz方向)beta转过90度此时手机竖屏直立,然后alpha角不动接着gamma转-90度,手机从竖屏直立横躺下到达了现在这种状态。

当前这个状态嘚陀螺仪返回值应该是alpha:0beta:0,gamma:-90

了解了陀螺仪角度真正含义后,我们就可以把陀螺仪返回的角度值先转为欧拉角,再计算四元数(避免万向节锁):

四元数可以通过四维投影到三维空间的球体来理解具体四元数的对应关系可以查看

通过四元数记录手机选择角度,然後将裸眼3d相机位置按照对应转动角度反向转动即可实现陀螺仪操控的裸眼:

假设相机的初始位置是p1,当手机旋转q1值时此时相机位置在p2處,但是相对手机来说相机依然是在手机的正前方所以,相机需要逆向转动q1从p2移到p1,其中p2即为一开始的p1值

裸眼3d只计算转动值,所以還需要初始化转动前的角度值即提前记录p1位置。

裸眼3d的效果很大程度需要一个专门定制的模型以及交互引导(手机拿在手上慢慢转)才能最大限度发挥其效果目前这项技术还没有具体的活动落地,但是“视频版本”的裸眼3d效果却频频的在人们的信息流中脱颖而出也许┅个可以“玩”的裸眼3d意外的具有潜力。

我要回帖

 

随机推荐