VR殺手锏:‘異步時(shí)間扭曲’技術(shù)的真相是什么?
發(fā)布時(shí)間:2016-04-08 責(zé)任編輯:susan
【導(dǎo)讀】如果你經(jīng)常聽國(guó)內(nèi)一些技術(shù)流的VR創(chuàng)業(yè)公司的演講,那么你對(duì)“異步時(shí)間扭曲”(ATW)這個(gè)詞肯定不會(huì)陌生。例如自稱國(guó)內(nèi)第一家掌握ATW技術(shù)的焰火工坊,在他們的第一次發(fā)布會(huì)上CTO王明楊就提到了這項(xiàng)技術(shù)。
當(dāng)時(shí)他嘗試了進(jìn)行解釋,但后來放棄了,只說“你們知道這很牛逼就行了”。此后CEO婁池也在各種場(chǎng)合提起ATW,包括微信朋友圈。另外一家公司樂相也是。
“異步時(shí)間扭曲”這個(gè)名稱聽起來很牛逼,但了解它實(shí)際含義的人可能不多。
焰火工坊CEO婁池和樂相CEO陳朝陽的朋友圈
一種生成中間幀的技術(shù)
異步時(shí)間扭曲英文是Asynchronous Timewarp,簡(jiǎn)稱ATW。簡(jiǎn)單來說,這是一種生成中間幀的技術(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ù)測(cè)出16.66ms后你頭部應(yīng)有的旋轉(zhuǎn)和位置,按照這個(gè)預(yù)測(cè)的數(shù)據(jù)來渲染,他管這個(gè)技術(shù)叫Timewarp。
然而問題又來了,一般VR場(chǎng)景很復(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博客(下同)
Oculus在博客里對(duì)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ù)很簡(jiǎn)單,核心代碼僅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。
國(guó)內(nèi)廠商中,樂相陳朝陽表示ARM對(duì)大朋VR提供了Front Buffer和Context Priority的支持,用以在移動(dòng)VR上實(shí)現(xiàn)ATW。
沒有定制硬件的焰火工坊則在Oculus的基礎(chǔ)上修改了一部分Timewarp的實(shí)現(xiàn)。“我們?cè)阡秩揪€程那里會(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),這種效果在臨近場(chǎ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é)了一樣,因而對(duì)于運(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)。而這一切對(duì)app來說不需要消耗更多性能或更改代碼就能實(shí)現(xiàn)。Oculus還表示這一切只是開始,他們正與合作伙伴嘗試提高ATW的運(yùn)行效率。
特別推薦
- 音頻放大器的 LLC 設(shè)計(jì)注意事項(xiàng)
- 服務(wù)器電源設(shè)計(jì)中的五大趨勢(shì)
- 電子技術(shù)如何助力高鐵節(jié)能?
- 利用創(chuàng)新FPGA技術(shù):實(shí)現(xiàn)USB解決方案的低功耗、模塊化與小尺寸
- 加速度傳感器不好選型?看這6個(gè)重要參數(shù)!
- 功率器件熱設(shè)計(jì)基礎(chǔ)(十三)——使用熱系數(shù)Ψth(j-top)獲取結(jié)溫信息
- IGBT并聯(lián)設(shè)計(jì)指南,拿下!
技術(shù)文章更多>>
- MD&M West展會(huì):Micro Crystal攜創(chuàng)新定時(shí)元件,共繪醫(yī)療科技新藍(lán)圖
- PLC 交流模塊的 TRIAC 輸出故障排除
- 解鎖AI設(shè)計(jì)潛能,ASO.ai如何革新模擬IC設(shè)計(jì)
- 汽車拋負(fù)載Load Dump
- 50%的年長(zhǎng)者可能會(huì)聽障?!救贖的辦法在這里
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
過熱保護(hù)
過壓保護(hù)
焊接設(shè)備
焊錫焊膏
恒溫振蕩器
恒壓變壓器
恒壓穩(wěn)壓器
紅外收發(fā)器
紅外線加熱
厚膜電阻
互連技術(shù)
滑動(dòng)分壓器
滑動(dòng)開關(guān)
輝曄
混合保護(hù)器
混合動(dòng)力汽車
混頻器
霍爾傳感器
機(jī)電元件
基創(chuàng)卓越
激光二極管
激光器
計(jì)步器
繼電器
繼電器接線
減速電機(jī)
檢波二極管
檢波器
檢驗(yàn)設(shè)備
鑒頻器