[Unreal] 虚拟现实理论与最佳实践

优秀的虚拟现实场景所需要具备的特点:

  真实感、沉浸感、舒适性、流畅性。

  VR的这些特点上有其它媒体所不具备的优势,主要通过硬件来实现。

 

VR 的沉浸感让用户置身于周围世界,也引发了一些独特的症状:

  眼前庭紊乱,根源是内耳的感受与实际看到的产生了差异,是我们维持稳定的关键器官。

  此时流畅性就变的更加重要,不仅影响体验质量还会引发晕眩。

 

Unreal 开发VR的注意事项:

  交互应直观顺手,使用动作控制器完成时最为直观,因为能模拟用户双手。

  如果需要为场景添加交互,应该让它们与环境融为一体,而不是传统屏幕菜单或2D界面,使用真实操作,如电梯按钮或放置在场景中的全息3D界面。

  最后考虑在场景中添加环境空间音效,如卧室音乐、室外车流声音。

 

在 VR 体验中移动是个难题,用一些设备如跑步机能帮我们实现,大部分是手柄控制。

常见的运动控制方式是,凝视操控和运动操控。凝视操作通常搭配Google cardboard设备,操作按钮很少或没有,通过凝视来移动或交互。

运动控制器是当前最佳的 VR 交互和移动方案,就是模拟双手,检测握拳、手指指向等,就像游戏柄一样还拥有额外按键可供操作。

运动控制器还衍生出其它设备可绑在腿上或其它部位。

 

Unreal Studio 最佳实践:

VR 需要高帧率才能保证体验,通常要高于每秒 90帧 以上,项目分辨率是 2160x1200,通常适用于 Oculus Rift 或 HTC Vive. 

保证帧率,第一种方法是使用正向渲染,而非延迟渲染。

在为 Oculus RiftHTC Vive 桌面设备开发项目时,应该让可见模型面数总是小于200万面。

最高绘制调用次数 (CPU命令显卡绘制图像次数) 不应超过 1500次,最好低于 1000次。

场景中每个对象代表一次绘制调用,用这个对象数乘以它用到的材质数量,等于绘制调用数。

 

帧率比分辨率重要,没法保证帧率可以降低头显分辨率以便提升帧率,相对低帧率(引起晕眩),用户对低分辨率的适应力更好。

在 Unreal Studio 中,一种方法是调整控制台变量 r.screenpercentenge 从而降低头显分辨率。

 

正向渲染中,可以采用多重采样抗锯齿  为多线条和棱角场景带来抗锯齿效果,但不能使用很多高端特效 如屏幕空间特效 后期处理特效  透明效果。

所以需要牺牲特效以换取帧率提升。

帧率 90+ 是保证流畅性的基础数字,如果帧率很低和场景卡顿都会带来晕眩,所以要保证帧率维持在高水平。

 

永远不要取代用户控制摄像机,头戴显示器 用户应该永远掌控摄像机,这表示我们不应该抖动镜头。

同时避免突然的加速和视野改变,走动速度应低于正常移动速度,避免使用镜头特效(引起晕眩),这些通常是由人眼自身实现。

 

Refer:Unreal_Studio

Refer:unrealengine.com/zh-CN/onlinelearning-courses/world-building-kickstart

Link:https://www.cnblogs.com/farwish/p/15585822.html

posted on 2021-11-21 21:21  ercom  阅读(115)  评论(0编辑  收藏  举报