VR技巧:如何在低配手機(jī)中實(shí)現(xiàn)60幀每秒的VR體驗(yàn)

?? 由 文心大模型 生成的文章摘要

在手機(jī)上運(yùn)行VR內(nèi)容是一個(gè)技術(shù)挑戰(zhàn)。電腦端的VR解決方案包括Oculus和Vive,都建議使用英特爾酷睿i5 CPU和GTX 970作為最低配置。然而,手機(jī)缺乏這些高端臺(tái)式電腦的配置,只能在移動(dòng)SOC芯片運(yùn)行VR內(nèi)容,并同時(shí)處理運(yùn)動(dòng)追蹤系統(tǒng)。

雖然谷歌新推出的“Daydream VR”還沒有公布具體的規(guī)格,但幾乎可以肯定,它只適用于最新的高端手機(jī)。而谷歌此前推出的紙質(zhì)VR頭顯Cardboard也不能像其宣稱的那樣,為所有人提供VR。那么,在一部iPhone5或者Galaxy S3上如何獲得身臨其境的VR體驗(yàn)?zāi)兀?/span>

先來看看都有哪些需要克服的問題吧。要打造良好的VR體驗(yàn),至少需要60幀每秒的播放速度(普遍播放速度要求為90幀每秒,索尼的PSVR甚至達(dá)到120幀每秒)。如果達(dá)不到這個(gè)速度,用戶就會(huì)意識(shí)到運(yùn)動(dòng)控制和頭部追蹤的滯后,甚至對(duì)某些人而言,還會(huì)造成暈眩癥等不適感。

另外,VR觀看方式有一個(gè)特性。VR系統(tǒng)為每一只眼睛單獨(dú)渲染不同的圖像,這些圖像略似矩形,再憑借鏡片和我們的感知?jiǎng)?chuàng)造出帶有景深的寬場(chǎng)景幻象。雖然好的鏡頭可以保證圖像的質(zhì)量,但不管質(zhì)量多好,還是會(huì)出現(xiàn)圖像扭曲變形的失真情況。

普遍的解決方法是通過渲染技術(shù),對(duì)失真的圖像進(jìn)行逆向調(diào)整,再將調(diào)整后的圖像傳到屏幕緩沖區(qū),輸出到顯示屏上。經(jīng)過這一輪調(diào)整后,我們?cè)陲@示器看到的圖像就是正常的效果了。

總之,失真圖像進(jìn)行逆向調(diào)整后就能得到不失真的圖像。

在攝影術(shù)語中,這些叫做“桶形畸變”和“枕形畸變”。頭顯的鏡片普遍會(huì)造成枕形畸變,引起圖像向中間“收縮”,調(diào)整的方式是進(jìn)行“桶形”調(diào)整,在曲面拉伸圖像。

然而,要對(duì)所有圖像像素進(jìn)行調(diào)整,抵消鏡頭的失真效果,會(huì)給每一幀增加非常多的處理任務(wù),同時(shí)也增加了手機(jī)創(chuàng)建幀的工作量,同時(shí)還會(huì)降低有效的分辨率,因?yàn)閳D像中心區(qū)域被向外拉伸了,覆蓋了很多像素,類似于放大后分辨率降低的圖片。拉伸擴(kuò)展后,過多的細(xì)節(jié)擠壓在每一幀的邊緣,還把CPU處理時(shí)間浪費(fèi)在了用戶不太可能看的細(xì)節(jié)上。

一百萬個(gè)小碎片:頂點(diǎn)位移與曲面細(xì)分

對(duì)此有一個(gè)工作室想到了一種創(chuàng)新性的解決方法。Brian Kehrer是一名游戲設(shè)計(jì)師,曾與ustwo合作(《紀(jì)念碑谷》的開發(fā)者)一起創(chuàng)作了一款極地荒野VR游戲《北極之旅》,目前已經(jīng)被谷歌Cardboard收錄為內(nèi)置游戲。為了提升移動(dòng)VR體驗(yàn)的適用性,Kehrer的團(tuán)隊(duì)希望能在2012年發(fā)布的Galaxy S3手機(jī)上以60幀每秒的速度穩(wěn)定地運(yùn)行VR應(yīng)用。

該團(tuán)隊(duì)的初步測(cè)試表示,以前的手機(jī)不可以在渲染圖像,調(diào)整失真的同時(shí)還保證60幀每秒的穩(wěn)定輸出。所以Kehrer和他的團(tuán)隊(duì)想到了一個(gè)新方法:與其渲染游戲后再調(diào)整,不如先調(diào)整整個(gè)游戲? 他們采取的做法是頂點(diǎn)位移,從字面上理解就是移動(dòng)圖像的頂點(diǎn)來調(diào)整失真。 這意味著場(chǎng)景通過相應(yīng)的渲染,就能直接被傳送到屏幕上,省略了中間步驟。

如果你還記得計(jì)算機(jī)圖形是多邊形的集合,那就能很好的理解這種做法了。 頂點(diǎn)位移不會(huì)改變線條; 兩個(gè)頂點(diǎn)之間的點(diǎn)始終保持筆直。 然而,通過移動(dòng)頂點(diǎn),就可以實(shí)現(xiàn)場(chǎng)景失真調(diào)整,一次性呈現(xiàn)最終圖像。

不過,該方案還面臨一項(xiàng)挑戰(zhàn):低多邊形對(duì)象(例如,正方形)不適用于頂點(diǎn)位移。 為了調(diào)整失真,正方形的輪廓需要彎曲成弧線。 Kehrer表示,曲面鏡頭會(huì)使曲線看起來像直線。 如果不這么調(diào)整,鏡頭里的正方形看起來就像向內(nèi)塌陷了。 然而,由于頂點(diǎn)位移并不調(diào)整線條,它不能糾正像正方形一樣的簡(jiǎn)單對(duì)象。 而大多數(shù)用戶界面元素融入了許多簡(jiǎn)單的多邊形,如正方形和長(zhǎng)方形,這成為了一個(gè)大難題。

最終這個(gè)難題的解決方案叫做曲面細(xì)分,通常用于渲染復(fù)雜的幾何形狀。曲面細(xì)分是指,通過重復(fù)地聯(lián)鎖簡(jiǎn)單的形狀,從而形成一個(gè)復(fù)雜對(duì)象的過程。 通常是把大的多邊形分解成數(shù)十個(gè)或數(shù)百個(gè)小型的三角形,再以簡(jiǎn)單的形狀形成更復(fù)雜的紋理和表面。 你可以根據(jù)處理能力的多少?zèng)Q定增加或減少三角形的數(shù)量。

結(jié)合頂點(diǎn)位移,這意味著要細(xì)分簡(jiǎn)單的多邊形,如正方形,可以形成上百個(gè)較小的正方形,每個(gè)正方形由兩個(gè)相連的三角形組成。而渲染這些頂點(diǎn)并不會(huì)為CPU增加大量的負(fù)擔(dān)。

Kehrer說,大多數(shù)的移動(dòng)設(shè)備可以渲染100,000至400,000頂點(diǎn),所以把4個(gè)頂點(diǎn)的正方形變成121個(gè)頂點(diǎn)的對(duì)象不會(huì)產(chǎn)生帶來很大的負(fù)擔(dān)(把一個(gè)正方形分裂成理論上的10×10網(wǎng)格所配對(duì)三角形需要121頂點(diǎn))。最后通過移動(dòng)這些三角形的角,形成調(diào)整失真所需的彎曲邊緣即可。

此外,這種方法還有一個(gè)優(yōu)勢(shì):圖像省去了渲染再拉伸的步驟。實(shí)際操作只是通過適當(dāng)比例來渲染,因此沒有丟失每一幀中間區(qū)域的細(xì)節(jié),改善了分辨率。

 

這種技術(shù)使得《北極之旅 》創(chuàng)造了技術(shù)奇跡,只是該技術(shù)可能難以得到廣泛應(yīng)用。因?yàn)閾?jù)了解,谷歌新推出的VR平臺(tái)Daydream ,似乎不支持頂點(diǎn)位移功能,而Oculus和Vive則需要額外配備一個(gè)名為Timewarp的處理器裝置。

Kehrer在博客中提出一個(gè)嚴(yán)肅的問題:如果他的團(tuán)隊(duì)可以在Galaxy S3運(yùn)行VR游戲,那么為什么Oculus和Vive還需要不斷研發(fā)更強(qiáng)大的硬件呢?我們將會(huì)繼續(xù)深入研究。