虚拟现实眼镜(增强现实眼镜)成像原理浅析

首先,本文仅仅介绍市面上现有的普通“头盔+透镜+屏幕”的成像原理,其他(如光场成像等等)暂不作解析,期待后续更新~

如果你明白放大镜的原理,我想这个眼镜的原理你也不难理解了。

虚拟现实眼镜现在的结构一般都是“透镜+屏幕”的成像方式,透镜在眼前2-3cm处,屏幕距透镜3-6cm,虚像成像在眼前25cm-50cm左右。(这就带来了视力疲劳的问题,戴头盔眼镜时,视线将一直持续聚焦在25cm-50cm处,无法移动,并且视野里全部是电子显示屏,时间长后眼部肌肉会极度疲劳,想象一下你双眼距离电视屏幕半米以内一直不动……但上述光场成像则是模仿现实世界的真实光场信息,眼部聚焦点会不断移动,没有上述问题)

1、放大镜成像原理

当物体 AB 置于透镜焦距 f 以外时,得到倒立的放大实像 A′B′(如图 1-1(a)),它的位置在 2 倍焦距以外。若将物体 AB 放在透镜焦距内,就可看到一个放大正立的虚象 A′B′(如图 1-1(b))。映象的长度与物体长度之比(A′B′/AB)就是放大镜的放大倍数(放大率)。若放大镜到物体之间的距离 a 近似等于透镜的焦距(a≈f),而放大镜到像间的距离 b近似相当于人眼明视距离(250mm),则放大镜的放大倍数为:N=b/a

[Ps:人眼能够看清物体的最近距离就称之为明视距离。实际上明视距离因人而异,对于近视眼,明视距离会短一些,远视眼会长一些。对于健康的人眼,明视距离在250mm左右,因此我们通常将明视距离就设定为 250mm。]

由上式知,透镜的焦距越短,放大镜的放大倍数越大。一般采用的放大镜焦距在10~100mm 范围内,因而放大倍数在 2.5~25 倍之间进一步 高放大倍数,将会由于透镜焦距缩短和表面曲率过分增大而使形成的映象变得模糊不清。为了得到更高的放大倍数,就要采用显微镜,显微镜可以使放大倍数达到
1500~2000 倍。 

放大镜成像中,物距a(公式图中的u)、像距b(公式图中的v),焦距f符合以下关系

即1/b+1/a=1/f

由于像为虚像,所以b会在这里是负数;

2、头戴式眼镜成像原理

如上图,根据上述内容,焦距需要比物距大,而一般眼镜物距在5-7cm,我们设透镜焦距f为70mm,设屏幕物距a为55mm,根据计算公式的到b=-1/(1/f-1/a)=256.6mm,正好是明视距离左右。而由于现有的眼镜一般都不可调整屏幕距离,故a基本固定,可换透镜来调整f实现虚像距离的变换,对于近视,像距需要变短,f需要增大,一般选择较薄的透镜,对于远视则选择较厚的透镜。另外,在几个参数的调整中,基本都是几毫米的微调,需要权衡虚像距离过大(放大倍数大)而带来的像素颗粒感问题 和 虚像距离过近而带来的不够明视距离、视野较小等问题。

所以这时候,你会明白文章开头的一段话:

戴头盔眼镜时,视线将一直持续聚焦在25cm-50cm处,无法移动,并且视野里全部是电子显示屏,时间长后眼部肌肉会极度疲劳,想象一下你双眼距离电视屏幕半米以内一直不动……

文章写的比较草率,欢迎明人交流,谢谢~!

================

另外,光场成像我的理解就是,装置直接向眼镜投射(经过透镜阵列或其他技术)真实光场信息,这个光场信息你可以理解为现实世界里充满的光线集合,人眼也是通过透镜焦距的变换而将不同的光束聚焦在视网膜上,但其实射入眼中的光场信息并没有变化,是全息的,只是人眼用焦距进行了选择而已。

时间: 2024-09-30 06:54:51

虚拟现实眼镜(增强现实眼镜)成像原理浅析的相关文章

【Spark Core】TaskScheduler源码与任务提交原理浅析2

引言 上一节<TaskScheduler源码与任务提交原理浅析1>介绍了TaskScheduler的创建过程,在这一节中,我将承接<Stage生成和Stage源码浅析>中的submitMissingTasks函数继续介绍task的创建和分发工作. DAGScheduler中的submitMissingTasks函数 如果一个Stage的所有的parent stage都已经计算完成或者存在于cache中,那么他会调用submitMissingTasks来提交该Stage所包含的Tas

Handler原理浅析

    理解Handler的原理首先要搞清楚什么是Looper,在我的上一篇博文中对此有专门的介绍.Looper的作用是开启一个消息循环,从MessageQueue(Message队列,是Looper的成员变量)中循环取出消息处理.一个线程要使用Handler来处理来自其它线程的消息,这个线程必须有且仅有一个Looper对象与之绑定,也可以说一个Looper对象是是与一个线程一一对应的. Hander有一个Looper类型的成员,在Handler的构造函数(new Handler()或者new

微信QQ的二维码登录原理浅析

在很多地方就是都出现了使用二维码登录,二维码付款,二维码账户等应用(这里的二维码种马,诈骗就不说了),二维码验证,多终端辅助授权应用开始多起来,这里先说下啥是二维码,其实二维码就是存了二进制数据的黑白图片,当出现要求二维码登录的时候,服务器会生成一条临时的唯一的二维码信息,发送到客户端以二维码(图片)的形式写入到网页,然后你就会看到统一的四个方形的二维码,如果做的好这个二维码信息应该是有时效的,这里暂且不考虑这些,就简单的微信登录作为例子看看吧: 首先说下整个授权流程: 在客户端网页中会不断向服

LINQ内部执行原理浅析

C#3.0 增加LINQ的特性 一.基本概念 LINQ,语言级集成查询(Language INtegrated Query) 经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段.程序员现在都已经认同像类(classes).对象(objects).方法(methods)这样的语言特性.考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来

iOS 关于微信检测SDK应用的原理浅析

微信作为一个开放平台,各方面都是做得比较好的,推出了SDK之后,微信与使用了SDK的应用便能进行更多交互.但在iOS平台上,应用间交换数据还是相对麻烦的,那么微信为什么能直接在应用检测到其他使用了SDK的应用呢?基于这个疑问,我用了一个下午研究其原理. 一.SDK的方法 我之前也没使用过微信的SDK,不过下载后,查看发现SDK接口有这么一段 1 /*! @brief WXApi的成员函数,在微信终端程序中注册第三方应用. 2 * 3 * 需要在每次启动第三方应用程序时调用.第一次调用后,会在微信

U3D外包公司—北京动点(公司性质)承接U3D、Kinect、VR虚拟现实,增强现实,体感互动,大屏互动等各类外包

unity3d外包就找动点软件承接虚拟现实项目外包 承接U3D.Kinect.VR虚拟现实,增强现实,体感互动,大屏互动等各类外包 联系请加QQ:372900288 联系电话:13911652504 我们制作各类型严肃游戏,虚拟现实,增强现实项目! 品质保证,售后完备. 我们团队成立于2011年10月,是一个专业从事严肃游戏研发的团队,主做:Unity3D外包.VR虚拟现实外包.AR增强现实外包 .3DSMAX.MAYA建模外包.大屏互动外包.体感互动外包. 我们能为您提供的服务 一.项目负责

如何在App中实现朋友圈功能之一朋友圈实现原理浅析——箭扣科技Arrownock

如何在App中实现朋友圈功能 之一 朋友圈实现原理浅析 微信朋友圈.新浪微博.知乎等知名朋友圈类型功能,大家有没有想过其实现的逻辑呢? 本文以微信朋友圈功能为例,解析实现逻辑. 朋友圈的结构: 朋友圈从总体上来说会分为6块结构,分别是墙.用户.图片.墙贴.评论与点赞. 墙:一块公共的墙,所有的墙贴都位于其上,如果APP只实现朋友圈功能,那么墙贴其实是可以不用的,但是如果APP要实现朋友圈.新闻圈等等其他各种墙贴类型消息的话,那么墙就显得很有必要了,这时候我们需要通过建立不同的墙来展示不同类型的墙

【Spark Core】TaskScheduler源代码与任务提交原理浅析2

引言 上一节<TaskScheduler源代码与任务提交原理浅析1>介绍了TaskScheduler的创建过程,在这一节中,我将承接<Stage生成和Stage源代码浅析>中的submitMissingTasks函数继续介绍task的创建和分发工作. DAGScheduler中的submitMissingTasks函数 假设一个Stage的全部的parent stage都已经计算完毕或者存在于cache中.那么他会调用submitMissingTasks来提交该Stage所包括的T

Javascript自执行匿名函数(function() { })()的原理浅析

匿名函数就是没有函数名的函数.这篇文章主要介绍了Javascript自执行匿名函数(function() { })()的原理浅析的相关资料,需要的朋友可以参考下 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途.匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下文中称这种函数为:自执行函数 下面是一个最常见的自执行函数: // 传统匿名函数 (function() { alert('hello'); })(); 这段代码的执行效果就是在页面再载入时弹出