創作內容

3 GP

目前三大VR設備使用的Reprojection(再投影)技術簡介

作者:luyaoting│2016-10-15 22:03:32│巴幣:6│人氣:858
什麼是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(預設是兩種都開啟)。

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看起來
的樣子。


依據個人實測結果,在只有轉動頭部的時候,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遊戲上會有更好的效果。



HTC Vive + SteamVR , Interleaved Reprojection

為了克服上述的情形A,Vive沒有使用Reprojection技術,而是動作預測。定位系統會預測使用者在24.22ms後的位置,藉此克服電腦運算、資料處理造成的時間差。
當遇到情形B,SteamVR偵測到軟體跑不到90FPS(發生掉幀),SteamVR會讓軟體改成跑在
45FPS,再將這45張畫面經過Reprojection處理(稍微扭轉原本的畫面),產生新的45張畫面。運算出的45張畫面跟校正後的45張畫面交錯顯示,如此便不會有暈眩的問題。
然而由於目前SteamVR的Interleaved Reprojection只校正頭部轉動,因此如果使用者移動了頭部或是遇到移動中的虛擬物體,便會產生有誤差的畫面,正確的畫面和有誤差的畫面交錯顯示,便會形成類似殘影的效果。
下圖左側是90FPS看起來的樣子,下圖右側則是45FPS+Interleaved Reprojection看起來
的樣子。


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補上的,圖片中殘影則是拍攝者相機造成的)

可以說目前Oculus使用的Reprojection技術是最進步的,造成的「副作用」也最少。

更多相關資訊可以參考:


Playstation VR , Asynchronous Reprojection

有關Playstation VR使用的Reprojection技術的資料不多,只知道其頭戴顯示器螢幕支援90Hz和120Hz的更新頻率,開發者可以選擇讓其軟體跑在90FPS、120FPS,或者是跑在60FPS並透過Reprojection補上不足的60FPS。(但考量到PS4性能較弱,多數軟體可能會選擇60FPS+Reprojection。)
此外開發者也可以選擇是否要每一張畫面都經過Reprojection校正再顯示。

更多相關資訊可以參考:

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

總的來說,Reprojection能夠有效地降低延遲、避免暈眩,但經過Reprojection產生的畫面多少會有些「副作用」,提升硬體性能、軟體效率、畫面更新率仍舊是帶來流暢VR體驗的最佳解!

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3354402
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:HTC Vive|Oculus Rift|Playstation VR|VIVE|RIFT|PSVR|VR|虛擬實境|Reprojection|再投影

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

3喜歡★luyaoting 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:SteamVR教學:如何... 後一篇:教學:Switch充電器...

追蹤私訊切換新版閱覽

作品資料夾

redLIZARD01各位
小屋快生灰塵了,發個月更的小說【BEASTIA 沙漠之岸】清清蜘蛛網~看更多我要大聲說昨天21:37


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】