XR“黑话”

本文介绍了虚拟现实技术中降低运动到图像显示延迟(MTP)的方法,如AsynchronousTimewarp(ATW)、OrientationTimewarp(OTW)、PositionalTimewarp(PTW)和AsynchronousSpacewarp(ASW)。重点讲解了如何通过使用运动矢量和深度信息来减少延迟,以及Oculus的PTW策略。

MTP(Motion-To-Photon Latency):实际人体发生运动到图像显示到屏幕上的时间延迟。早期一些vr产生晕动症的主要原因。

ATW(Asynchronous Timewarp):主要解决两个问题,一是延迟,二是补帧。其原理是,应用程序输出图像以后,交给另一个渲染管线,后者在上屏的时候拿新的姿态数据做重投影计算。这样新的姿态更接近显示时的真实数据,弥补了MTP。同时应用掉帧的时候,ATW拿前一帧的图像重投影,一定程度上也可以弥补了。

OTW(Orientation Timewarp):可以认为是ATW重投影计算的3DOF版本,把图像视为无限远处的画面,仅引入HMD旋转带来的变量。早期VR设备都是3DOF的,这种计算非常有效。

PTW(Positional Timewarp):6DOF版的ATW,重投影中同时包括旋转和位移。必须要深度图,通过深度信息还原每个点的距离。理论上说每个像素都参与计算是最准确的,但是计算量太大,需要用其他办法来平衡。据oculus的说法:

“多年来,我们尝试了许多不同的 PTW 技术来评估各种权衡。一些技术(例如视差遮挡贴图)更加准确,但会消耗更多 GPU 时间。我们选择的技术类似于稀疏视差映射技术,因为它可以帮助我们认识上述所有要点。与 OTW 相比,使用我们的 PTW 方法的开销极低,同时也足以帮助解决 OTW 中由于 HMD 位移而出现的抖动伪像。”

这里边说的“类似于稀疏视差映射技术”到底如何实现,还不清楚。

ASW(Asynchronous Spacewarp):是用来补帧的,和ATW叠加使用,才能纵享丝滑。前面说的ATW的补帧,弥补的是场景里相机的运动,这里弥补的场景里物体运动带来的变化。oculus已经迭代了两版,下面是官方文章说的:

为了更好地理解ASW如何与PTW配合使用,我们首先需要了解ASW的流程。以下是 Oculus 运行时利用 ASW 的步骤的详细分解:

  1. ASW捕获由焦点 VR 应用程序提交的先前和当前 ovrLayerEyeFov 帧的纹理。
  2. ASW通过对前一帧进行时间扭曲来生成“预扭曲帧”以使用当前帧的姿势。
  3. ASW将当前和预变形帧纹理转换为 GPU 视频编码器友好的资源。
  4. ASW将两个帧纹理发送到 GPU 视频编码器进行对应分析。
  5. ASW从 GPU 视频编码器输出中收集“运动向量”。
  6. ASW对运动矢量进行后处理和转换以进行帧外推。
  7. ASW打包内容并注入合成器层,就像来自 VR 应用程序一样。
  8. 合成器像往常一样使用 ASW 注入的 ovrLayerEyeFov 图层内容进行时间扭曲和扭曲。

正如您在步骤 #2 和 #8 中看到的,我们依赖 Timewarp (TW)。在我们最初的 ASW 实现中,由于我们没有可用于 PTW 的深度缓冲区,因此在这些情况下使用的 TW 重投影技术是方向时间扭曲 (OTW)。然而,随着越来越多的 VR 应用程序开始提供深度缓冲区,我们可以利用 PTW 的数据。诀窍是确保上述两个步骤中使用的 TW 重投影技术(无论是 OTW 还是 PTW)属于同一类型。这可确保在 ASW 或 TW 中校正 HMD 运动重投影,但不能同时在两个位置校正,因为这会导致视觉伪影。当深度不可用时(即 VR 应用程序提交 ovrLayerEyeFov 而不是 ovrLayerEyeFovDepth),Oculus 运行时会自动恢复为该 VR 应用程序的 ASW 1.0 方法。

 个人理解最大的区别就是利用了PTW,能把场景中没有发生运动的点都剔除出来。

Motion Vector:运动矢量,ASW里的关键信息,直观理解就是上面图片中的小箭头。高通GPU提供了该能力,在OpenGL里提供了QCOM_motion_estimation extension扩展接口。

  void TexEstimateMotionQCOM(uint ref,
                             uint target,
                             uint output) ;
  void TexEstimateMotionRegionsQCOM(uint ref,
                                    uint target,
		                            uint output,
				                    uint mask) ;

参考链接:

https://developer.oculus.com/blog/developer-guide-to-asw-20/

Improving VR Performance Using Motion Estimation OpenGL Extensions

在面试和招聘过程中,经常会使用一些行业术语或“黑话”来简化沟通。以下是常见术语的解释及其含义: ### OD 的含义 OD 是 **Offer Delayed** 的缩写,意思是“延迟发放的 Offer”。通常用于企业在面试结束后,虽然决定录用候选人,但由于内部审批流程、岗位编制调整、预算限制等原因,暂时无法立即发出正式 Offer,而是选择将录用通知推迟一段时间[^2]。 ### 其他常见面试黑话及解释 - **HC(Headcount)**:指公司或部门的招聘名额。例如:“今年我们团队的 HC 只有 10 个。” 表示该团队今年只能招聘 10 名新员工。 - **JD(Job Description)**:职位描述,详细说明了岗位职责、任职要求、薪资范围等信息。 - **Base**: - 指基础薪资,如:“你的 Base 是多少?” - 也可指工作地点,如:“这个岗位的 Base 在上海。” - **总包**:指整体薪酬包,包括基本工资、奖金、股票、补贴等所有收入总和。 - **OC(Offer Call)**:口头 Offer,即企业通过电话告知候选人已被录用,但尚未正式发送书面 Offer。 - **OM(Offer Mail)**:正式的录用邮件,通常包含详细的薪资结构、入职时间等信息。 - **被捞**:指原本已经落选的候选人,在其他岗位仍有空缺时被重新考虑并进入面试流程。 - **泡池子/养鱼**:指企业将部分候选人的资料保留下来,作为备选人才库,以备将来有岗位空缺时联系。 - **Argue**:指对某项决策提出异议或讨论,如对面试结果、岗位安排等进行争论。 - **签字费**:某些公司会为新员工提供一次性签字奖励,通常是在签署 Offer 时即可获得。 - **意向**:表示企业对候选人的初步录用意愿,尚未形成正式 Offer。 - **白菜价/白菜/SP/SSP**: - 白菜价:泛指普通 Offer,薪资较低。 - SP(Special Offer):特别 Offer,通常薪资较高。 - SSP(Super Special Offer):超级特别 Offer,代表最高档次的薪资待遇。 - **背书**:指过往工作经历或公司背景对未来职业发展的认可度和支持力。 - **主管面**:由业务主管进行的面试,主要考察候选人的专业能力和岗位匹配度。 - **HR 面**:由 HR 进行的面试,主要了解候选人的职业规划、稳定性、文化契合度等。 ### 示例代码:模拟 Offer 状态查询系统 以下是一个简单的 Python 脚本,用于模拟查询当前 Offer 状态的功能: ```python class OfferStatus: def __init__(self, name, status): self.name = name self.status = status def check_status(self): if self.status == "OC": return f"{self.name} 已收到口头 Offer。" elif self.status == "OM": return f"{self.name} 已收到正式 Offer 邮件。" elif self.status == "OD": return f"{self.name} 的 Offer 被延迟发放。" else: return f"{self.name} 当前无 Offer 状态。" # 示例使用 candidate = OfferStatus("张三", "OD") print(candidate.check_status()) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值