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