?? 由 文心大模型 生成的文章摘要
事情正在起變化:游戲向左,影視向右
今年以來,VR市場上并沒有出現(xiàn)正真意義上的第二代PC VR,VR界的焦點(diǎn)從PC VR轉(zhuǎn)到了一體機(jī)VR:業(yè)界領(lǐng)先的Oculus推出了Oculus Go,HTC Vive也推出了Vive Focus高端一體機(jī)。其中Oculus轉(zhuǎn)向VR一體機(jī)的原因,在去年和今年的Facebook8甚至Google I/O大會上都有提到:不管Oculus 平臺還是DayDream平臺,用戶把至少80%的時(shí)間用在了觀影上:

來自2018 Facebook 8
83%,代表的是一場趨勢,代表著消費(fèi)者的核心訴求。基于上述背景,VR界“老兵”大朋VR攜新品 “全景聲巨幕影院”而來,將在2018年8月8日正式開啟新品預(yù)售:

在過去半年,大朋DPVR在自主研發(fā)的VR技術(shù)上再次進(jìn)行了創(chuàng)新和優(yōu)化,甚至在看似“孱弱”的國產(chǎn)芯片基礎(chǔ)上,做出了能媲美,甚至在觀影上更勝Oculus Go一籌的VR體驗(yàn)。接下來,大朋工程師將帶你從產(chǎn)品理念和技術(shù)創(chuàng)新方面,分享給你大朋DPVR新品:巨幕影院的技術(shù)創(chuàng)新和變革。
中國“芯”,新起點(diǎn)
現(xiàn)有市場上VR一體機(jī)多基于美國高通或韓國三星的芯片,大朋最早的一體機(jī)M2也不例外,使用的也是三星芯片。
但是這次有點(diǎn)不一樣。在今天“聲援”國產(chǎn)芯片的大背景下,早在幾年前,大朋就非常大膽地提前選定了國內(nèi)全志的VR9。 大朋曾向全志建議把ATW等VR算法操作從GPU中釋放出來,打造專有硬件模塊提高效率。4年磨一劍,現(xiàn)在全志終于為全球VR市場發(fā)布了第一款專用芯片VR9,定位非常犀利,就是給用戶提供極致的VR影音體驗(yàn)。尺有所短寸有所長,VR9的影音解碼是強(qiáng)項(xiàng),但以此就犧牲了游戲GPU能力。雖說魚與熊掌不可兼得,但是這不影響我們做出正確的選擇。

全志VR9框架圖
在VR9國產(chǎn)的芯片設(shè)計(jì)的基礎(chǔ)上,大朋從底到高都進(jìn)行了核心優(yōu)化,下面就是巨幕影院技術(shù)創(chuàng)新分析,供大家討論:
VR流水線:從渲染到人眼
要想真正了解VR技術(shù)的本質(zhì),得先從VR世界中一個(gè)物體如何被渲染并最終進(jìn)入人眼的過程講起。

VR物體進(jìn)入用戶眼中的歷程(流水線)
VR系統(tǒng)本質(zhì)上是一個(gè)異構(gòu)計(jì)算系統(tǒng),內(nèi)部的CPU, GPU,Display等硬件模塊一直協(xié)同并行工作。VR世界中的每一個(gè)物體從第一個(gè)模塊開始,在整個(gè)流水線上一步步推進(jìn),最終進(jìn)入用戶眼中,如何提高流水線的每一步的效率和并行度是VR系統(tǒng)高效運(yùn)轉(zhuǎn)的關(guān)鍵。
巨幕影院渲染算法優(yōu)化
設(shè)計(jì)時(shí)受到功耗和芯片面積的限制,移動端GPU性能參數(shù),不管是FLOP還是內(nèi)存帶寬都大大低于同級別的PC GPU,比如Nvidia的PC端GPU GTX 650和移動端GPU Tegra K1,雖然都來自于Kepler 架構(gòu),出現(xiàn)的時(shí)間幾乎相同,但前者的內(nèi)存帶寬是80G/s,后者的只有18G/s。對于用戶來說,這個(gè)差別意味著移動端的VR應(yīng)用和實(shí)現(xiàn)不可能采用和PC系統(tǒng)一樣的方法,而對于VR SDK的提供商來說,只能發(fā)揮“螺絲肚里做道場”的精神,想辦法提升移動平臺上GPU的利用率。在這個(gè)背景下,能夠擠掉CPU和GPU之間泡沫,提高兩者運(yùn)行并行度的Adaptive Queue Ahead技術(shù)應(yīng)運(yùn)而生。
以前的VR世界中,CPU總是在VSync(垂直同步)到來才開始下達(dá)渲染命令給GPU(如下圖),對于較重的GPU任務(wù),很可能無法在當(dāng)前VSync剩余時(shí)間中完成,后果就是應(yīng)用的FPS(Frame Per Second,幀率)下降,最終用戶體驗(yàn)到應(yīng)用或者游戲卡頓,顯示“鬼影”以及眩暈。

不帶Queue Ahead的渲染
Oculus最早在PC端的Rift上提出所謂的Adaptive Queue Ahead技術(shù),CPU不用傻傻的等待Vsync的到來,而是通過預(yù)測,在VSync到來之前幾毫秒內(nèi)開始下達(dá)渲染指令給GPU,讓GPU有更多的時(shí)間執(zhí)行任務(wù),有效提高VR應(yīng)用的FPS,產(chǎn)生更好的用戶體驗(yàn)。

帶Queue Ahead之后的渲染
大朋第一次把來自PC VR端的技術(shù)引入到VR一體機(jī)的世界,讓以前運(yùn)行卡頓的應(yīng)用流暢起來,還給用戶一個(gè)平滑,沉浸和畫面精致的VR世界。不過,考慮到PC平臺和一體機(jī)平臺之間的計(jì)算能力差異,但這一個(gè)優(yōu)化還遠(yuǎn)遠(yuǎn)不夠,于是大朋又通過叫“Hidden Mesh”的技術(shù)進(jìn)一步提高GPU的渲染效率。
在VR 頭盔的光學(xué)視場中,由于鏡杯結(jié)構(gòu)和人眼特點(diǎn),圖像中某些區(qū)域人眼是無法看到的,在VR圖像渲染中被稱為Hidden Area(如下圖中紅色三角覆蓋的地方,人眼其實(shí)無法看到)。

Hidden Mesh技術(shù)
大朋巨幕影院的圖形渲染中巧妙的利用了這點(diǎn),通過利用特殊繪制的Hidden Mesh(隱藏網(wǎng)格),能有效降低GPU的渲染工作量。CPU,GPU并行度提高了,GPU渲染效率也提高了,又進(jìn)了了一步。懷著好奇心,筆者進(jìn)一步分析了Oculus Go的系統(tǒng),也許出于其他的考慮,發(fā)現(xiàn)它并沒有采用Hidden Mesh。下圖紅框是Oculus Go Home中用戶能夠看到的部分,紅框之外圓圈之內(nèi)的內(nèi)容用戶通過透鏡和鏡杯并不能看到。

接下來要做的,還需要有效減少用戶佩戴時(shí)的眩暈感。人類的身體并非是天生為適應(yīng)VR而設(shè)計(jì)的。通過VR設(shè)備對感官進(jìn)行人工刺激,我們正在破壞生物機(jī)制的運(yùn)作,這些機(jī)制經(jīng)歷了數(shù)億年時(shí)間在自然環(huán)境中演變而來。我們也向大腦提供與現(xiàn)實(shí)體驗(yàn)不完全一致的信息。在某些情況下,我們的身體可能會適應(yīng)新的刺激。但在一些情況下,我們的身體會產(chǎn)生眩暈和惡心等癥狀,部分原因是大腦比平常更高速地運(yùn)轉(zhuǎn),以理解這類刺激。已知的產(chǎn)生眩暈的原因除了顯示分辨率/刷新率不足,前庭和視覺系統(tǒng)沖突,虛擬世界中比例失真等,Motion-To- Photons延時(shí)過大也是其中的元兇。
Motion-To-Photons延時(shí)指的是在運(yùn)行VR場景的情況下,從用戶的頭部移動開始,一直到這一信號通過VR頭盔輸出的光學(xué)信號映射到人眼所需的時(shí)間。一般認(rèn)為,這一延時(shí)大于20毫秒會導(dǎo)致用戶體驗(yàn)到較為明顯的眩暈。

Motion-To-Phontons
而現(xiàn)有市面上的VR一體機(jī)無一例外都是基于Android系統(tǒng)。為了提高手機(jī)和平板電腦上顯示的平滑性,傳統(tǒng)的Android系統(tǒng)都是采用了雙顯示緩沖或者三顯示緩沖。但是,這個(gè)機(jī)制讓VR應(yīng)用無法知道指定的圖像什么時(shí)候能夠顯示在頭盔屏幕上,加大了VR一體機(jī)的Motion-To-Phonton延時(shí),讓用戶體驗(yàn)到更多的眩暈。大朋做了獨(dú)有的硬件結(jié)構(gòu)和算法優(yōu)化,讓Front Buffer Rendering(前屏渲染)成為可能:流水線中只采用了一個(gè)顯示緩沖,最大程度上減少了Motion-To-Phonton延時(shí),提供給用戶更好的視覺體驗(yàn)。

Front Buffer Rendering
顯示優(yōu)化
除了渲染性能,顯示清晰度一直是判斷VR頭盔優(yōu)劣的另外一個(gè)重要指標(biāo),不過,沒有所謂顯示優(yōu)化的“銀彈”能一招制敵,清晰度的提升來自于各個(gè)模塊的綜合效果,而大朋在每一個(gè)部分都做了不斷的迭代和改進(jìn),從而帶來了出色的效果。
首先,GPU渲染出來的畫面得清晰。但是,計(jì)算機(jī)渲染的場景從三維空間的角度看是連續(xù)的,經(jīng)過光柵化之后最終顯示在屏幕上的二維的圖像本身卻是離散的,這導(dǎo)致非完全垂直或者非完全水平的邊上出現(xiàn)鋸齒。


SSAA/MSAA減輕鋸齒
抗鋸齒最直接的方法是SSAA(Super Sampling Anti Alias)和MSAA。具體的思想都是先把物體渲染到比屏幕分辨率大(比如4倍)的緩沖區(qū)中,然后再降采樣到和屏幕分辨率一樣的顯示緩沖區(qū)中最后輸出顯示,這樣更多的信息被保留,而圖像物體邊緣的顏色也因?yàn)榛旌狭瞬煌伾蓸狱c(diǎn)而消除或者減輕了鋸齒。在大朋巨幕影院的圖形渲染實(shí)現(xiàn)中,采用了SSAA和MSAA來抗鋸齒。
不過,事情好像還沒有完,VR用戶常常會抱怨圖片或者文字閃爍。為什么我們在PC或者手機(jī)上看不到閃爍而在VR頭盔中容易看到?這主要是用戶改變了VR世界中離物體的距離,圖像或者文字本身縮放造成的,再加上透鏡本身的放大作用,用戶就會觀察到閃爍。
大朋采用了MipMap技術(shù)來防止文字和圖片的閃爍。MipMap是指根據(jù)距觀看者遠(yuǎn)近距離的不同,以不同的分辨率將單一的材質(zhì)貼圖以多重圖像的形式表現(xiàn)出來:尺寸最大的圖像放在前面顯著的位置,而相對較小的圖像則后退到背景區(qū)域。每一個(gè)不同的尺寸等級定義成一個(gè)Mipmap水平。

Mipmap防止閃爍
這樣,每次渲染的時(shí)候系統(tǒng)會找出相對當(dāng)前場景最適合的圖像,做最小的縮放操作或者根本無需縮放,讓圖像信息最大程度的保真。
70HZ顯示刷新率
和Oculus Go一樣,大朋采用了快速響應(yīng)fast-LCD 屏幕,區(qū)別在于,Oculus Go缺省的刷新率是60HZ(某些特殊情況可以到72HZ),而大朋的刷新率則一直是70HZ。
Fast-LCD屏幕上的像素點(diǎn)在每個(gè)Vsync過程中并不是完全點(diǎn)亮,屏幕的余輝(Persistence)大概在1-2ms。假設(shè)屏幕的余暉是1ms,對于60HZ來說,就是6.25%的時(shí)間屏幕上像素點(diǎn)是亮的,而對于70hz刷新率來說,就有7%的時(shí)間是亮的,大朋巨幕影院用戶會感覺VR世界更亮。同時(shí),人眼工作在一個(gè)更高刷新率的模式,較低刷新率的VR頭盔會讓用戶感到閃爍。
顯示芯片中的異步時(shí)間扭曲
在一個(gè)清晰,高刷新率的平穩(wěn)世界中,常見的VR眩暈依然還有嗎?有可能。帶上頭盔的用戶使用過程中不停的轉(zhuǎn)動,圖像渲染時(shí)采用的姿態(tài)信息和圖像上屏顯示時(shí)的姿態(tài)可能完全不一樣,用戶一樣會暈。
怎么辦?解決之道是在圖像幀掃描到顯示器之前進(jìn)行再一次的調(diào)整:根據(jù)最新的預(yù)測姿態(tài)更新圖像,這被稱為Time Warping(時(shí)間扭曲)或者Reprojection(再投影)。如果在實(shí)現(xiàn)中渲染的線程和做扭曲的線程是不同線程的話,又被稱為Asynchronous Time Warping(異步時(shí)間扭曲)。
一般而言,VR計(jì)算過程中重要的環(huán)節(jié),異步時(shí)間扭曲(包括畸變矯正和色散矯正)在GPU中完成。

傳統(tǒng)的ATW
但是,由于VR游戲或者應(yīng)用會在渲染環(huán)節(jié)占用大量的GPU資源和計(jì)算能力,會造成GPU不能及時(shí)完成以上任務(wù),帶來較差的用戶體驗(yàn),這在移動平臺上尤甚。大朋巨幕影院中第一次創(chuàng)造性的把時(shí)間扭曲/畸變矯正/色散等處理放在了獨(dú)立的顯示芯片中完成,減少了GPU負(fù)載,釋放了GPU資源,有效提高了系統(tǒng)性能,也降低了系統(tǒng)功耗。別小看這一步優(yōu)化,憑借這個(gè),大朋能夠在系統(tǒng)功耗上一下子拉開和同類產(chǎn)品的差距,這將在后面進(jìn)行進(jìn)一步解釋。

顯示芯片中的ATW
圖像后處理機(jī)制
在手機(jī)的世界中,同樣拍攝的照片,加上不同的濾鏡,馬上鳳姐變鳳凰,老太變少女,在VR的世界中更是如此。而所謂的濾鏡,說白了就是圖像后處理。大朋巨幕影院系統(tǒng)中的圖像后處理系統(tǒng)被稱為SmartColor,能夠帶來更鮮艷的色彩和更好的色溫控制,包括如下的功能:
(1) 自適應(yīng)的細(xì)節(jié)和邊緣增強(qiáng);
(2) 自適應(yīng)的顏色增強(qiáng);
(3) 自適應(yīng)的對比度增強(qiáng)和色調(diào)矯正。
體驗(yàn)一下Oculus Go上和大朋上實(shí)拍同一張圖片,大朋的色彩要更加的自然,臉部層次更豐富,頭發(fā)處的細(xì)節(jié)顯示更加細(xì)膩。Oculus Go有明顯光暈。

圖像后處理比較(右為大朋巨幕影院)
透鏡設(shè)計(jì)
VR頭盔上的透鏡本質(zhì)上是一個(gè)放大鏡,也是VR中很多光學(xué)缺陷比如紗窗效應(yīng),雜散光等的“元兇”或者 “ 幫兇 ”。在顯示屏幕分辨率大致相同的情況下,VR鏡片看點(diǎn)有兩個(gè):透鏡中心到透鏡邊緣的清晰度下降快慢,菲涅爾雜散光和拖影。
比如,下圖被美國軍方用來檢測鏡片各區(qū)域的清晰度。把圖放入頭盔中,你能清晰看到圖像中間水平和垂直紅線的最大刻度是多少?

清晰度比較基準(zhǔn)圖
答案揭曉,通過把以上圖片導(dǎo)入大朋工程樣機(jī)和Oculus Go,左右兩側(cè)能看到的最大清晰刻度分別是11.2(大朋),11.2 (Oculus Go)。從清晰度的下降程度看,通過頭顯看以上圖片, 大朋巨幕影院和Oculus Go達(dá)到同樣的邊緣清晰度。
和Oculus Go一樣,大朋巨幕影院采用了菲涅爾鏡片。和非球面鏡片相比,菲涅爾鏡片更輕,視場角也能做的更大,長時(shí)間試用更保護(hù)用戶的眼睛,但是由于其特殊的工藝和形狀,齒間的光漫反射,會造成雜散光和特殊的光暈。

菲涅爾透鏡外觀
利用菲涅爾鏡片的優(yōu)點(diǎn),補(bǔ)足其缺點(diǎn),大朋的光學(xué)鏡片做了專門的設(shè)計(jì)優(yōu)化,有效消除了雜散光和光暈。這種優(yōu)化效果,在黑暗背景下由亮光形成的圖案中,能夠有效的觀察到。
從Oculus Go頭盔中抓取畫面并放在大朋巨幕影院頭顯內(nèi)顯示,仔細(xì)觀察視野內(nèi)左下角“未安裝應(yīng)用”、“環(huán)境”白色字體的拖影情況,與Oculus Go頭盔的顯示拖影別無二致。

拖影測試圖
另外,在大朋巨幕影院中打開“3D影視”-> “三少爺?shù)膭?rdquo;,在影院場景中選擇第7排,然后“關(guān)燈”,時(shí)間軸定格到00:01:02暫停,畫面顯示下圖內(nèi)容,仔細(xì)觀察虛擬銀幕以外區(qū)域的雜光光暈,幾乎難以覺察。
作為對比,Oculus Go也要顯示相似的內(nèi)容。在 SKYBOX,找到宣傳視頻,時(shí)間軸定格到00:00:11暫停,觀影場景選擇“太空”,同樣仔細(xì)觀察虛擬銀幕以外區(qū)域的雜光光暈會略微差些。

光暈測試
全景聲聲場
為強(qiáng)化沉浸感,大朋巨幕影院中加入了獨(dú)有的杜比7.1聲道模擬算法,讓用戶觀看視頻時(shí)能體驗(yàn)到全景聲效果。

VR全景聲示意圖
同時(shí),為了降低周圍環(huán)境對用戶的影響,還實(shí)現(xiàn)了定向聲場傳播,使用者本人和周圍的旁觀者聽到完全不同的效果。
深度功耗優(yōu)化
根據(jù)CPU自身的狀態(tài),大朋巨幕影院系統(tǒng)能夠進(jìn)入到3個(gè)不同的功耗等級:正常,待機(jī)和深度睡眠,實(shí)測觀影續(xù)航能到4小時(shí)。
結(jié)合相應(yīng)的用戶操作和接近開關(guān),大朋巨幕影院系統(tǒng)能夠自動在不同的模式之間切換,達(dá)到節(jié)電的目的。同時(shí),根據(jù)當(dāng)前CPU、GPU等硬件模塊的負(fù)載,大朋巨幕影院能動態(tài)調(diào)節(jié)CPU、GPU的頻點(diǎn),以滿足不同使用場景的性能需求。比如當(dāng)CPU使用率大于某一閾值時(shí),會將CPU運(yùn)行在更高的頻點(diǎn),以滿足更大的性能需求;當(dāng)CPU使用率小于某一閾值時(shí),系統(tǒng)會將CPU運(yùn)行在更低的頻點(diǎn),以滿足更低功耗的需求。
Oculus Go也有類似的電源管理機(jī)制,叫做Dynamic Clock Throttling(動態(tài)時(shí)鐘調(diào)節(jié)中文翻譯),不過實(shí)測下來觀影時(shí)間只有大朋的一半,2小時(shí)左右。
寫在最后
大朋VR以往的產(chǎn)品,不管是最高端的支持360°Room-Scale范圍的基于紅外激光定位的Polaris,還是2年前就銷往國內(nèi)外的一體機(jī)M2,都基于大朋的自有技術(shù):從算法理論,硬件制造,頭盔固件,F(xiàn)PGA,到Mobile VR SDK,再到開發(fā)工具,都是大朋自己的攻“城獅們”用一行行代碼壘出來的,本次的全景聲巨幕影院也不例外。我們期待著脫胎于自主研發(fā)技術(shù)的全景聲巨幕影院,為大家?guī)眢@喜的VR體驗(yàn)。
以上就是大朋巨幕影院VR創(chuàng)新優(yōu)化技術(shù)的分享,歡迎大家在評論區(qū)留言給大朋工程師,分享你對巨幕影院的看法。








