事情正在起變化:游戲向左,影視向右
今年以來(lái),VR市場(chǎng)上并沒(méi)有出現(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大會(huì)上都有提到:不管Oculus 平臺(tái)還是DayDream平臺(tái),用戶把至少80%的時(shí)間用在了觀影上:
來(lái)自2018 Facebook 8
83%,代表的是一場(chǎng)趨勢(shì),代表著消費(fèi)者的核心訴求。基于上述背景,VR界“老兵”大朋VR攜新品 “全景聲巨幕影院”而來(lái),將在2018年8月8日正式開(kāi)啟新品預(yù)售:
在過(guò)去半年,大朋DPVR在自主研發(fā)的VR技術(shù)上再次進(jìn)行了創(chuàng)新和優(yōu)化,甚至在看似“孱弱”的國(guó)產(chǎn)芯片基礎(chǔ)上,做出了能媲美,甚至在觀影上更勝Oculus Go一籌的VR體驗(yàn)。接下來(lái),大朋工程師將帶你從產(chǎn)品理念和技術(shù)創(chuàng)新方面,分享給你大朋DPVR新品:巨幕影院的技術(shù)創(chuàng)新和變革。
中國(guó)“芯”,新起點(diǎn)
現(xiàn)有市場(chǎng)上VR一體機(jī)多基于美國(guó)高通或韓國(guó)三星的芯片,大朋最早的一體機(jī)M2也不例外,使用的也是三星芯片。
但是這次有點(diǎn)不一樣。在今天“聲援”國(guó)產(chǎn)芯片的大背景下,早在幾年前,大朋就非常大膽地提前選定了國(guó)內(nèi)全志的VR9。 大朋曾向全志建議把ATW等VR算法操作從GPU中釋放出來(lái),打造專有硬件模塊提高效率。4年磨一劍,現(xiàn)在全志終于為全球VR市場(chǎng)發(fā)布了第一款專用芯片VR9,定位非常犀利,就是給用戶提供極致的VR影音體驗(yàn)。尺有所短寸有所長(zhǎng),VR9的影音解碼是強(qiáng)項(xiàng),但以此就犧牲了游戲GPU能力。雖說(shuō)魚(yú)與熊掌不可兼得,但是這不影響我們做出正確的選擇。
全志VR9框架圖
在VR9國(guó)產(chǎn)的芯片設(shè)計(jì)的基礎(chǔ)上,大朋從底到高都進(jìn)行了核心優(yōu)化,下面就是巨幕影院技術(shù)創(chuàng)新分析,供大家討論:
VR流水線:從渲染到人眼
要想真正了解VR技術(shù)的本質(zhì),得先從VR世界中一個(gè)物體如何被渲染并最終進(jìn)入人眼的過(guò)程講起。
VR物體進(jìn)入用戶眼中的歷程(流水線)
VR系統(tǒng)本質(zhì)上是一個(gè)異構(gòu)計(jì)算系統(tǒng),內(nèi)部的CPU, GPU,Display等硬件模塊一直協(xié)同并行工作。VR世界中的每一個(gè)物體從第一個(gè)模塊開(kāi)始,在整個(gè)流水線上一步步推進(jìn),最終進(jìn)入用戶眼中,如何提高流水線的每一步的效率和并行度是VR系統(tǒng)高效運(yùn)轉(zhuǎn)的關(guān)鍵。
巨幕影院渲染算法優(yōu)化
設(shè)計(jì)時(shí)受到功耗和芯片面積的限制,移動(dòng)端GPU性能參數(shù),不管是FLOP還是內(nèi)存帶寬都大大低于同級(jí)別的PC GPU,比如Nvidia的PC端GPU GTX 650和移動(dòng)端GPU Tegra K1,雖然都來(lái)自于Kepler 架構(gòu),出現(xiàn)的時(shí)間幾乎相同,但前者的內(nèi)存帶寬是80G/s,后者的只有18G/s。對(duì)于用戶來(lái)說(shuō),這個(gè)差別意味著移動(dòng)端的VR應(yīng)用和實(shí)現(xiàn)不可能采用和PC系統(tǒng)一樣的方法,而對(duì)于VR SDK的提供商來(lái)說(shuō),只能發(fā)揮“螺絲肚里做道場(chǎng)”的精神,想辦法提升移動(dòng)平臺(tái)上GPU的利用率。在這個(gè)背景下,能夠擠掉CPU和GPU之間泡沫,提高兩者運(yùn)行并行度的Adaptive Queue Ahead技術(shù)應(yīng)運(yùn)而生。
以前的VR世界中,CPU總是在VSync(垂直同步)到來(lái)才開(kāi)始下達(dá)渲染命令給GPU(如下圖),對(duì)于較重的GPU任務(wù),很可能無(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的到來(lái),而是通過(guò)預(yù)測(cè),在VSync到來(lái)之前幾毫秒內(nèi)開(kāi)始下達(dá)渲染指令給GPU,讓GPU有更多的時(shí)間執(zhí)行任務(wù),有效提高VR應(yīng)用的FPS,產(chǎn)生更好的用戶體驗(yàn)。
帶Queue Ahead之后的渲染
大朋第一次把來(lái)自PC VR端的技術(shù)引入到VR一體機(jī)的世界,讓以前運(yùn)行卡頓的應(yīng)用流暢起來(lái),還給用戶一個(gè)平滑,沉浸和畫(huà)面精致的VR世界。不過(guò),考慮到PC平臺(tái)和一體機(jī)平臺(tái)之間的計(jì)算能力差異,但這一個(gè)優(yōu)化還遠(yuǎn)遠(yuǎn)不夠,于是大朋又通過(guò)叫“Hidden Mesh”的技術(shù)進(jìn)一步提高GPU的渲染效率。
在VR 頭盔的光學(xué)視場(chǎng)中,由于鏡杯結(jié)構(gòu)和人眼特點(diǎn),圖像中某些區(qū)域人眼是無(wú)法看到的,在VR圖像渲染中被稱為Hidden Area(如下圖中紅色三角覆蓋的地方,人眼其實(shí)無(wú)法看到)。
Hidden Mesh技術(shù)
大朋巨幕影院的圖形渲染中巧妙的利用了這點(diǎn),通過(guò)利用特殊繪制的Hidden Mesh(隱藏網(wǎng)格),能有效降低GPU的渲染工作量。CPU,GPU并行度提高了,GPU渲染效率也提高了,又進(jìn)了了一步。懷著好奇心,筆者進(jìn)一步分析了Oculus Go的系統(tǒng),也許出于其他的考慮,發(fā)現(xiàn)它并沒(méi)有采用Hidden Mesh。下圖紅框是Oculus Go Home中用戶能夠看到的部分,紅框之外圓圈之內(nèi)的內(nèi)容用戶通過(guò)透鏡和鏡杯并不能看到。
接下來(lái)要做的,還需要有效減少用戶佩戴時(shí)的眩暈感。人類的身體并非是天生為適應(yīng)VR而設(shè)計(jì)的。通過(guò)VR設(shè)備對(duì)感官進(jìn)行人工刺激,我們正在破壞生物機(jī)制的運(yùn)作,這些機(jī)制經(jīng)歷了數(shù)億年時(shí)間在自然環(huán)境中演變而來(lái)。我們也向大腦提供與現(xiàn)實(shí)體驗(yàn)不完全一致的信息。在某些情況下,我們的身體可能會(huì)適應(yīng)新的刺激。但在一些情況下,我們的身體會(huì)產(chǎn)生眩暈和惡心等癥狀,部分原因是大腦比平常更高速地運(yùn)轉(zhuǎn),以理解這類刺激。已知的產(chǎn)生眩暈的原因除了顯示分辨率/刷新率不足,前庭和視覺(jué)系統(tǒng)沖突,虛擬世界中比例失真等,Motion-To- Photons延時(shí)過(guò)大也是其中的元兇。
Motion-To-Photons延時(shí)指的是在運(yùn)行VR場(chǎng)景的情況下,從用戶的頭部移動(dòng)開(kāi)始,一直到這一信號(hào)通過(guò)VR頭盔輸出的光學(xué)信號(hào)映射到人眼所需的時(shí)間。一般認(rèn)為,這一延時(shí)大于20毫秒會(huì)導(dǎo)致用戶體驗(yàn)到較為明顯的眩暈。
Motion-To-Phontons
而現(xiàn)有市面上的VR一體機(jī)無(wú)一例外都是基于Android系統(tǒng)。為了提高手機(jī)和平板電腦上顯示的平滑性,傳統(tǒng)的Android系統(tǒng)都是采用了雙顯示緩沖或者三顯示緩沖。但是,這個(gè)機(jī)制讓VR應(yīng)用無(wú)法知道指定的圖像什么時(shí)候能夠顯示在頭盔屏幕上,加大了VR一體機(jī)的Motion-To-Phonton延時(shí),讓用戶體驗(yàn)到更多的眩暈。大朋做了獨(dú)有的硬件結(jié)構(gòu)和算法優(yōu)化,讓Front Buffer Rendering(前屏渲染)成為可能:流水線中只采用了一個(gè)顯示緩沖,最大程度上減少了Motion-To-Phonton延時(shí),提供給用戶更好的視覺(jué)體驗(yàn)。
Front Buffer Rendering
顯示優(yōu)化
除了渲染性能,顯示清晰度一直是判斷VR頭盔優(yōu)劣的另外一個(gè)重要指標(biāo),不過(guò),沒(méi)有所謂顯示優(yōu)化的“銀彈”能一招制敵,清晰度的提升來(lái)自于各個(gè)模塊的綜合效果,而大朋在每一個(gè)部分都做了不斷的迭代和改進(jìn),從而帶來(lái)了出色的效果。
首先,GPU渲染出來(lái)的畫(huà)面得清晰。但是,計(jì)算機(jī)渲染的場(chǎng)景從三維空間的角度看是連續(xù)的,經(jīng)過(guò)光柵化之后最終顯示在屏幕上的二維的圖像本身卻是離散的,這導(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來(lái)抗鋸齒。
不過(guò),事情好像還沒(méi)有完,VR用戶常常會(huì)抱怨圖片或者文字閃爍。為什么我們?cè)赑C或者手機(jī)上看不到閃爍而在VR頭盔中容易看到?這主要是用戶改變了VR世界中離物體的距離,圖像或者文字本身縮放造成的,再加上透鏡本身的放大作用,用戶就會(huì)觀察到閃爍。
大朋采用了MipMap技術(shù)來(lái)防止文字和圖片的閃爍。MipMap是指根據(jù)距觀看者遠(yuǎn)近距離的不同,以不同的分辨率將單一的材質(zhì)貼圖以多重圖像的形式表現(xiàn)出來(lái):尺寸最大的圖像放在前面顯著的位置,而相對(duì)較小的圖像則后退到背景區(qū)域。每一個(gè)不同的尺寸等級(jí)定義成一個(gè)Mipmap水平。
Mipmap防止閃爍
這樣,每次渲染的時(shí)候系統(tǒng)會(huì)找出相對(duì)當(dāng)前場(chǎng)景最適合的圖像,做最小的縮放操作或者根本無(wú)需縮放,讓圖像信息最大程度的保真。
70HZ顯示刷新率
和Oculus Go一樣,大朋采用了快速響應(yīng)fast-LCD 屏幕,區(qū)別在于,Oculus Go缺省的刷新率是60HZ(某些特殊情況可以到72HZ),而大朋的刷新率則一直是70HZ。
Fast-LCD屏幕上的像素點(diǎn)在每個(gè)Vsync過(guò)程中并不是完全點(diǎn)亮,屏幕的余輝(Persistence)大概在1-2ms。假設(shè)屏幕的余暉是1ms,對(duì)于60HZ來(lái)說(shuō),就是6.25%的時(shí)間屏幕上像素點(diǎn)是亮的,而對(duì)于70hz刷新率來(lái)說(shuō),就有7%的時(shí)間是亮的,大朋巨幕影院用戶會(huì)感覺(jué)VR世界更亮。同時(shí),人眼工作在一個(gè)更高刷新率的模式,較低刷新率的VR頭盔會(huì)讓用戶感到閃爍。
顯示芯片中的異步時(shí)間扭曲
在一個(gè)清晰,高刷新率的平穩(wěn)世界中,常見(jiàn)的VR眩暈依然還有嗎?有可能。帶上頭盔的用戶使用過(guò)程中不停的轉(zhuǎn)動(dòng),圖像渲染時(shí)采用的姿態(tài)信息和圖像上屏顯示時(shí)的姿態(tài)可能完全不一樣,用戶一樣會(huì)暈。
怎么辦?解決之道是在圖像幀掃描到顯示器之前進(jìn)行再一次的調(diào)整:根據(jù)最新的預(yù)測(cè)姿態(tài)更新圖像,這被稱為Time Warping(時(shí)間扭曲)或者Reprojection(再投影)。如果在實(shí)現(xiàn)中渲染的線程和做扭曲的線程是不同線程的話,又被稱為Asynchronous Time Warping(異步時(shí)間扭曲)。
一般而言,VR計(jì)算過(guò)程中重要的環(huán)節(jié),異步時(shí)間扭曲(包括畸變矯正和色散矯正)在GPU中完成。
傳統(tǒng)的ATW
但是,由于VR游戲或者應(yīng)用會(huì)在渲染環(huán)節(jié)占用大量的GPU資源和計(jì)算能力,會(huì)造成GPU不能及時(shí)完成以上任務(wù),帶來(lái)較差的用戶體驗(yàn),這在移動(dòng)平臺(tái)上尤甚。大朋巨幕影院中第一次創(chuàng)造性的把時(shí)間扭曲/畸變矯正/色散等處理放在了獨(dú)立的顯示芯片中完成,減少了GPU負(fù)載,釋放了GPU資源,有效提高了系統(tǒng)性能,也降低了系統(tǒng)功耗。別小看這一步優(yōu)化,憑借這個(gè),大朋能夠在系統(tǒng)功耗上一下子拉開(kāi)和同類產(chǎn)品的差距,這將在后面進(jìn)行進(jìn)一步解釋。
顯示芯片中的ATW
圖像后處理機(jī)制
在手機(jī)的世界中,同樣拍攝的照片,加上不同的濾鏡,馬上鳳姐變鳳凰,老太變少女,在VR的世界中更是如此。而所謂的濾鏡,說(shuō)白了就是圖像后處理。大朋巨幕影院系統(tǒng)中的圖像后處理系統(tǒng)被稱為SmartColor,能夠帶來(lái)更鮮艷的色彩和更好的色溫控制,包括如下的功能:
(1) 自適應(yīng)的細(xì)節(jié)和邊緣增強(qiáng);
(2) 自適應(yīng)的顏色增強(qiáng);
(3) 自適應(yīng)的對(duì)比度增強(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è):透鏡中心到透鏡邊緣的清晰度下降快慢,菲涅爾雜散光和拖影。
比如,下圖被美國(guó)軍方用來(lái)檢測(cè)鏡片各區(qū)域的清晰度。把圖放入頭盔中,你能清晰看到圖像中間水平和垂直紅線的最大刻度是多少?
清晰度比較基準(zhǔn)圖
答案揭曉,通過(guò)把以上圖片導(dǎo)入大朋工程樣機(jī)和Oculus Go,左右兩側(cè)能看到的最大清晰刻度分別是11.2(大朋),11.2 (Oculus Go)。從清晰度的下降程度看,通過(guò)頭顯看以上圖片, 大朋巨幕影院和Oculus Go達(dá)到同樣的邊緣清晰度。
和Oculus Go一樣,大朋巨幕影院采用了菲涅爾鏡片。和非球面鏡片相比,菲涅爾鏡片更輕,視場(chǎng)角也能做的更大,長(zhǎng)時(shí)間試用更保護(hù)用戶的眼睛,但是由于其特殊的工藝和形狀,齒間的光漫反射,會(huì)造成雜散光和特殊的光暈。
菲涅爾透鏡外觀
利用菲涅爾鏡片的優(yōu)點(diǎn),補(bǔ)足其缺點(diǎn),大朋的光學(xué)鏡片做了專門的設(shè)計(jì)優(yōu)化,有效消除了雜散光和光暈。這種優(yōu)化效果,在黑暗背景下由亮光形成的圖案中,能夠有效的觀察到。
從Oculus Go頭盔中抓取畫(huà)面并放在大朋巨幕影院頭顯內(nèi)顯示,仔細(xì)觀察視野內(nèi)左下角“未安裝應(yīng)用”、“環(huán)境”白色字體的拖影情況,與Oculus Go頭盔的顯示拖影別無(wú)二致。
拖影測(cè)試圖
另外,在大朋巨幕影院中打開(kāi)“3D影視”-> “三少爺?shù)膭?rdquo;,在影院場(chǎng)景中選擇第7排,然后“關(guān)燈”,時(shí)間軸定格到00:01:02暫停,畫(huà)面顯示下圖內(nèi)容,仔細(xì)觀察虛擬銀幕以外區(qū)域的雜光光暈,幾乎難以覺(jué)察。
作為對(duì)比,Oculus Go也要顯示相似的內(nèi)容。在 SKYBOX,找到宣傳視頻,時(shí)間軸定格到00:00:11暫停,觀影場(chǎng)景選擇“太空”,同樣仔細(xì)觀察虛擬銀幕以外區(qū)域的雜光光暈會(huì)略微差些。
光暈測(cè)試
全景聲聲場(chǎng)
為強(qiáng)化沉浸感,大朋巨幕影院中加入了獨(dú)有的杜比7.1聲道模擬算法,讓用戶觀看視頻時(shí)能體驗(yàn)到全景聲效果。
VR全景聲示意圖
同時(shí),為了降低周圍環(huán)境對(duì)用戶的影響,還實(shí)現(xiàn)了定向聲場(chǎng)傳播,使用者本人和周圍的旁觀者聽(tīng)到完全不同的效果。
深度功耗優(yōu)化
根據(jù)CPU自身的狀態(tài),大朋巨幕影院系統(tǒng)能夠進(jìn)入到3個(gè)不同的功耗等級(jí):正常,待機(jī)和深度睡眠,實(shí)測(cè)觀影續(xù)航能到4小時(shí)。
結(jié)合相應(yīng)的用戶操作和接近開(kāi)關(guān),大朋巨幕影院系統(tǒng)能夠自動(dòng)在不同的模式之間切換,達(dá)到節(jié)電的目的。同時(shí),根據(jù)當(dāng)前CPU、GPU等硬件模塊的負(fù)載,大朋巨幕影院能動(dòng)態(tài)調(diào)節(jié)CPU、GPU的頻點(diǎn),以滿足不同使用場(chǎng)景的性能需求。比如當(dāng)CPU使用率大于某一閾值時(shí),會(huì)將CPU運(yùn)行在更高的頻點(diǎn),以滿足更大的性能需求;當(dāng)CPU使用率小于某一閾值時(shí),系統(tǒng)會(huì)將CPU運(yùn)行在更低的頻點(diǎn),以滿足更低功耗的需求。
Oculus Go也有類似的電源管理機(jī)制,叫做Dynamic Clock Throttling(動(dòng)態(tài)時(shí)鐘調(diào)節(jié)中文翻譯),不過(guò)實(shí)測(cè)下來(lái)觀影時(shí)間只有大朋的一半,2小時(shí)左右。
寫(xiě)在最后
大朋VR以往的產(chǎn)品,不管是最高端的支持360°Room-Scale范圍的基于紅外激光定位的Polaris,還是2年前就銷往國(guó)內(nèi)外的一體機(jī)M2,都基于大朋的自有技術(shù):從算法理論,硬件制造,頭盔固件,F(xiàn)PGA,到Mobile VR SDK,再到開(kāi)發(fā)工具,都是大朋自己的攻“城獅們”用一行行代碼壘出來(lái)的,本次的全景聲巨幕影院也不例外。我們期待著脫胎于自主研發(fā)技術(shù)的全景聲巨幕影院,為大家?guī)?lái)驚喜的VR體驗(yàn)。
以上就是大朋巨幕影院VR創(chuàng)新優(yōu)化技術(shù)的分享,歡迎大家在評(píng)論區(qū)留言給大朋工程師,分享你對(duì)巨幕影院的看法。
]]>