分享一種Oculus Go實作的優化技術
Fixed Foveated Rendering
超陽春偷懶版的固定注視點渲染。
正常的(動態)注視點渲染需專門硬體
高速即時偵測眼球看的方向,
然後再分配運算資源在真正注視位置。
技術複雜成本不便宜,研究方案很多,但幾乎沒有主流產品實作上市。
OculusGo搞了窮人版的"固定"注視點渲染。
機器完全不知道你看哪裡,自動假設你眼球是正視前方中間。然後旁邊外圍用比較低解析
度去運算,節省GPU效能。
畢竟是S820手機晶片,本來效能就差PC很多倍,所以算聰明取巧。
盡量把有限資源集中在中間。
中央1:1解析度是100%點對點運算,
越往外圍變成以1/2, 1/4, 1/8, 1/16解析度運算。要多低可由App控制.
那用戶眼球亂轉動怎麼辦?
就你用戶自己培養習慣.....盡量用轉頭取代轉動眼睛。
開發者可透過API決定哪些時候不使用FFR.
或是FFR最大影響程度到多少。
例如全畫面選單UI時,效能過剩,就不必FFR.
FFR會造成邊緣畫質下降。
但是對手機來說,在高運算負荷場景,反而是優化品質。因為寧可犧牲邊緣,也要跑得動
不掉格.....
掉格的影響比什麼都嚴重。
這原理有一點點類似PC VR調整SuperSampling去減少或加大運算量。
只是FFR只影響邊緣外圍,而且是故意把畫質調差以提升流暢度。
但不會像調低SuperSampling連中間也一併影響。
有優化資源分配的意義。
即使如此效能仍跟PC差距很大。
但能讓OculusGo不用砸較昂貴高規S835/845晶片的成本,來滿足入門基本效能需求。