问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VR 透镜畸变的三种解决方案

发布网友 发布时间:2022-11-07 03:47

我来回答

1个回答

热心网友 时间:2023-10-31 14:08

原文链接: Three approaches to VR lens distortion
个人学习翻译作品,鼓励大家看原文。原文中大部分链接已经失效,本文做了相应更新,但并不保证今后会持续更新。大部分翻译忠于原文,但部分语句不通(才疏学浅实在理解不能)的地方会有译者润色,如有重要用词或原理阐述错误,还请评论斧正。

想要在 VR 体验中获得沉浸感需要有一个相对较大的视场角。这可以通过在你面前部署一个巨大的球状曲面屏来实现,当然,这种技术是超级贵的。一个相对可行的增加视场角的解决方案是使用两片透镜来观察一块普通的小矩形屏幕。

一块部署在眼前的透镜可以极大地增加视场角,但这是有代价的:画面产生了球状畸变。视场角增加的越大,图像畸变越严重。这篇文章对当前三种图像反畸变主流方案做了简单的摘要,这三种方案都在不同的 JavaScript WebVR 相关项目中有所实践。

下面是一个典型的头戴式显示屏的显示效果。可以看到,透镜导致了枕形失真。

解决方案是将桶状畸变施加到图像上。当我们再通过畸变透镜观察图像时,图像在两次畸变中被中和了。

透镜畸变可以通过 数学公式 更好的理解。要合理反畸变,我们需要计算两眼的中心,这需要知道屏幕和场景本身的几何属性。这些都可以获取,甚至是在一个网页应用上!

畸变最简单的方案是使用二次渲染的方法。首先我们渲染左右眼到一张纹理上,然后通过片元(像素)着色器处理该纹理,具体方法为向相对眼部中心方向移动每一个像素点。

这是最初的也是最简单的方法,但也是效率最低的,因为每一个像素都是分开处理的。 WebVR 的最初版本样板 使用了此方法。

这种畸变方案不需要分别处理每一个像素,我们畸变一个相对松散的三角形网格(40 乘 20 的三角网就能胜任)。

这个方案可以节省许多直接的计算并让 GPU 做相对合理的插值计算。我们不需要处理屏幕的每个像素点(1920 * 1080 ~= 2e6),只需计算这个三角网的每个顶点(40 * 20 = 800)。结果是计算量的显著减少(3次方或更多),和性能的起飞。 WebVR Polyfill 现在应用的就是此方法。

畸变操作在此方法中并非唯一费时的部分,还有大部分的时间浪费在拷贝整个场景到中间纹理过程中了。

现在我们来看三种畸变当中效率最高的一种,此方案不再需要在一开始生成中间文林。几何体将通过特定的顶点着色器进行畸变。此方法的思路是根据摄像头的位置,我们相应地重置顶点,使得 2D 像是已经经过桶状畸变。这种方法将不再需要二次渲染,因此我们省去了拷贝生成纹理的费时的中间步骤。

但是,这种方法要求每个三角网拥有一定的顶点密度来保证变形。思考这样一个情况,我们将渲染一个离镜头很近的巨大的四点矩形,然而这四个点畸变之后任然得到一个四点矩形,显然并没有桶状效果。因此,如果在程序员这边不进行额外处理的话,此方法将无法作为通用方法使用。(译者注:程序需要对三角网进行细分处理)

此方案应用于 Cardboard Design Lab 以及开源项目 VR View project 中。基于几何的畸变(此处和小标题名称不完全相同,但应该是一种方法)同样会造成尖锐的渲染结果,因为双程方案会造成锯齿效果,特别是当中间纹理不够大的话。你可以从这篇 文章 中督导关于畸变更多详细内容。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 深度解析新洁能值不值得被重仓?新洁能2021年二季报预测?新洁能股票今天收盘多少钱? 电磁炉和电锅哪个费电 prprisoner of love的罗马音 中文翻译 富贵不能淫文言文与翻译 如何制作小程序?大概的费用需要多少 古驰香水和迪奥香水是哪个国家的?迪奥香水和古驰香水哪个好 云在青天水在瓶 深圳中嘉信用催收发函是真的吗 收到催款律师函找深圳景权律师事务所怎么样? 搜寻TONY大神的作品 视频开头动画怎么做 汽车轮胎什么牌子好?韩泰有人用过吗? 持有华为认证能干哪些工作 持有华为认证能干什么工作 大悦城附近的派出所吗?现在我请求你们,我从各方面了解到王艳珍在北京打工期,(山西省临汾市翼城县人) 奔驰GLE自动挡成交价格最低是多少钱? 小米手机太原哪里修?有木有小米之家 太原小米维修点都有哪些 太原哪里有修小米手机的地方? 我想知道太原哪里有小米售后? 我的头发是自来卷很卷,而且很厚,适合剪蘑菇头吗 小米100寸电视如何入户 (动漫歌曲 ) 日本字怎么写啊? 我想问一下民初奇人传几点播 民初奇人传全集出了吗 民初奇人传全集已经出了没有 毕业那年,我们一起失恋散文 毕业那天我们一起失恋txt全集下载 毕业那天我们一起失恋中桃子和何乐后来没在一起?为啥分的 《毕业那天我们一起失恋》epub下载在线阅读全文,求百度网盘云资源 《毕业那天我们一起失恋》最新txt全集下载 毕业那天我们一起失恋的插曲《你就像一阵风》歌词是什么,我想要 毕业那天我们一起失恋谁看过?结局是好的吗? 手机无缘无故收到很多验证码短信,是怎么回事啊,是不是有人在用我手机号干什么犯法的事啊? 为什么研究抗焦虑药物要先给药 艾司唑仑注射液的药理毒理 固安县渠沟乡殡仪馆建设在那里 华为赠品雨伞使用方法 折伞的教程 一步一步 上海松江区哪里有大的药店? 松江新城区哪里有24小时药房,急!急!急! gt215核心有哪些显卡