基于UE4的VR项目基础环境配置和Motion Controller控制配置
本文使用的VR硬件是HTC VIVE。文章分为两个部分,第一部分详细介绍在UE4中使用蓝图进行基础环境配置时,需要关注的渲染优化、后期处理、环境比例、HMD帧率优化设置等内容;第二部分则阐述如何使用UE4蓝图对HTC VIVE的手柄进行配置。适合刚学习VR的同学参考。
一、VR基础环境配置
UE4项目设置
新建VR项目时,建议选择“移动设备/平板电脑”“可缩放3D或2D”以及“没有初学者内容”选项,以确保项目从一开始就在合适的框架上运行。
VR .INI 设置
以下设置是基于UE4 VR demo Showdown测试得出的优化设置,实际使用时可根据项目需求进行调整。这些设置位于Config\DefaultEngine.INI
文件的[SystemSettings]
部分:
[SystemSettings]
r.VolumeMultiplier=1.0 ; 体积乘数
r.screenpercentage=130 ; 屏幕比例设置
r.SeparateTranslucency=0 ; 修复半透明情况下景深的问题
r.HZBOcclusion=0 ; HZB环境光遮蔽
r.FinishCurrentFrame=1 ; 完成当前帧
r.MotionBlurQuality=0 ; 运动模糊质量
r.PostProcessAAQuality=3 ; 后期特效质量
r.BloomQuality=1 ; 光溢出质量
r.EyeAdaptationQuality=0 ; 模拟眼睛自适应光效质量
r.AmbientOcclusionLevels=0; 环境遮蔽质量级别
r.SSR.Quality=1 ; 屏幕空间反射质量
r.DepthOfFieldQuality=0 ; 景深质量
r.SceneColorFormat=2 ; 能够选用不同的SceneColor格式
r.SSSSS=0
r.TranslucencyVolumeBlur=0; 半透明体积模糊
r.TranslucencyLightingVolumeDim=4 ; 半透明灯光体积范围
r.MaxAnisotropy=8
r.LensFlareQuality=0 ; 镜头光晕质量
r.SceneColorFringeQuality=0 ; 场景颜色边缘质量(紫边效果)
r.FastBlurThreshold=0 ; 模糊阀值
showflag.decals=0 ; 贴花选项开关
r.SSR.MaxRoughness=0.1 ; 屏幕空间反射粗糙度最大值
r.rhicmdbypass=0
r.TiledReflectionEnvironmentMinimumCount=10 ; 反射环境最小值
sg.EffectsQuality=2 ; 特效质量
sg.PostProcessQuality=0 ; 发布质量
VR 实例化立体渲染
实例化立体渲染(Instanced Stereo Rendering)可减轻UE4中VR的性能负担。它是一种优化技术,能让引擎更高效地为VR设备渲染具有立体感的画面。
在以往的VR渲染中,引擎渲染立体画面时,会先为左眼渲染所有内容,再渲染右眼画面。而在实例化立体渲染特性下,双眼的画面会同时进行渲染运算,这样能大幅降低CPU开销,并提高GPU利用率。
开启实例化立体渲染的设置路径为:编辑 -> 项目设置 -> Rendering -> VR -> Instanced Stereo。设置完成后,引擎会提示重新启动。
VR 后期处理设置
在关卡中添加一个后期处理PostProcess Volume体积域(快捷键F4),并将其设置应用为Unbound,使其覆盖整个关卡。同时,在PostProcess Volume设置里禁用Lens Flares(镜头光晕)。
一般情况下,无需逐个将所有属性设为0。可以先禁用开销较大的功能,如镜头光晕(Lens Flares)、屏幕空间反射(Screen Space reflections)、临时抗锯齿(Temporal AA)、屏幕空间环境遮挡(SSAO)、光晕(Bloom)等可能影响性能的功能。
VR 世界场景比例
VR场景中,物体和玩家摄像机之间的距离在0.75米到3.5米时,能带来最佳的VR体验。在UE4中,1虚幻单位(UU)的长度为1厘米(CM),具体换算关系如下: | 实际距离 | Unreal单位距离 (UU) | | ---- | ---- | | 1厘米 | 1 UU | | 1米 | 100 UU | | 1千米 | 100,000 UU |
在世界属性 -> VR -> World to Meters中设置为100。当“World To Meters = 10”时,世界场景显示较大;当“World To Meters = 1000”时,世界场景显示较小。
HMD 帧率
不同的HMD头显设备有不同的目标帧率: | HMD头显设备 | 目标帧率 | | ---- | ---- | | DK2 | 75 FPS | | RIFT CV1 | 90 FPS | | VIVE | 90 FPS |
VR 摄像机设置
在UE4中设置VR摄像机的方法取决于VR体验是坐立状态还是站立状态。
- 在坐立体验中,需要将摄像机原点升高到角色站立时的高度。
- 在站立体验中,必须将摄像机原点设为0。