×

从VR头盔的透镜、显示屏和焦点调试等方面分解介绍VR头盔的工作原理

消耗积分:0 | 格式:rar | 大小:0.09 MB | 2017-09-14

分享资料个

  VR看起来可能有点像是黑魔法,但事实上,每个头盔都是精心设计的产品,是尖端的科技与奇思妙想的融合,旨在让你忘记凡尘琐事,一心专注在屏幕呈现的VR世界中。以下是对头盔工作原理的分解介绍,这些组件合在一起,提供了令人信服的VR体验。

  透镜

 

  透镜是最重要的元素之一。透镜旨在愚弄你的眼睛,让你以为面前是一片广阔的空间,而不是两英寸大的平面显示器。要做到这一点,透镜需要聚焦光线,让你感觉显示器好像在无限远的距离之外。

  很多头盔都采用了特殊的菲涅耳透镜,通过使用薄的、圆形棱镜阵列,来实现与大块曲面透镜相同的效果。这些透镜还被用来放大头盔的内置显示屏,让图像占据你的整个视野,这样你就不会注意到屏幕的边缘了。

  显示屏

  高性能显示器,是让VR具有说服力的另一个重要因素。它们必须具有足够的像素密度来显示清晰的图像,并且速度要足够快,这样VR中的运动画面才会流畅平滑。

  HTC Vive和Oculus都采用了两块1080x1200显示屏,一只眼睛对应一块,它们可以以每秒90帧的速度显示图像——为用户提供平滑流畅的运动画面,以及宽广的110度的可视角度,可以覆盖你视野范围的很大一部分。

  高端头盔还使用双屏幕来提供类似于任天堂3DS的立体3D效果。每块屏幕对每只眼睛显示一幅略微偏移的图像,然后我们的大脑会自动把它们“粘合”在一起成为一幅图像,并在这个过程中产生一种和深度有关的错觉。

  三星Gear VR把智能手机作为显示屏来使用,为了保持成本低廉和“无线”效果,牺牲了视野和图形保真度。在这种情况下,创建立体图像的工作是由两个可替换透镜来完成的。

  焦点调试

  因为每个人两个瞳孔中心之间的距离(也就是你去配眼镜的时候,需要测量的瞳距)是不同的,所以头盔中镜片的位置必须是可调的,以便根据我们的瞳距来提供正确的立体3D效果。

 

  Oculus Rift还使用了混合菲涅尔透镜,这种透镜具有可变的聚焦水平,你可以通过向上或向下移动头盔来调整焦距,找到最佳位置。

  位置传感器

  为了显示精确的画面,当你环顾周围时,头盔必须以亚毫米级的精度跟踪你的头部运动。这是通过各种内置传感器来实现的。有了这些传感器提供的各种数据,头盔就可以实现真正的“六自由度”,跟踪头盔可以跟随头部做出的任何运动。(注:物体在空间具有六个自由度,即沿x、y、z三个直角坐标轴方向的移动自由度和绕这三个坐标轴的转动自由度。)

  磁力计可以测量地球的磁场,因此总是知道“磁北”在哪个方向。这样就可以确保它指向的是正确的方向,防止出现“偏移”错误——即头盔以为自己朝着某一个方向时,其实朝着的却是另一个方向。

  加速度计有几个用途,一个是检测重力,让头盔知道上方是哪个方向。智能手机自动转换横竖屏,靠的就是加速度计。而且正如它的名字所说,它可以测量沿着一个轴的加速度,因此它能提供有用的数据,让头盔知道一个对象运动的速度。

  陀螺仪可以跟踪沿着一条轴的微小偏移(例如你稍微倾斜头部或点头的时候),来提供更精确的物体旋转信息。

  三星Gear VR没有采用更先进的红外跟踪方法,而是使用了惯性测量单元(IMU),它是集磁力计、加速度计和陀螺仪为一体的“多合一”设备。与大多数智能手机不同的是,这个IMU是专门用来减少滞后现象和改善头部跟踪性能的。

    红外跟踪

  Oculus Rift和HTC Vive都使用红外激光来跟踪头盔的移动,但各有各的方法。

  Oculus使用的是放在办公桌上的“星座”(Constellation)红外摄像头,跟踪Oculus Rift头盔前后都有的红外发射器。如果使用Oculus Touch控制器,你还需要另外再配一个摄像头,以避免在跟踪头盔和控制器上的红外灯时出现混淆。每个传感器都是单独跟踪的,计算机收集所有信息来渲染画面,让你在任何时候从任何角度看的图像都是正确的。所有这一切几乎都需要立即完成,这意味着每个红外传感器的坐标被立即捕获和处理,图像也就马上显示出来,几乎没有滞后。

  HTC Vive使用的是“灯塔”(Lighthouse)红外发射器,它被放置在游戏空间的角落里,可以快速发射激光,扫过房间。Vive上的红外传感器捕捉到它,并对其在一个空间内的位置进行测量。这个系统的工作原理类似于Oculus,但本质上它是把“灯塔”作为了发射器,把头盔作为了摄像头,角色刚好反了过来。

  伴侣系统

  Vive头盔除了有“灯塔”红外跟踪系统之外,还有一个前置摄像头,它可以使用“伴侣”系统,来帮助检测你是否离开了游戏空间的边界。因此,如果你快要撞上墙壁或家具了,Vive就可以巧妙地给你发送视觉提示,让你知道自己已经到达了VR空间的边缘。

  控制器

  Rift和Vive都有无线运动控制器,让你与3D空间中的物体进行充分交互,从而增强沉浸感。

  像头盔一样,每个控制器都配备了磁力计、加速度计和陀螺仪以及红外传感器,对运动进行亚毫米级的精度跟踪。

  音频

  很多头盔内置了耳机,可以产生3D音频。这样游戏就可以添加相对于你的位置的音频提示,让你可以听到好像是来自后面、上面,甚至下面的声音。

  隐藏的麦克风可以给游戏开发者提供更多的选择,在游戏中添加更多的沉浸式功能。使用麦克风,游戏可以检测你在隐形游戏中产生的噪音量,或者把它作为在VR中进行语音交流的方法。

  线材

  虽然有些VR设备(比如三星Gear VR)是完全无线的,但Vive和Rift都需要用线材将头盔连接到计算机上,以便传输数据和电能,让显示屏以90帧/秒的速度显示高清图像。如果你是坐着使用头盔和游戏手柄,那没有什么问题,但当你在室内走动时,线材确实可能会变得碍手碍脚。

  计算机

  VR这种黑魔法真正发生的地方其实是在计算机里。所有的位置跟踪数据都被发送到了计算机上,输入到了游戏中,然后它再对图像进行渲染,发送到头盔上显示出来。

  对于三星Gear VR和其他无线VR头盔来说,计算机被放在了头盔内部,比如在Gear VR上,智能手机不仅扮演了显示屏的角色,而且还承担了处理器的任务。(Kathy参与编译)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'从VR头盔的透镜、显示屏和焦点调试等方面分解介绍VR头盔的工作原理',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);