UE4是一个VR开发工具,那么移动端的VR开发者们来听听软件工程师对这个移动设备的开发详解吧。
UE4移动设备渲染器
我们在代表左右眼的立体摄像机位中间放置了第三个摄像机位,这三个机位在一条线上,这样它们的视角才能匹配上。
对于Gear VR,两只眼睛的摄像机的视椎体都是左右对称的,因此中间这个摄像机位的投射矩阵和双眼立体摄像机的投射矩阵也是一样的。
在Rift上,两眼的摄像机位视椎体则是非对称的(靠内朝鼻子这个角度,比靠外的角度要稍小一些),因此中间这个平面摄像机位的视椎体实际上是左右眼视椎体的集合体。
这包括了两眼看到的所有物体,但是也导致了它渲染出来的目标会比两只眼分别渲染的目标要稍微大些。
我们增加了一个分裂平面,来选择哪些内容会被用双眼立体摄像机来渲染,而哪些内容会用中间的平面摄像机来渲染。
我们发现用10米来作为默认值效果还不错(十米内立体渲染,十米外平面渲染)。
这个距离值可以在游戏中任意帧被随意修改,也可以在编辑器中的World Settings/ VR /Mono Culling Distance下进行配置。
我们还修改了UE4针对移动设备的前向渲染器来达到以下效果:
1、用立体摄像机来渲染非透明内容。
2、通过改变和结合输出来制作一个平面的遮罩。这个遮罩也会预先设定平面的深度缓存。
3、用平面摄像机来渲染非透明内容。
4、把平面摄像机的结果整合进立体的缓存里。
5、立体化渲染所有的透明内容,并进行所有的后期处理。
第一步的结果,纯立体缓存加上近景深度剔除
第三步的结果,远景是平面的,此截图特意做成左右两眼
第四步的结果,把第三步结果整合进第一步,加上近景深度剔除
网友评论