MobileMobile | Continue
       
Nibiru VR Development Unity/Unreal SDK Unreal Engine 4上入门VR游戏的指导

Unreal Engine 4上入门VR游戏的指导

Irving Post time 2016-6-3 20:43 | Show all posts |!read_mode! [Copy URL]
0 946
本帖最后由 Irving 于 2016-6-14 13:16 编辑

  首先,不要被标题吓到,这其实是一篇面向游戏开发者的入门科普文章,对于有致于开发VR游戏的初学者来说,这是一篇不错的UE 4入门体验的文章。用最快的速度了解UE4 引擎在VR游戏中可以实现什么效果和一些基本的性能调试方法。

QQ截图20160614131120.png

   如今,人们对于VR的讨论越来越多,但是,每天却有越来越多人参与到VR的发展中来。这一指南适用于那些专为Unreal Engine 4开发VR的人使用,并且可以提供各种不同的资料,包括Epic Games的官方文档,以及涵盖了蓝图和C++的内容。请注意,VR仍然是全新的课题,每个新版本都会扩充VR的内容。所以,如果有可能,我们强力推荐使用最新版本。官方Oculus论坛、官方VR文档页面和Unreal Engine。

QQ截图20160614131240.png

   设置你的VR设备,根据该指南,我会假设你已经成功安装了头戴式可选择的显示器。本文是以HTC VIVE作为例子,Oculus其实也是一样的。Unreal Engine 4支持各种主流设备,所以你没必要多此一举,设置你的VR项目。你只需在Edit > Plugins下,确保你的头戴显示器插件是否加载成功。

QQ截图20160614131414.png


  在启动编辑器之前,确保你的VR软件是否运行,如果是Vive,将会是SteamVR应用。Vive具体情况:一旦你启动编辑器,SteamVR或许会显示“Not Ready”,这表示有设备冲突的情况,有东西阻碍编辑器分辨率达到60FPS,导致了抖动和晕车。下一次在使用Vive时不会出现这样情况了,因为他们成为显示屏的直接模块。


  启动VR预览版,测试你的VR设置非常简单,只需在播放下拉按钮,选择“VR预览”。默认情况下,头部跟踪会立即生效,而无需改变现有项目或模板。我将讲诉更多如何添加额外功能的细节,如运动控制器设置和重置来源。该指南后面都有讲诉。


  在Blueprint上使用VR是非常简单,你不需要太多设置,然后才开始工作。你将需要一个摄像头组件和可选的一个或两个运动控制器组件。默认情况下,你的相机已经设置为HMD支持,如果您希望禁用的HMD旋转的变化,你可以组件的属性中选择“Lock to HMD”。想要得到更多关于运动控制器的信息,下面是蓝图可用的节点。


重置你头盔的位置或方向


选择合适的功能,能检测你头盔是否能工作


  SteamVR Chaperone组件是SteamVR专属,可以方便连接软边界。软边界呈现为以HMD为原点(0,0,0)的向量阵列。所述载体的Z分量始终为零。你可以从下列看到,你添加这些组件,就像添加ActorComponent到Blueprint一样。


设置运动控制器

  


  在C++上使用VR,由于4.11并不是所有的功能都适用于Blueprint,如果你正在努力实现高级定制,那么你需要深入了解C++,来进行一些设置。检查头戴式显示器是否可用。添加某些像SteamVRChaperone 的组件,但需要具体到某一设备。

  必选模块和内容,如果你想通过C++接入头戴式显示器,那么你需要在ProjectName.Build.cs 文件内装入“HeadMountedDisplay”模块,在里面你可以找到Visual Studio解决方法。


  如果需要使用HMD额外的功能,或者动作控制组建,请确保加入一下头文件。


  性能注意事项,为了让你体验舒适VR,你的游戏需要在75赫兹(Oculus DK2)或甚至90赫兹运行。这都(HTC VIVE和Oculus CV1)取决您的设备。要在运行游戏的时候可以在控制台的“STAT FPS”或“统计单位”(更详细的分解)去了解您当前的帧速率类型。

  CPU性能分析,你的游戏可能会收到CPU或GPU的约束,找出你需要测量的东西(一种快速的方法是使用“统计单位”)。由于gen游戏以及引擎的复杂性,几乎不可能去很好预测你CPU性能瓶颈,所以选择合适的工具把。

  GPU性能分析,为了捕捉GPU时序的单个帧,可以按Ctrl+ Shift +,或在控制台输入“profilegpu”。该命令可以准确测量GPU时序,在使用VR时,你会发现某些处理过程对帧速率压力很大。


  虽然分析你可能会栽倒在取决于你的场景和项目等昂贵的特征上面。比如Translucent Lighting Volume,你虽然不需要,但是在你场景上加了一个固态成本,你所做的就是测量和检测,没有一个配置适合所有项目。准备禁用 HZB Occlusion Culling(r.HZBOcclusion 0)、Motion Blur (r.DefaultFeature.MotionBlur=False)以及Lens Flares (r.DefaultFeature.LensFlare=False)。该命令不通过多会话仍然存在,所以你应该增加(或搜索和替换),它们在你的/Config/DefaultEngine.ini配置文件,虽然大多数这些设置都可以通过编辑>项目设置...>渲染来完成。另一个优化就是去考虑实例化的立体渲染。我们在下面会提到。

  实例化的立体渲染,最新发布的4.11介绍了实例化的立体渲染,浏览下面视频,比较其如何工作。


  要启用此功能在4.11以上版本,会进入项目设置功能以及寻找“渲染类别”下的渲染实体化。禁止需要大量计算的“后处理器”。某些后期处理的VR效果计算成本很高。要在项目层面禁用某些后期处理功能,可以按照编辑>项目设置>渲染。你可以在后处理卷中做同样的事情。请记住,后处理量可以覆盖以下指定的项目范围的设置。


  减少场景的复杂性,如果目前硬件无法让你达到FPS90的目标,您可能需要重新检查以前的设置限制,并查看在像动态阴影,大气烟雾效果和网格polycount场景的复杂性。重要的是要尽量减少透支,以维持性能最大。许多半透明表面和/或粒子效果很容易使你的帧速率出故障。为了形象化当前着色器复杂度/透支可以按Alt+8的视口(按Alt+4,返回到默认视图)。从Elemental Demo底部图片可以了解大气对你帧率影响多少(绿色=好,红=坏,白热化=极坏像素约2000着色器指令)。动态阴影和灯光对性能有很大的影响了。用可能多的光线Bake,你可以可能降低每帧的成本。


  希望这有助于你开始在Unreal Engine 4项目使用VR吧。


Reply

Use magic Report

You have to log in before you can reply Login | Register

Points Rules

!fastreply! Top !return_list!