VR 板


LINE

看板 VR  RSS
什麽是Reprojection(再投影)? Reprojection是能够降低延迟、避免晕眩的安全机制,HTC Vive、Oculus Rift、Playstation VR等VR设备都有使用Reprojection。 Reprojection会应用在下面两种情形: A.VR设备先取得使用者头部的位置,再交由电脑运算画面,但电脑运算、资料处理需要一段时间,画面运算完成後使用者头部已经移动到新的位置了。 B.电脑无法在时间内画面将画面运算完成(例如无法达到90FPS)。 遇到上述两种情形时,如果透过Reprojection,便能够校正画面的位置,产生一张新的画面,更接近使用者新的位置。 其中最主要需要校正的项目包括使用者头部转动、头部移动以及虚拟物体的移动(例如VR世界中有一只飞鸟)。 各家Reprojection的做法略有不同,以下会分开介绍。 HTC Vive + SteamVR , Asynchronous Reprojection(ASR) + Interleaved Reprojection 11/16更新:SteamVR在此次更新中加入了Asynchronous Reprojection功能,目前版本仅校正头部转动,类似下方介绍Oculus的Asynchronous Timewarp。可以自行选择是否开启Asynchronous Reprojection、是否开启Interleaved Reprojection(预设是两种都开启)。 https://goo.gl/BMtiJk HTC Vive的定位系统会预测使用者在24.22ms後的位置,藉此克服电脑运算、资料处理造成的时间差,以减轻上述情形A造成的影响。 Asynchronous Reprojection,其中Asynchronous是表示Reprojection这个动作是独立运行的,不受CPU、GPU正在进行的工作影响,每一张画面都会先经过校正(稍微扭转原本的画面,只校正头部转动)再显示。电脑如果在时间内处理完画面,会先经过校正再显示,电脑如果来不及处理完,则会自动拿前一张旧画面,经过校正再显示。当遇到偶发性来不及处理完画面的情形,Asynchronou Reprojection能够即时补上,使用者不易感觉到掉帧,是其一大优点。透过Asynchronous Reprojection,能够同时减轻上述情形A和情形B所造成的影响。 然而由於目前SteamVR的Asynchronous Reprojection只校正头部转动,没有校正头部移动以及虚拟物体的移动,如果软体跑不到90FPS,会看到移动中的物体动作不连贯、不流畅(物体会突然跳一下或是跳来跳去),如果前後左右上下移动身体、头部,也会看到场景一震一震的。 为了避免场景一震一震或是物体跳来跳去造成不好的观感,甚至导致晕眩,SteamVR发现软体一直跑不到90FPS时,SteamVR会启用Interleaved Reprojection,让软体改成跑在45FPS,再将这45张画面经过Reprojection处理,产生新的45张画面。运算出的45张画面(正确的画面)跟校正後的45张画面(有误差的画面)交错显示,便会形成类似残影的效果。由於固定在45FPS,残影是稳定的(不会跳来跳去),因此不会有晕眩的问题。 下图左侧是90FPS看起来的样子,下图右侧则是45FPS+Interleaved Reprojection看起来的样子。 http://i.imgur.com/wZgy7WC.png 依据个人实测结果,在只有转动头部的时候,Asynchronous Reprojection效果很好,不容易察觉掉帧,适合坐着玩的VR游戏。不过对於Room-scale游戏来说,常常需要前後左右上下移动身体、头部,或者是在眼前挥舞两支动态定位控制器,这时就很容易看出 Asynchronous Reprojection造成的副作用。 由於开启Asynchronous Reprojection後每一张画面都会经过校正,会耗用额外的效能,因此如果软体本来就将电脑性能使用到接近极限,开启Asynchronous Reprojection後反而会一直触发Asynchronous Reprojection,导致效果变得更差。 若是最佳化做得比较差的软体,CPU、GPU使用率不稳定,可能会一下子触发Asynchronous Reprojection、一下子触发Interleaved Reprojection,这种状况就相当恼人了。 因此如果发现画面一直震、移动的物体跳来跳去,这时关闭Asynchronous Reprojection、Interleaved Reprojection其中一个,可能会有较好的效果。 未来Valve有打算替SteamVR加入「motion-vector frame generation technique」,能够校正物体移动,类似下方介绍Oculus的Asynchronous Spacewarp,相信到时用在Room-scale游戏上会有更好的效果。 https://goo.gl/Fnojx1 更多相关资讯可以参考: Advanced VR Rendering https://goo.gl/svX8Jf Advanced VR Rendering Performance https://goo.gl/BIio9R Oculus Rift + Oculus SDK , Asynchronous Timewarp(ATW) + Asynchronous Spacewarp(ASW): Oculus将他们使用的Reprojection技术称为Timewarp和Spacewarp,而Asynchronous则是表示Reprojection这个动作是独立运行的,不受CPU、GPU正在进行的工作影响。 Oculus也有动作预测技术,配合上Asynchronous Timewarp,显示的每一张画面都会先经过校正(只校正头部转动)。电脑如果在时间内处理完画面,会先经过校正再显示,电脑如果来不及处理完,则会自动拿前一张旧画面,经过校正再显示。当遇到偶发性来不及处理完画面的情形,Asynchronous Timewarp能够即时补上,使用者不易感觉到掉帧,是其一大优点。 Asynchronous Spacewarp是和Asynchronous Timewarp互补,当Asynchronous Spacewarp启用时,会让软体跑在45FPS,并利用前两张画面预估使用者头部、虚拟物体"未来"的动向,对使用者头部和虚拟物体的移动进行校正,补上不足的45张画面。 Asynchronous Spacewarp不会有前述的残影问题,但由於不可能用两张旧画面就100%准确预测未来的动作,而且假设一颗球由A点移到B点,也不可能凭空得知原本在A点後面有什麽东西,因此Asynchronous Spacewarp会造成移动的物体边缘有一些变形的情形,但比起只校正转动造成残影仍是好得多。 下面连结中的图片可以看到Asynchronous Spacewarp造成移动中的蓝色球边缘变形(第1、3、5张图是电脑一般运算出来的,第2、4张图是透过Asynchronous Spacewarp补上的,图片中残影则是拍摄者相机造成的) http://imgur.com/a/V6XeP 可以说目前Oculus使用的Reprojection技术是最进步的,造成的「副作用」也最少。 更多相关资讯可以参考: The Latent Power of Prediction https://goo.gl/1Rl9Ea Asynchronous Timewarp on Oculus Rift https://goo.gl/OmJT8E Asynchronous Spacewarp https://goo.gl/d7ZDZg Under the Hood of the Rift SDK Building for Touch https://youtu.be/eAl2l_1KfqQ
Playstation VR , Asynchronous Reprojection: 有关Playstation VR使用的Reprojection技术的资料不多,只知道其头戴显示器萤幕支援90Hz和120Hz的更新频率,开发者可以选择让其软体跑在90FPS、120FPS,或者是跑在60FPS并透过Reprojection补上不足的60FPS。(但考量到PS4性能较弱,多数软体可能会选择60FPS+Reprojection。) 此外开发者也可以选择是否要每一张画面都经过Reprojection校正再显示。 更多相关资讯可以参考: Embrace Virtual Reality with PlayStation® VR https://youtu.be/3RNbZpcfAhE
总的来说,Reprojection能够有效地降低延迟、避免晕眩,但经过Reprojection产生的画面多少会有些「副作用」,提升硬体性能、软体效率、画面更新率仍旧是带来流畅VR体验的最佳解! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.241.149.29
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/VR/M.1476531943.A.C4E.html ※ 编辑: luyaoting (111.241.149.29), 10/15/2016 19:52:33
1F:→ kuma660224: 之前的资料,Daydream也会有类似技术。10/15 20:03
※ 编辑: luyaoting (111.241.149.29), 10/15/2016 20:04:01
2F:推 nfsong: 专业推 24.22ms感觉wireless 很困难阿10/15 20:04
3F:→ luyaoting: 不知道Vive的定位系统能够有效预测到多久以後,能预测10/15 20:10
4F:→ luyaoting: 越久,就有越多时间来做无线传输 10/15 20:10
5F:推 akilight: 不过Oculus其实也有说,ATW终究只是辅助手段,不是万灵丹 10/15 20:21
6F:→ akilight: 单纯的转动没问题,但是最麻烦的还是位移处理10/15 20:22
7F:→ akilight: 在一些情形下,ATW处理位移补差造成的judder会被使用者10/15 20:22
8F:→ akilight: 注意到,就会失去减少晕眩的效果10/15 20:23
9F:→ akilight: 而在最坏的情形中反而会增加使用者的晕眩,所以他们建议10/15 20:23
10F:→ akilight: 开发者还是尽量不要依赖这个效果,尽量让画面能达到原生10/15 20:23
11F:→ akilight: 90FPS,ATW当作偶尔掉格时的应急手段就好10/15 20:24
12F:推 akilight: 不过最新的ASW看起来有大幅改善ATW在位移处理上的短处10/15 20:29
13F:→ akilight: 似乎还满不错的10/15 20:30
14F:→ akilight: 至於PSVR,之前看到的一些资讯是只有类似ATW的处理10/15 20:30
15F:→ akilight: 没有ASW,所以在某些情形下会出现一些artifacts10/15 20:31
16F:→ luyaoting: PSVR看国外体验心得,有些人有提到快速移动的物体有残10/15 20:48
17F:→ luyaoting: 影,感觉是比较像ATW10/15 20:48
18F:推 SULAjardin: 1080玩Onward, Reprojection直接关掉(原始设定on), 否10/15 21:07
19F:→ SULAjardin: 则只能超级取样1.0, 还要把游戏内画质降为low ...10/15 21:09
20F:→ SULAjardin: 听教我的老外说, 每次SteamVR更新都要去关一次,10/15 21:11
21F:→ SULAjardin: SteamVR更新完常会又把Reprojection打开...10/15 21:12
※ 编辑: luyaoting (111.241.149.29), 10/15/2016 21:15:01 ※ 编辑: luyaoting (111.241.149.29), 10/15/2016 21:16:02
22F:→ luyaoting: SteamVR的Interleaved Reprojection是比较单纯的安全 10/15 21:21
23F:→ luyaoting: 机制,能跑到90FPS的话不会作用。我没玩Onward,你可10/15 21:21
24F:→ luyaoting: 以照我前一篇文的方式,分别在允许/不允许再投影的情 10/15 21:21
25F:→ luyaoting: 况下检查看看CPU、GPU负载。 10/15 21:21
※ 编辑: luyaoting (111.241.149.29), 10/15/2016 21:53:58
26F:推 ashinet: 好文,的确daydream也有动手脚 10/16 00:57
27F:推 SULAjardin: 谢谢, 刚依照你教的方法执行, 发现多人驳火时, CPU会 10/16 01:31
28F:→ SULAjardin: 像针刺一样超过11.11ms ,GPU一直都在安全范围内. 10/16 01:32
29F:→ SULAjardin: 把Reprojection又打开了, 当初为了最佳化Onward效果,10/16 01:33
30F:→ SULAjardin: 同时尝试了许多步骤有成, 现在想想, 关Reprojection 10/16 01:34
31F:→ SULAjardin: 或许是不必要DER, 非常感谢 10/16 01:34
32F:→ abc2090614: 启动onward时按住alt把电脑萤幕的视窗拉小可以改善10/16 03:10
33F:→ abc2090614: 很多掉祯的问题 这算是Unity游戏的问题10/16 03:10
34F:推 SULAjardin: 我是把电脑桌面的Onward游戏画面最小化,当初抓超采和10/16 13:40
35F:→ SULAjardin: 显卡风扇转速&温度时, 发现这样可以降GPU温度5~10度. 10/16 13:41
※ 编辑: luyaoting (1.160.112.53), 10/16/2016 19:55:13 ※ 编辑: luyaoting (1.160.112.53), 10/16/2016 19:59:09 ※ 编辑: luyaoting (1.160.112.53), 10/16/2016 20:00:08
36F:推 zebb: 推好文! 10/17 09:04
37F:推 yannicklatte: 推 10/18 19:55
38F:推 giintaipei: 好清楚呀!! 推 10/20 18:53
※ 编辑: luyaoting (220.141.115.38), 10/26/2016 06:57:29 ※ 编辑: luyaoting (36.227.245.57), 11/20/2016 17:32:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP