UE4是一個VR開發(fā)工具,那么移動端的VR開發(fā)者們來聽聽軟件工程師對這個移動設備的開發(fā)詳解吧。
UE4移動設備渲染器
我們在代表左右眼的立體攝像機位中間放置了第三個攝像機位,這三個機位在一條線上,這樣它們的視角才能匹配上。
對于Gear VR,兩只眼睛的攝像機的視椎體都是左右對稱的,因此中間這個攝像機位的投射矩陣和雙眼立體攝像機的投射矩陣也是一樣的。
在Rift上,兩眼的攝像機位視椎體則是非對稱的(靠內(nèi)朝鼻子這個角度,比靠外的角度要稍小一些),因此中間這個平面攝像機位的視椎體實際上是左右眼視椎體的集合體。
這包括了兩眼看到的所有物體,但是也導致了它渲染出來的目標會比兩只眼分別渲染的目標要稍微大些。
我們增加了一個分裂平面,來選擇哪些內(nèi)容會被用雙眼立體攝像機來渲染,而哪些內(nèi)容會用中間的平面攝像機來渲染。
我們發(fā)現(xiàn)用10米來作為默認值效果還不錯(十米內(nèi)立體渲染,十米外平面渲染)。
這個距離值可以在游戲中任意幀被隨意修改,也可以在編輯器中的World Settings/ VR /Mono Culling Distance下進行配置。
我們還修改了UE4針對移動設備的前向渲染器來達到以下效果:
1、用立體攝像機來渲染非透明內(nèi)容。
2、通過改變和結(jié)合輸出來制作一個平面的遮罩。這個遮罩也會預先設定平面的深度緩存。
3、用平面攝像機來渲染非透明內(nèi)容。
4、把平面攝像機的結(jié)果整合進立體的緩存里。
5、立體化渲染所有的透明內(nèi)容,并進行所有的后期處理。
第一步的結(jié)果,純立體緩存加上近景深度剔除
第三步的結(jié)果,遠景是平面的,此截圖特意做成左右兩眼
第四步的結(jié)果,把第三步結(jié)果整合進第一步,加上近景深度剔除