跳到主要内容

虚幻引擎的10个VR技巧

谈到游戏和电影行业,技术似乎正在以令人兴奋的速度发展,创造了停滞不前的效果3D电影,真实的游戏体验和3D艺术。但现在热门话题是虚拟现实。

史诗游戏'摊牌演示几年前,它是一个受欢迎的VR展示,随着它的发布虚幻引擎4,Epic已经让整个项目可供任何人下载,解构和使用。

在Showdown中,观众被放入一个场景中,城市士兵以慢动作与一个巨大的持有火箭的机器人作战。凭借360度头部跟踪支持,可以在多个角度观看场景,以及推动Nvidia Maxwell级GPU的内容,Showdown专为Oculus Rift Crescent Bay头戴式显示器原型在第一个Oculus Connect上展示而设计。它旨在测试现代VR分辨率和帧速率的极限。

虽然我们专注于通过Showdown推动技术极限,但实际上我们受到创造性约束。我们有五个星期的时间进行演示,内容团队为两人,并从其他几个人那里借来时间,所以我们调整了之前两个演示的内容:Samaritan和Infiltrator。由于动画很少,我们延长了7秒的实际内容以填充两分钟的演示时间 - 因此实际限制带来了快乐的发现:通过减慢你周围的动作,我们能够突出场景的细节。

以下是用于最大化Showdown性能的十大优化技术。这些技术中的每一种都可以应用于基于虚幻引擎4的VR项目,以实现最佳性能。 Showdown支持DK2及以上版本,因此如果您有权访问开发工具包,请从Epic Games启动器下载并开始使用。

01.让你的内容像1999年一样

VR tips for Unreal Engine: make your content like it’s 1999

帧率在VR中很重要,因此请尽量简单

当您开始为VR项目开发内容时,您可能会对顶点数,纹理大小和材质感到自由,以便尽可能地产生最具沉浸感的体验。抵制这种冲动,而是退后一步。首先,制定一个计划,允许您最大限度地利用和重用项目中的每个资产。

回归旧学校的艺术技术,如纹理图谱,或使用静态网格来模拟昂贵的实时反射,是确保VR项目尽可能快地运行的关键,为用户提供最佳的VR体验。

02.如果你绘制它,它将被渲染

VR tips for Unreal Engine: If you draw it, it will be rendered

使用Stat Scenerendering跟踪您的绘制调用

为项目中的静态网格物体可以使用多少材质设置硬规则是在项目早期获得性能处理的好方法。这是因为对于每个材质都应用了静态网格物体,渲染引擎必须再次渲染该对象。

为确保场景不会变得太重而无法绘制,请使用Stat Scenerendering命令查看当前正在使用的绘制调用数。摊牌仅限于每帧1000个绘制调用,但请记住,每个对象有两个绘制调用,因为我们是立体声!这意味着在monoscopic中,我们每帧只有500个绘图调用。

此外,值得注意的是,当实例化立体声卷入虚幻引擎4的主要开发分支时,这将不再是一个问题。

03.激活着色器复杂性

VR tips for Unreal Engine: Much shader, such complexity

着色器复杂度模式可快速识别渲染瓶颈

当确定哪些材料比其他材料花费更多时,解决并且难以跟踪可能是耗时的。幸运的是,UE4提供了一种称为Shader Complexity的特殊视图模式,可用于确定哪些材料的成本高于其他材料。使用快捷键[Alt] + [8]激活着色器复杂度时,场景将以不同的绿色,红色和白色阴影表示。

这些不同的颜色阴影表示像素的渲染成本。亮绿色表示像素便宜,而红色表示白色表示要渲染的成本越来越高的像素。当项目的未烹饪版本在编辑器中运行时,或者在独立窗口中,您也可以通过按[F5]激活着色器复杂度。

04.表演剖析跳舞

VR tips for Unreal Engine: Doing the Performance Profiling Dance

继续进行性能分析以确保性能不会标记

尽早剖析项目的表现通常是确保艺术家和设计师遵循声音内容创建规则的好方法。 GPU绑定项目意味着您尝试一次渲染太多对象以进行屏幕显示,而受CPU限制的项目意味着您尝试执行太多复杂的计算,例如每帧的物理计算。

要确定您的项目是CPU还是GPU绑定,请使用Stat Unit命令并观察显示的数字。如果数字为黄色或红色,则表示您的项目将或者已经是GPU或CPU绑定。如果数字是绿色,那么你很高兴。 GPU绑定比CPU绑定更常见。

如果您确定自己受GPU限制,则可以使用UE4的本机分析器深入深入查看问题的根源。要激活分析器,请按[Ctrl] + [Shift] + [逗号]。 GPU剖析器打开后,您可以检查场景中哪些项目的成本最高,以便GPU渲染,然后删除或优化这些对象。在运行性能分析器之前,请确保已构建照明,以避免任何误报。

05.假装直到你成功

VR tips for Unreal Engine: Fake it until you make it

如果您可以免费伪造它,请不要使用要求严格的渲染技巧

找到重新创建昂贵的渲染选项(如动态阴影和光照)的巧妙方法,可以成为实现VR性能目标的巨大胜利。在Showdown中,我们发现使用每个帧投射动态阴影的字符太贵了,所以我们剪掉它。

虽然这最初导致角色看起来像是在移动时漂浮,但是我们通过引入虚假的斑点阴影来修复它,可以根据角色与物体的接近程度动态调整它们的位置和强度。这给人物在接近地面或其他物体时投下阴影的错觉。

06.光照贴图来救援!

VR tips for Unreal Engine: Lightmaps to the rescue!

用光照贴图去老派

将复杂的光照计算存储或烘焙到纹理中的想法在计算机图形世界中并不是什么新鲜事。这种照明方法(称为光照贴图)通过将这些结果存储到纹理中然后使用该纹理将结果映射到3D世界中的表面来计算复杂照明的外观。

Showdown大量使用了光照贴图有两个原因:首先,光照贴图为水平照明提供了有趣和动态的美感,其次 - 更重要的是 - 在运行时使用光照贴图非常便宜,为其他渲染密集型任务释放资源。

07.使用反射捕捉演员

VR tips for Unreal Engine: They did what with the reflection probes?

反射捕获演员在渲染成本的一小部分提供了很好的反射

反射在帮助3D渲染看起来更逼真方面起着关键作用。在Showdown中,反射被大量用于给世界带来更复杂的外观并让它感觉更加扎根。然而,该演示使用一种有趣的方式来捕获和显示这些既便宜又易于管理的反射:反射捕获演员遍布整个关卡。

这些演员通过将关卡的一部分录制到静态立方体贴图来工作,然后可以通过材料对其进行采样以用于其反射部分。您在Showdown中看到的所有反射都来自放置在关卡中的六个反射探测器。

08.不要依赖VFX技巧

VR tips for Unreal Engine: The power of the VFX

并非所有旧的VFX技巧都能很好地传输到VR环境

视觉效果在帮助用户完全沉浸在VR中起着巨大的作用。然而,某些旧学校的技巧曾使VFX实时渲染成本更低,在VR中表现不佳。例如,使用flipbook纹理进行烟雾会使烟雾看起来像VR中的平板,破坏了效果的可信度。

为了解决这个问题,Showdown主要使用简单的静态网格物体来代替VFX等技术来代替翻书纹理。以这种方式使用静态网格物质的另一个好处是它打开了在相机附近部署近场效果的大门,这进一步吸引用户体验。

09.调整屏幕百分比

VR tips for Unreal Engine: The screen resolution trick

在帧率和视觉质量之间取得适当的平衡

调整VR项目的屏幕百分比有助于使视频保真度更快地运行。这是因为屏幕百分比控制HMD上显示的最终渲染目标的大小。您项目的屏幕百分比可以缩小到正常大小的30%,或者扩大到正常大小的300%。

要测试游戏中不同屏幕百分比大小的外观,请使用虚幻控制台命令HMD SP [插入编号]。找到适合项目的设置后,可以通过添加r.ScreenPercentage = [插入编号]将其放入DefaultEngine.INI。尝试使用此功能时,请从小处开始小心上升。

10.考虑半透明

VR tips for Unreal Engine: To abuse or not to abuse translucency

如果您可以使用解决方法而不是透明度,那就去做吧

由于该功能每帧的高渲染成本,Showdown使用非常少的半透明度。作为替代方案,我们选择使用一种方法来利用时间抗锯齿的属性,而无需相关的成本。要实现此功能并使对象显示为半透明,您可以在项目的材质中使用不透明蒙版以及Dither Temporal AA材质功能。

虽然它并不总是替代半透明,但它可以替代需要半透明渐变近似的场景。要使用此功能,请确保在进入不透明材质输入之前输入到Dither Temporal AA材质函数中的半透明效果。

阅读更多:

话题

3D
VR
3D


翻译字数超限