基于UE4的VR项目基础环境配置和Motion Controller控制配置

2016年09月23日 11:52 0 点赞 0 评论 更新于 2020-01-11 21:58
基于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。

作者信息

孟子菇凉

孟子菇凉

共发布了 1189 篇文章