你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文
VR領(lǐng)域常談的異步時(shí)間扭曲技術(shù)到底是什么?
發(fā)布時(shí)間:2017-02-14 責(zé)任編輯:sherry
【導(dǎo)讀】異步時(shí)間扭曲,簡(jiǎn)稱ATW,簡(jiǎn)單來(lái)說(shuō),這是一種生成中間幀的技術(shù)。當(dāng)游戲畫(huà)面無(wú)法保持足夠的幀率時(shí),它能產(chǎn)生中間幀進(jìn)行彌補(bǔ),從而維持較高的畫(huà)面刷新率。
相信對(duì)于玩過(guò)CS的人來(lái)說(shuō),Valve并不陌生,他于去年推出一個(gè)全新的SteamVR beta版來(lái)回應(yīng)Oculus的“異步時(shí)間扭曲”技術(shù)。說(shuō)到這,可能很多朋友對(duì)Oculus的ATW異步時(shí)間扭曲技術(shù)感到陌生,但如果你經(jīng)常聽(tīng)國(guó)內(nèi)一些技術(shù)流的VR創(chuàng)業(yè)公司的演講,那么你對(duì)“異步時(shí)間扭曲”這個(gè)詞肯定不會(huì)陌生。例如自稱國(guó)內(nèi)第一家掌握ATW技術(shù)的焰火工坊,在他們的第一次發(fā)布會(huì)上CTO王明楊就提到了這項(xiàng)技術(shù)。當(dāng)時(shí)他嘗試了進(jìn)行解釋,但后來(lái)放棄了,只說(shuō)“你們知道這很牛逼就行了”。此后CEO婁池也在各種場(chǎng)合提起ATW,包括微信朋友圈。另外一家公司樂(lè)相也是。
焰火工坊CEO婁池和樂(lè)相CEO陳朝陽(yáng)的朋友圈
ATW到底牛逼在哪?
異步時(shí)間扭曲英文是Asynchronous TImewarp,簡(jiǎn)稱ATW。簡(jiǎn)單來(lái)說(shuō),這是一種生成中間幀的技術(shù)。當(dāng)游戲畫(huà)面無(wú)法保持足夠的幀率時(shí),它能產(chǎn)生中間幀進(jìn)行彌補(bǔ),從而維持較高的畫(huà)面刷新率。這項(xiàng)技術(shù)的提出者John Carmack目前是Oculus的CTO。
在采訪中,王明楊解釋ATW,他是這樣說(shuō)的:
正常情況下,我們的手機(jī)大部分是60hz刷新,也就是說(shuō),在理想情況下我們的手機(jī)大概要處理有60幀/秒。那么,從數(shù)據(jù)到渲染就有 1000 /60 ~= 16.6666ms的時(shí)延。
那么,如何抵消這個(gè)時(shí)延呢?卡馬克(John Carmack)提出一種方法,通過(guò)大量采集陀螺儀數(shù)據(jù),在樣本足夠多的情況下,就可以預(yù)測(cè)出16.66ms后你頭部應(yīng)有的旋轉(zhuǎn)和位置,按照這個(gè)預(yù)測(cè)的數(shù)據(jù)來(lái)渲染,他管這個(gè)技術(shù)叫TImewarp。
然而問(wèn)題又來(lái)了,一般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之后貼在屏幕上。也就是說(shuō),無(wú)論你當(dāng)前游戲的fps是多少,Timewarp始終被設(shè)計(jì)成保持在60fps(視刷新率而定)。
這就是ATW的核心細(xì)節(jié),把Timewarp和產(chǎn)生Framebuffer分離,用高刷新率的Timewarp來(lái)?yè)Q取低時(shí)延。
ATW技術(shù)在VR中應(yīng)用的先驅(qū)是Oculus,早在兩年多以前他們就在Gear VR上應(yīng)用了這項(xiàng)技術(shù),直到去年3月25日宣布在PC端的SDK上加入ATW的支持。
具體怎么做?
Oculus在博客里對(duì)ATW做了詳細(xì)的解釋。如上圖所示,GPU給左右眼的畫(huà)面分別進(jìn)行渲染,然后在畫(huà)面顯示出來(lái)之前插入一個(gè)ATW的處理過(guò)程。在左邊這幀的處理中,畫(huà)面渲染及時(shí)完成,此時(shí)直接顯示就行了;中間的第二幀渲染未能及時(shí)完成,此時(shí)如果什么都不做就會(huì)出現(xiàn)畫(huà)面抖動(dòng),而有了ATW的話,它會(huì)將前面一幀調(diào)用出來(lái)重新顯示,同時(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)最好支持主表面寫(xiě)入,這個(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á)開(kāi)發(fā)了VRWorks,AMD則有Liquid VR。
國(guó)內(nèi)廠商中,樂(lè)相陳朝陽(yáng)表示ARM對(duì)大朋VR提供了Front Buffer和Context Priority的支持,用以在移動(dòng)VR上實(shí)現(xiàn)ATW。
沒(méi)有定制硬件的焰火工坊則在Oculus的基礎(chǔ)上修改了一部分Timewarp的實(shí)現(xiàn)。“我們?cè)阡秩揪€程那里會(huì)監(jiān)控Timewarp線程的工作情況,動(dòng)態(tài)的平衡GPU附載,保證Timewarp線程工作在比較高的幀率下。”王明楊說(shuō)。
有什么難點(diǎn)和局限?
聽(tīng)起來(lái)ATW是項(xiàng)很棒的技術(shù),但它也不是完美的。根據(jù)Oculus的博文,ATW的一個(gè)難點(diǎn)是位置抖動(dòng)(Positional Judder)。
位置抖動(dòng)是基于方向的Timewarp帶來(lái)明顯瑕疵之一。在使用VR設(shè)備時(shí),當(dāng)頭部移動(dòng)了, 如果在ATW產(chǎn)生圖像幀時(shí)只考慮了旋轉(zhuǎn),而平移卻被忽略了。這意味著當(dāng)你的頭從一邊移動(dòng)到另一邊時(shí),你看見(jiàn)的離你很近的物體會(huì)有多個(gè)圖像的抖動(dòng),這種效果在臨近場(chǎng)空間中是非常明顯的,比如下面的這個(gè)潛艇截圖。
Gear VR比較容易用上ATW,是因?yàn)樗恢С治恢米粉?,而PC平臺(tái)的Oculus Rift支持。Oculus最近宣布Rift支持ATW,應(yīng)該是解決了位置抖動(dòng)的問(wèn)題。
另外一點(diǎn)是運(yùn)動(dòng)的物體和動(dòng)畫(huà)。使用ATW時(shí),動(dòng)畫(huà)或者移動(dòng)的物體會(huì)引起另外一個(gè)瑕疵, 因?yàn)樗a(chǎn)生的新圖像只是根據(jù)前一幀圖像生成的,缺少了物體的運(yùn)動(dòng)信息,所有的中間幀都好像是被凍結(jié)了一樣,因而對(duì)于運(yùn)動(dòng)的物體容易產(chǎn)生抖動(dòng),見(jiàn)下圖。
不過(guò)王明楊倒是認(rèn)為雖然近處物體是個(gè)局限,但影響并沒(méi)想像的那么大。
總結(jié)
總體來(lái)說(shuō)ATW確實(shí)是一項(xiàng)很棒的技術(shù),如果沒(méi)有它的話,開(kāi)發(fā)者在游戲開(kāi)發(fā)中為了保持畫(huà)面幀率只能非常保守地使用CPU和GPU性能,而ATW可以游戲更容易保持幀率穩(wěn)定,從而讓開(kāi)發(fā)者在畫(huà)面設(shè)計(jì)上更加大膽。
實(shí)際運(yùn)行中Oculus發(fā)現(xiàn),沒(méi)有使用ATW的app在運(yùn)行中丟失了約5%的幀。ATW可以將大部分丟失的幀補(bǔ)上,從而大幅減少畫(huà)面抖動(dòng)。而這一切對(duì)app來(lái)說(shuō)不需要消耗更多性能或更改代碼就能實(shí)現(xiàn)。Oculus還表示這一切只是開(kāi)始,他們正與合作伙伴嘗試提高ATW的運(yùn)行效率。為了產(chǎn)生一個(gè)舒適,令人信服的虛擬現(xiàn)實(shí),開(kāi)發(fā)人員仍然需要保持幀率在90赫茲,如果達(dá)到90赫茲,將使VR具有很好的舒適性,這是VR存在的真正魅力。
特別推薦
- 克服碳化硅制造挑戰(zhàn),助力未來(lái)電力電子應(yīng)用
- 了解交流電壓的產(chǎn)生
- 單結(jié)晶體管符號(hào)和結(jié)構(gòu)
- 英飛凌推出用于汽車(chē)應(yīng)用識(shí)別和認(rèn)證的新型指紋傳感器IC
- Vishay推出負(fù)載電壓達(dá)100 V的業(yè)內(nèi)先進(jìn)的1 Form A固態(tài)繼電器
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車(chē)載PoC電感器LQW32FT_8H系列
技術(shù)文章更多>>
- 高性能碳化硅隔離柵極驅(qū)動(dòng)器如何選型,一文告訴您
- 貿(mào)澤電子新品推薦:2024年第三季度推出將近7000個(gè)新物料
- 大聯(lián)大世平集團(tuán)的駕駛員監(jiān)控系統(tǒng)(DMS)方案榮獲第六屆“金輯獎(jiǎng)之最佳技術(shù)實(shí)踐應(yīng)用”獎(jiǎng)
- X-CUBE-STL:支持更多STM32, 揭開(kāi)功能安全的神秘面紗
- 觸摸式OLED顯示屏有望重新定義汽車(chē)用戶界面
技術(shù)白皮書(shū)下載更多>>
- 車(chē)規(guī)與基于V2X的車(chē)輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車(chē)安全隔離的新挑戰(zhàn)
- 汽車(chē)模塊拋負(fù)載的解決方案
- 車(chē)用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索
音頻IC
音頻SoC
音頻變壓器
引線電感
語(yǔ)音控制
元件符號(hào)
元器件選型
云電視
云計(jì)算
云母電容
真空三極管
振蕩器
振蕩線圈
振動(dòng)器
振動(dòng)設(shè)備
震動(dòng)馬達(dá)
整流變壓器
整流二極管
整流濾波
直流電機(jī)
智能抄表
智能電表
智能電網(wǎng)
智能家居
智能交通
智能手機(jī)
中電華星
中電器材
中功率管
中間繼電器