<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測試測量 > 正文

    VR領域常談的異步時間扭曲技術到底是什么?

    發布時間:2017-02-14 責任編輯:sherry

    【導讀】異步時間扭曲,簡稱ATW,簡單來說,這是一種生成中間幀的技術。當游戲畫面無法保持足夠的幀率時,它能產生中間幀進行彌補,從而維持較高的畫面刷新率。
     
    相信對于玩過CS的人來說,Valve并不陌生,他于去年推出一個全新的SteamVR beta版來回應Oculus的“異步時間扭曲”技術。說到這,可能很多朋友對Oculus的ATW異步時間扭曲技術感到陌生,但如果你經常聽國內一些技術流的VR創業公司的演講,那么你對“異步時間扭曲”這個詞肯定不會陌生。例如自稱國內第一家掌握ATW技術的焰火工坊,在他們的第一次發布會上CTO王明楊就提到了這項技術。當時他嘗試了進行解釋,但后來放棄了,只說“你們知道這很牛逼就行了”。此后CEO婁池也在各種場合提起ATW,包括微信朋友圈。另外一家公司樂相也是。
    焰火工坊CEO婁池和樂相CEO陳朝陽的朋友圈
    焰火工坊CEO婁池和樂相CEO陳朝陽的朋友圈
     
    ATW到底牛逼在哪?
     
    異步時間扭曲英文是Asynchronous TImewarp,簡稱ATW。簡單來說,這是一種生成中間幀的技術。當游戲畫面無法保持足夠的幀率時,它能產生中間幀進行彌補,從而維持較高的畫面刷新率。這項技術的提出者John Carmack目前是Oculus的CTO。
     
    在采訪中,王明楊解釋ATW,他是這樣說的:
     
    正常情況下,我們的手機大部分是60hz刷新,也就是說,在理想情況下我們的手機大概要處理有60幀/秒。那么,從數據到渲染就有 1000 /60 ~= 16.6666ms的時延。
     
    那么,如何抵消這個時延呢?卡馬克(John Carmack)提出一種方法,通過大量采集陀螺儀數據,在樣本足夠多的情況下,就可以預測出16.66ms后你頭部應有的旋轉和位置,按照這個預測的數據來渲染,他管這個技術叫TImewarp。
     
    然而問題又來了,一般VR場景很復雜,我們很難保證每次都在16.66ms內完成一次渲染,也就是我們很難保證每個應用都是60fps。那么卡神又提出一個ATW,就是異步的TImewarp。
     
    他把VR應用的渲染管線設計成兩個線程,渲染線程(生產者)和TImewarp線程(消費者),兩者異步工作,生產者生產足夠多的Framebuffer,消費者把生產者生產的東西做Timewarp之后貼在屏幕上。也就是說,無論你當前游戲的fps是多少,Timewarp始終被設計成保持在60fps(視刷新率而定)。
     
    這就是ATW的核心細節,把Timewarp和產生Framebuffer分離,用高刷新率的Timewarp來換取低時延。
     
    ATW技術在VR中應用的先驅是Oculus,早在兩年多以前他們就在Gear VR上應用了這項技術,直到去年3月25日宣布在PC端的SDK上加入ATW的支持。
     
    具體怎么做?
    ATW技術
    Oculus在博客里對ATW做了詳細的解釋。如上圖所示,GPU給左右眼的畫面分別進行渲染,然后在畫面顯示出來之前插入一個ATW的處理過程。在左邊這幀的處理中,畫面渲染及時完成,此時直接顯示就行了;中間的第二幀渲染未能及時完成,此時如果什么都不做就會出現畫面抖動,而有了ATW的話,它會將前面一幀調用出來重新顯示,同時加上頭盔運動變化,從而保持幀率。
     
    這技術很難嗎?
     
    據王明楊表示,ATW技術很簡單,核心代碼僅5行。但如果要達到最好的效果,還需要以下幾點:
     
    1. GPU必須支持搶占式上下文(GPU preemption)。這個還好,大部分Mobile GPU都支持,但是桌面GPU大部分還不支持;
     
    2. 系統最好支持主表面寫入,這個跟GPU有一定關系,但是跟操作系統關系比較大;
     
    3. GPU必須有較高的性能,這個很好理解,Timewarp線程實際上加重了渲染負擔。
     
    Oculus先在Gear VR上實現ATW,原因就是上面的第1點。他們將ATW帶到PC平臺上,是在微軟、英偉達和AMD支持的情況下實現的。英偉達開發了VRWorks,AMD則有Liquid VR。
     
    國內廠商中,樂相陳朝陽表示ARM對大朋VR提供了Front Buffer和Context Priority的支持,用以在移動VR上實現ATW。
     
    沒有定制硬件的焰火工坊則在Oculus的基礎上修改了一部分Timewarp的實現。“我們在渲染線程那里會監控Timewarp線程的工作情況,動態的平衡GPU附載,保證Timewarp線程工作在比較高的幀率下。”王明楊說。
     
    有什么難點和局限?
     
    聽起來ATW是項很棒的技術,但它也不是完美的。根據Oculus的博文,ATW的一個難點是位置抖動(Positional Judder)。
     
    位置抖動是基于方向的Timewarp帶來明顯瑕疵之一。在使用VR設備時,當頭部移動了, 如果在ATW產生圖像幀時只考慮了旋轉,而平移卻被忽略了。這意味著當你的頭從一邊移動到另一邊時,你看見的離你很近的物體會有多個圖像的抖動,這種效果在臨近場空間中是非常明顯的,比如下面的這個潛艇截圖。
    ATW技術
    Gear VR比較容易用上ATW,是因為它不支持位置追蹤,而PC平臺的Oculus Rift支持。Oculus最近宣布Rift支持ATW,應該是解決了位置抖動的問題。
     
    另外一點是運動的物體和動畫。使用ATW時,動畫或者移動的物體會引起另外一個瑕疵, 因為它產生的新圖像只是根據前一幀圖像生成的,缺少了物體的運動信息,所有的中間幀都好像是被凍結了一樣,因而對于運動的物體容易產生抖動,見下圖。
    ATW技術
    不過王明楊倒是認為雖然近處物體是個局限,但影響并沒想像的那么大。
     
    總結
     
    總體來說ATW確實是一項很棒的技術,如果沒有它的話,開發者在游戲開發中為了保持畫面幀率只能非常保守地使用CPU和GPU性能,而ATW可以游戲更容易保持幀率穩定,從而讓開發者在畫面設計上更加大膽。
     
    實際運行中Oculus發現,沒有使用ATW的app在運行中丟失了約5%的幀。ATW可以將大部分丟失的幀補上,從而大幅減少畫面抖動。而這一切對app來說不需要消耗更多性能或更改代碼就能實現。Oculus還表示這一切只是開始,他們正與合作伙伴嘗試提高ATW的運行效率。為了產生一個舒適,令人信服的虛擬現實,開發人員仍然需要保持幀率在90赫茲,如果達到90赫茲,將使VR具有很好的舒適性,這是VR存在的真正魅力。
    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    无码伊人66久久大杳蕉网站谷歌| 四虎影视无码永久免费| 中文字幕丰满乱子无码视频| 暖暖日本中文视频| 亚洲熟妇无码八AV在线播放| 国产产无码乱码精品久久鸭| 99高清中文字幕在线| 久久影院午夜理论片无码| 最近2019好看的中文字幕| 色爱无码AV综合区| 精品人妻无码专区中文字幕| 人妻丰满av无码中文字幕| 日韩中文字幕视频| 天堂√最新版中文在线| 亚洲AV无码一区二区三区性色| 亚洲一级Av无码毛片久久精品 | 中文国产成人精品久久亚洲精品AⅤ无码精品| 最近高清中文在线字幕在线观看| 国产拍拍拍无码视频免费| 亚洲av日韩av无码黑人| 亚洲一区AV无码少妇电影☆| 中文字幕无码日韩专区免费| 一二三四在线观看免费中文在线观看 | 最近中文字幕无免费| 波多野结衣中文在线播放| 国产日韩精品中文字无码| 亚洲AV无码AV男人的天堂| 亚洲AV无码一区二区二三区入口| 日韩精品无码免费专区午夜| 国产成人无码一区二区在线观看| 人妻无码αv中文字幕久久| 亚洲中文字幕久久精品无码喷水| 久久综合精品国产二区无码| 精品亚洲A∨无码一区二区三区| 亚洲ⅴ国产v天堂a无码二区| 人妻系列无码专区无码中出| 蜜桃成人无码区免费视频网站| 东京热加勒比无码视频| 日韩人妻无码精品无码中文字幕| 无码午夜成人1000部免费视频| 亚洲不卡中文字幕无码|