VR領(lǐng)域常談的異步時(shí)間扭曲技術(shù)到底是什么?
發(fā)布時(shí)間:2017-02-14 責(zé)任編輯:sherry
【導(dǎo)讀】異步時(shí)間扭曲,簡稱ATW,簡單來說,這是一種生成中間幀的技術(shù)。當(dāng)游戲畫面無法保持足夠的幀率時(shí),它能產(chǎn)生中間幀進(jìn)行彌補(bǔ),從而維持較高的畫面刷新率。
相信對于玩過CS的人來說,Valve并不陌生,他于去年推出一個(gè)全新的SteamVR beta版來回應(yīng)Oculus的“異步時(shí)間扭曲”技術(shù)。說到這,可能很多朋友對Oculus的ATW異步時(shí)間扭曲技術(shù)感到陌生,但如果你經(jīng)常聽國內(nèi)一些技術(shù)流的VR創(chuàng)業(yè)公司的演講,那么你對“異步時(shí)間扭曲”這個(gè)詞肯定不會(huì)陌生。例如自稱國內(nèi)第一家掌握ATW技術(shù)的焰火工坊,在他們的第一次發(fā)布會(huì)上CTO王明楊就提到了這項(xiàng)技術(shù)。當(dāng)時(shí)他嘗試了進(jìn)行解釋,但后來放棄了,只說“你們知道這很牛逼就行了”。此后CEO婁池也在各種場合提起ATW,包括微信朋友圈。另外一家公司樂相也是。
焰火工坊CEO婁池和樂相CEO陳朝陽的朋友圈
ATW到底牛逼在哪?
異步時(shí)間扭曲英文是Asynchronous TImewarp,簡稱ATW。簡單來說,這是一種生成中間幀的技術(shù)。當(dāng)游戲畫面無法保持足夠的幀率時(shí),它能產(chǎn)生中間幀進(jìn)行彌補(bǔ),從而維持較高的畫面刷新率。這項(xiàng)技術(shù)的提出者John Carmack目前是Oculus的CTO。
在采訪中,王明楊解釋ATW,他是這樣說的:
正常情況下,我們的手機(jī)大部分是60hz刷新,也就是說,在理想情況下我們的手機(jī)大概要處理有60幀/秒。那么,從數(shù)據(jù)到渲染就有 1000 /60 ~= 16.6666ms的時(shí)延。
那么,如何抵消這個(gè)時(shí)延呢?卡馬克(John Carmack)提出一種方法,通過大量采集陀螺儀數(shù)據(jù),在樣本足夠多的情況下,就可以預(yù)測出16.66ms后你頭部應(yīng)有的旋轉(zhuǎn)和位置,按照這個(gè)預(yù)測的數(shù)據(jù)來渲染,他管這個(gè)技術(shù)叫TImewarp。
然而問題又來了,一般VR場景很復(fù)雜,我們很難保證每次都在16.66ms內(nèi)完成一次渲染,也就是我們很難保證每個(gè)應(yīng)用都是60fps。那么卡神又提出一個(gè)ATW,就是異步的TImewarp。
他把VR應(yīng)用的渲染管線設(shè)計(jì)成兩個(gè)線程,渲染線程(生產(chǎn)者)和TImewarp線程(消費(fèi)者),兩者異步工作,生產(chǎn)者生產(chǎn)足夠多的Framebuffer,消費(fèi)者把生產(chǎn)者生產(chǎn)的東西做Timewarp之后貼在屏幕上。也就是說,無論你當(dāng)前游戲的fps是多少,Timewarp始終被設(shè)計(jì)成保持在60fps(視刷新率而定)。
這就是ATW的核心細(xì)節(jié),把Timewarp和產(chǎn)生Framebuffer分離,用高刷新率的Timewarp來換取低時(shí)延。
ATW技術(shù)在VR中應(yīng)用的先驅(qū)是Oculus,早在兩年多以前他們就在Gear VR上應(yīng)用了這項(xiàng)技術(shù),直到去年3月25日宣布在PC端的SDK上加入ATW的支持。
具體怎么做?
Oculus在博客里對ATW做了詳細(xì)的解釋。如上圖所示,GPU給左右眼的畫面分別進(jìn)行渲染,然后在畫面顯示出來之前插入一個(gè)ATW的處理過程。在左邊這幀的處理中,畫面渲染及時(shí)完成,此時(shí)直接顯示就行了;中間的第二幀渲染未能及時(shí)完成,此時(shí)如果什么都不做就會(huì)出現(xiàn)畫面抖動(dòng),而有了ATW的話,它會(huì)將前面一幀調(diào)用出來重新顯示,同時(shí)加上頭盔運(yùn)動(dòng)變化,從而保持幀率。
這技術(shù)很難嗎?
據(jù)王明楊表示,ATW技術(shù)很簡單,核心代碼僅5行。但如果要達(dá)到最好的效果,還需要以下幾點(diǎn):
1. GPU必須支持搶占式上下文(GPU preemption)。這個(gè)還好,大部分Mobile GPU都支持,但是桌面GPU大部分還不支持;
2. 系統(tǒng)最好支持主表面寫入,這個(gè)跟GPU有一定關(guān)系,但是跟操作系統(tǒng)關(guān)系比較大;
3. GPU必須有較高的性能,這個(gè)很好理解,Timewarp線程實(shí)際上加重了渲染負(fù)擔(dān)。
Oculus先在Gear VR上實(shí)現(xiàn)ATW,原因就是上面的第1點(diǎn)。他們將ATW帶到PC平臺(tái)上,是在微軟、英偉達(dá)和AMD支持的情況下實(shí)現(xiàn)的。英偉達(dá)開發(fā)了VRWorks,AMD則有Liquid VR。
國內(nèi)廠商中,樂相陳朝陽表示ARM對大朋VR提供了Front Buffer和Context Priority的支持,用以在移動(dòng)VR上實(shí)現(xiàn)ATW。
沒有定制硬件的焰火工坊則在Oculus的基礎(chǔ)上修改了一部分Timewarp的實(shí)現(xiàn)。“我們在渲染線程那里會(huì)監(jiān)控Timewarp線程的工作情況,動(dòng)態(tài)的平衡GPU附載,保證Timewarp線程工作在比較高的幀率下。”王明楊說。
有什么難點(diǎn)和局限?
聽起來ATW是項(xiàng)很棒的技術(shù),但它也不是完美的。根據(jù)Oculus的博文,ATW的一個(gè)難點(diǎn)是位置抖動(dòng)(Positional Judder)。
位置抖動(dòng)是基于方向的Timewarp帶來明顯瑕疵之一。在使用VR設(shè)備時(shí),當(dāng)頭部移動(dòng)了, 如果在ATW產(chǎn)生圖像幀時(shí)只考慮了旋轉(zhuǎn),而平移卻被忽略了。這意味著當(dāng)你的頭從一邊移動(dòng)到另一邊時(shí),你看見的離你很近的物體會(huì)有多個(gè)圖像的抖動(dòng),這種效果在臨近場空間中是非常明顯的,比如下面的這個(gè)潛艇截圖。
Gear VR比較容易用上ATW,是因?yàn)樗恢С治恢米粉?,而PC平臺(tái)的Oculus Rift支持。Oculus最近宣布Rift支持ATW,應(yīng)該是解決了位置抖動(dòng)的問題。
另外一點(diǎn)是運(yùn)動(dòng)的物體和動(dòng)畫。使用ATW時(shí),動(dòng)畫或者移動(dòng)的物體會(huì)引起另外一個(gè)瑕疵, 因?yàn)樗a(chǎn)生的新圖像只是根據(jù)前一幀圖像生成的,缺少了物體的運(yùn)動(dòng)信息,所有的中間幀都好像是被凍結(jié)了一樣,因而對于運(yùn)動(dòng)的物體容易產(chǎn)生抖動(dòng),見下圖。
不過王明楊倒是認(rèn)為雖然近處物體是個(gè)局限,但影響并沒想像的那么大。
總結(jié)
總體來說ATW確實(shí)是一項(xiàng)很棒的技術(shù),如果沒有它的話,開發(fā)者在游戲開發(fā)中為了保持畫面幀率只能非常保守地使用CPU和GPU性能,而ATW可以游戲更容易保持幀率穩(wěn)定,從而讓開發(fā)者在畫面設(shè)計(jì)上更加大膽。
實(shí)際運(yùn)行中Oculus發(fā)現(xiàn),沒有使用ATW的app在運(yùn)行中丟失了約5%的幀。ATW可以將大部分丟失的幀補(bǔ)上,從而大幅減少畫面抖動(dòng)。而這一切對app來說不需要消耗更多性能或更改代碼就能實(shí)現(xiàn)。Oculus還表示這一切只是開始,他們正與合作伙伴嘗試提高ATW的運(yùn)行效率。為了產(chǎn)生一個(gè)舒適,令人信服的虛擬現(xiàn)實(shí),開發(fā)人員仍然需要保持幀率在90赫茲,如果達(dá)到90赫茲,將使VR具有很好的舒適性,這是VR存在的真正魅力。
特別推薦
- 隨時(shí)隨地享受大屏幕游戲:讓便攜式 4K 超高清 240Hz 游戲投影儀成為現(xiàn)實(shí)
- 在發(fā)送信號(hào)鏈設(shè)計(jì)中使用差分轉(zhuǎn)單端射頻放大器的優(yōu)勢
- 第9講:SiC的加工工藝(1)離子注入
- 移遠(yuǎn)通信再推兩款新型4G、Wi-Fi、GNSS三合一組合天線
- Bourns 推出全新雙繞組系列,擴(kuò)展屏蔽功率電感產(chǎn)品組合
- 貿(mào)澤開售AMD Versal AI Edge VEK280評估套件
- 安森美Hyperlux圖像傳感器將用于斯巴魯新一代集成AI的EyeSight系統(tǒng)
技術(shù)文章更多>>
- 在智能照明產(chǎn)品設(shè)計(jì)中實(shí)施Matter協(xié)議的經(jīng)驗(yàn)教訓(xùn)
- 艾睿電子助力SAVART Motors擴(kuò)大其在印尼的電動(dòng)車制造規(guī)模
- 隔離飛電容多電平變換器的硬件設(shè)計(jì)
- 【“源”察秋毫系列】多次循環(huán)雙脈沖測試應(yīng)用助力功率器件研究及性能評估
- 高信噪比MEMS麥克風(fēng)驅(qū)動(dòng)人工智能交互
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
SynQor
s端子線
Taiyo Yuden
TDK-EPC
TD-SCDMA功放
TD-SCDMA基帶
TE
Tektronix
Thunderbolt
TI
TOREX
TTI
TVS
UPS電源
USB3.0
USB 3.0主控芯片
USB傳輸速度
usb存儲(chǔ)器
USB連接器
VGA連接器
Vishay
WCDMA功放
WCDMA基帶
Wi-Fi
Wi-Fi芯片
window8
WPG
XILINX
Zigbee
ZigBee Pro