分享一种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芯片的成本,来满足入门基本效能需求。