Botanical Dimensions:借助第九代智能英特尔® 酷睿™ 处理器实现独特沉浸式体验

Botanical Dimensions

越来越多的客户开始使用第九代智能英特尔® 酷睿™ 台式机处理器,他们以创新的方式充分发掘出该处理器的卓越潜能。客户运用该处理器不断增强的处理能力支持音频和视频处理工作,打破了多个领域的界限。

2018 年,位于洛杉矶 (LA) 的互动体验设计工作室 Master of Shapes (MOS) 开始使用全新智能英特尔® 酷睿™ i9+ 处理器。他们的挑战是:在一台电脑上创建令人惊叹的沉浸式虚拟现实 (VR) 演示,借此表明前沿项目不需要使用多台电脑,也能实现惊人的壮举。

MOS 自诩“太空冲浪、几何驯服、野牛狂奔,未来之家”,以借助互动装置带领人们穿越现实时空而闻名。一个多月以来,MOS 团队对体验进行了概念化验证、设计和编程,同时他们在 Canopy LA 的朋友负责处理沉浸式 360 音频。后来,在短短的四天时间里,团队将一座空仓库变成了世外丛林。

本文将介绍 MOS 团队打造 Botanical Dimensions 时所做出的技术努力。在这种互动式多世界体验中,参与者将穿越丛林,寻找通往另一时空的隐藏之门。用户通过控制器控制穿越多个世界的飞行模式,并在 360 空间音频的伴随下遇到各种生动鲜活、此起彼伏的外星植物。

前期准备

我们的目标是将真实空间音频与高级 CPU 的功能相结合,创建复杂程度前所未有的音频和视觉效果。它需要将大型仓库空间变成稳定的录音环境。

创建过程包含三个主要步骤:

  1. 制造用作路径的 15 英寸六角形状 LED 以及一块背投幕布。
  2. 创建丛林。
  3. 使用 Unreal Engine* 4 (UE4) 和其他工具为体验和音频编程。

视觉预览

首先,我们设计了六边形框架和投影幕布。六边形依次排列,形成透视和分层路径。

The hexagons cascade to create the perspective
图 1.用于形成透视依次排列的六边形框架。

六边形框架带有钢制底座和铝制 U 型通管,内衬 RGB LED 灯条。

Each hexagon is slightly smaller than the last
图 2.每个六边形都比前一个小。

空间

我们希望场地空间足够大,这样我们在发布最终作品之前,便于用户沿着小路向前走。幸运的是,我们在 LA 市中心找到了一间仓库 Electric Pony Studios,这间仓库长 100 英尺,宽 35 英尺。

Electric Pony Studios warehouse
图 3.准备用于填充丛林景观的 Electric Pony Studios 仓库。

投影幕布

制作六边形框架后,我们在最后一个框架上展开了一块投影幕布。这样我们就能够将前往虚拟世界的通道背投到六边形框架上。之后将前面的框架摆在相应的位置。

Stretching projection screen fabric over the final hexagon frame
图 4.在最后一个六边形框架上展开投影幕布。

控制 LED

如果要控制 LED,我们必须将数据发送至六边形框架上内衬灯条的每个 RGB 像素。根据用户输入,PixLite* 16 控制器通过 UE4 触发时刻。

创建最终布景

组装六边形框架后,我们在门户底部的周围建造了一个湖,并摆放了许多植物,用来模拟丛林,并悬挂了扬声器,以打造 Dolby Atmos* 音效。我们甚至还铺设了真正的地表覆盖物,以创造出用户沿着丛林小路走向主体验屏幕时真实的走路感觉。

The jungle scene takes shape
图 5.用植物、六边形框架和扬声器打造的丛林场景。

创建游戏素材

我们希望在游戏引擎中灵活地创建 VR 地形。Houdini Engine*插件(见下文)与 UE4 的内置工具相结合,使我们能够快速开始编程。

我们希望植物呈现出独特外观,因此使用了视觉上“异常”的动画材料。还在此处添加了辅助动画效果(对他人移动作出反应的动作)。

Jungle view from inside the game engine
图 6.从游戏引擎内部看到的丛林视图。

动画的创建借助了以下三个主要元素:

  1. Houdini Engine
  2. 动画材料
  3. 使用着色器定位动画

下面我们介绍其中一个元素。

设置 Houdini Engine

安装 UE4 后,下载免费的 Houdini Engine 插件。这样您可以在 Houdini 中创建工具,并在运行时之前将参数呈现给 UE4,有利于快速创建可在 UE4 中更改的素材。更多信息请参阅入门教程

UE4 中进行的更改由“厨师”开发,“厨师”负责烘焙 Houdini 中的新网格层。最后,Houdini 向 Unreal 发送最新静态网格。第九代智能英特尔酷睿台式机处理器以近实时的方式完成了这一流程,非常方便。您将可以充分发挥 Houdini Engine 的强大功能、UE4 的易用性和处理器的处理能力,轻松突破系统极限。

创建地形

样条是通过轨迹点的平滑曲线。我们希望打造一条样条路径,用户可以沿着这条路径飞行,同时保持自由移动。理想情况下,地形应沿着样条上的点延伸并适应这些点。为此,我们在 Houdini 中创建了一个工具,并将其呈现给 UE4。(关于创建地形的演示,请观看本视频。)

动画流体

Houdini Engine 通常用于流体模拟,但对于游戏引擎来说,计算任务非常繁重。我们在 Houdini Engine 中创建了流体模拟,然后将其烘焙成顶点动画,它可以帮助您将位置导出到纹理中。这样实现了可在 UE4 中高效运行的模拟。

请观看关于顶点动画的教程,并查看流体设置步骤,或关于浮岛的解释

动画材料

除了动画流体外,我们还想为场景中的部分对象添加一种“异常”的艺术元素。为此,我们在 UE4 中创建了通过平移器驱动的动画材料,或为纹理提供动画外观的节点。设置示例如下:

Jungle view from inside the game engine
图 7.动画平移器设置以及逻辑流程。

我们希望世界中的植物和其他对象随意起伏和摆动。传统的方法是通过时间轴或关键帧动画为“tick”上或每次帧渲染的位置创造动画效果。而我们使用材料(用于对象)的世界位置偏移参数创建动画,结果更加实用。

以下是用于创建起伏动画的设置:

Jungle view from inside the game engine
图 8.动画创建流程图。

我们使用时间功能设置材料的动画效果,由于它与自“tick”或每次帧渲染后的游戏时间相关。

我们通过正弦函数驱动程序化动画,这样我们通过调整比例强度,可以将起伏值从 -1 设置为任何数字。这个数乘以 UE4 的 Vertex Normal World Space,就可以有效地沿着这一法线缩放整个对象。这样就产生了起伏摆动的效果,场景中的对象就能产生一种生动鲜活、远近变化的效果。

我们还用类似的方法设置对象旋转的动画效果:

Jungle view from inside the game engine
图 9.打造对象旋转动画效果的流程图。

以下是我们打造位置动画效果的方式:

Jungle view from inside the game engine
图 10.打造对象位置动画效果的流程图。

设置控制器

Botanical Dimensions 让我们有机会体验自然世界的分形复杂性。为了添加互动元素,我们配备了 3D 打印的Mandelbulb 控制器(以“分形几何学之父”命名),并在控制器上安装了 HTC Vive* 跟踪器。

3D-printed Mandelbulb controller and Immersive installation artist Jonathan Fletcher Moore
图 11.(左)3D 打印的 Mandelbulb 控制器。(右)沉浸式装置艺术家 Jonathan Fletcher Moore 手持装饰过的控制器,上面配备了 HTC Vive 控制器。

控制器的位置和方位数据输入至 Unreal Engine,从而影响空间音频以及您飞越虚拟世界的方式。

在 Unreal Engine 中,我们在程序内部添加各种数据,包括控制器的旋转值和相对位置数据,以驱动用户的移动。这样有利于用户控制自己从样条定义的路径偏移或旋转的程度。

为支持这种自由移动,我们在 UE4 中编写了过程样条系统。通过使用 Houdini Engine,我们能够左右地形的变换,并引导用户的飞行路径。

UE4 enables nonlinear travel for the user
图 12.UE4 支持用户非直线行进。

我们创建过程样条系统时采取了以下步骤:

  • 绘制样条元素。
  • 在 Event Begin Play 上,为所有 actor 添加“spline”标记。
  • 创建一个存储样条 actor 引用的变量,以将引用设为样条。

我们将 UE4 的速度从厘米/秒转化为英里/小时,以便为我们想要创建的世界大小提供更好的参考。我们将该计算添加到名为“Distance Along Spline”的浮动变量中。这样可以让 pawn 知道要走多快,并告诉我们沿样条走了多远。

接下来,我们使用“Distance Along Spline”的“Get Location”并将 actor 的转换设为该位置。我们使用“Get Rotation Along Distance Along Spline”,然后是“rInterp To”(旋转表示),并将该旋转设为 actor 转换。

Logic path for moving and rotating
图 13.移动和旋转的逻辑路径。

事件触发器系统

在 Botanical Dimensions 中触发了音效、LED 效果、“高速”风扇和视觉效果。为了干净利落地处理所有这些触发器,我们使用 enums(枚举类型)设计了一个事件系统。以下是 Crunchify.com 提供的建议:

“Enums 是常量列表。如果需要一组不表示某种数字或文本数据的预定义值,应使用 enum。当变量(尤其是方法参数)只能从一组数值中提取一个时,应使用 enum。”

Enums helped handle all the different events
图 14.Enums 帮助处理体验过程中触发的所有事件。

事件取决于整个层面的碰撞体积。碰撞体积重叠会引出一个事件。例如,当用户在瀑布附近飞行时,将触发特定的声音和 LED 动画。

我们的事件触发器由自定义 actor 蓝图来处理,我们称之为 TriggerBP。我们为场景中的每个实例添加标记,以此标记每一种触发器。例如,如果是用户碰到树时我们想调用的事件,我们就可以标记触发器“tree”。

在该蓝图中,我们处理碰撞事件的所有逻辑。确定碰撞类型的步骤如下:

  • 在 Event Begin Play 上,我们“Get All Actors of Class ‘TriggerBP’”
  • 将这些对象的引用存储在变量中。
  • 在 Event Actor Begin Overlap(actor 与碰撞体积重叠时调用的事件)上查看该碰撞的标记名称。
  • 将该标记名称与固定的标记集 Enum 进行对比。
  • 使用 enum 模式上的开关,触发与碰撞体积标记名称相对应的事件。

自定义事件由特定触发器生成。例如,用户速度的变化取决于他们在世界中所处的区域;在沼泽丛林中速度减慢,在沙漠上空飞行时速度加快。

Logic flow for triggering
图 15:触发的逻辑流程。

UE4 的通信

UE4 是我们的主要工具。不过我们还在其他程序中创建了触发器。为了实现 UE4 与这些程序之间的通信,我们使用了一个插件

为了发送插槽连接信息,我们需要将“Event Begin Play”上的插槽绑定至相应的端口。这样就可以通过 TCP 与其他程序之间进行通信。

Logic flow for triggering
图 16.将插槽绑定至相应的端口。

我们用一个简单的协议来管理以下格式的消息:“name”|“value”。例如,我们使用 “led”|value 将控制发送至 LED。

接收程序是 TouchDesigner*。我们在 TouchDesigner 中读取 TCP 消息,然后发送 OSC 消息以控制 LED。(OSC 是常用于照明和音频程序的消息传递协议。)

例如,触觉风扇会根据玩家在游戏中的行进速度加速或减速。消息在 TouchDesigner 中接收。DMX 调用被发送至控制风扇的 DMX 开关。(DMX 开关就像普通电源插板。在这种情况下,只有发送正确的 DMX 值,才能提供电源,支持您通过电脑控制风扇灯模拟信号。)

Fan and LED control from TouchDesigner to a DMX switch
图 17.从 TouchDesigner 到 DMX 开关的风扇和 LED 控制。

Wwise* 中间件增强互动体验

Audiokinetic* 的 Wwise* 是我们增强互动体验的首先中间件工具,因为它提供可扩展、高效的多线程音频编辑和处理功能。它提供灵活的空间音频支持,高达三阶环境立体声总线(见下文)以及 7.2.4 Dolby Atmos。

我们将 Wwise 集成至 Botanical Dimensions,以帮助创建沉浸直观的体验、探索软件的丰富功能,并测试英特尔酷睿处理器的性能极限。

为何使用 Dolby Atmos?

我们的 Atmos 设置已经格式化,可以打造完全沉浸式音效。我们希望用户感觉就像真正地身处丛林之中,因此我们设置了 7.2.4 扬声器阵列。用户周围环绕着 7 个扬声器,顶部还设置了 2 个低音炮和 4 个扬声器,以进一步增强环境音效。关于详细信息,请参阅 Dolby 7.1.4 扬声器配置指南。

设置 Wwise

  1. 创建 Unreal C++ 项目。(如果您已经有一个蓝图项目,请创建一个 “Dummy” C++ 类。这样可以将您的项目转换为兼容解决方案。)
  2. 下载兼容 UE4 的最新版 Wwise。
  3. 通过 Wwise 启动程序,确保已安装相应的 Microsoft* Spatial Sound Platform 插件。
  4. 在 Wwise 启动程序中,导航至“Unreal”选项卡。找到您的 UE4 项目。点击“Integrate Wwise into Project”按钮。按照步骤完成集成。
  5. Wwise 集成到 C++ UE4 项目中后,执行以下三项修改:
    • 将“AkAudio”放在 YourProject.Build.cs 文件的公共相关项中。(位置:…\Unreal Projects\testProject\Source\testProject)

      immersive-experience AkAudio location

    • 注册 AkAudioDevice.cpp 文件中 Microsoft Spatial Sound Platform 的头文件。(位置:…\Unreal Projects\testProject\Plugins\Wwise\Source\AkAudio\Private)

      immersive-experience AkAudioDevice.cpp

    • 注册 AkAudio.Build.cs 文件中 Microsoft Spatial Sound Platform 的 .lib 文件。(位置:...\Unreal Projects\testProject\Plugins\Wwise\Source\AkAudio)

      immersive-experience AkAudio.Build.cs

  6. 修正错误。此时,Wwise 与 Unreal Engine 4.20.1 集成会造成访问 Microsoft DirectX* 库时出现一个新错误。替换 AkAudio.Build.cs 文件中的一行代码,就可以解决这一问题:

    immersive-experience AkAudio.Build.cs

    初始代码:

    PublicLibraryPaths.Add("$(DXSDK_DIR)" + Path.DirectorySeparatorChar + "Lib" + Path.DirectorySeparatorChar + LibFolder);

    替换为:

    string DXSDK_DIR = Path.GetFullPath(Path.Combine(EngineDirectory, "Source/ThirdParty/Windows/DirectX"));
    
    PublicLibraryPaths.Add(DXSDK_DIR + Path.DirectorySeparatorChar + "Lib" + Path.DirectorySeparatorChar + LibFolder);
  7. 在 visual studio 中单击“Build your solution”并打开项目。在 Wwise Project 中导航至 Actor Mixer Hierarchy 并选择 Master Audio Bus。将 Microsoft Spatial Sound Platform Output 指定为音频设备。
  8. 务必正确设置系统输出。Botanical Dimensions 将 HDMI 转换为 Denon* AVR-X8500H 接收器。
  9. 通过右击工具栏中的扬声器图标,确认电脑可以识别 Dolby Atmos。

现在应正确设置 Wwise。

Botanical Dimensions 中的互动

在前期制作过程中,我们努力寻找一种直观生动的方法来驱动互动系统。经过多次迭代,我们设计了 3D 打印的分形控制器,并在上面安装了一个 HTC Live 跟踪器。我们可以在 VR 体验中获取控制器的位置和方向,并使用该数据驱动声音的过滤、平移和调制。

在 Wwise 中,实时参数控制器 (RTPC) 用作可以从游戏引擎中指向的浮动变量。当游戏元素的值发生变化时,它们会传达这种变化。反过来,如果 Wwise 中的内置系统需要将这些值传达给游戏引擎以驱动音频反映系统,它也支持这种操作。这就是我们传达控制器位置和方向的方式。

Wwise Property Editor helps control how value changes are mapped
图 18.Wwise Property Editor 帮助控制将数值变化映射到音频反映系统的方式。

这是我们简化后的系统,用于确保音频符合 UE4 的标准滚动值。玩家左右翻转控制器时,音效增强,而且在空间上的位置与控制器的倾斜相对应。

我们以相同的方式处理控制器偏航(绕垂直轴旋转)。声音与调制(我们稍后予以介绍)不同,但其交互类型相同。我们的目的是即刻显现玩家对游戏施加的影响。

将某人带入到一种体验当中,需要的不仅仅是统一的视觉美感。声音非常关键,因为它填补了屏幕和用户之间的空白,并为周围环境的性质和属性提供线索。如果能给客户提供一种深刻而精确的音频体验,他们就能轻松沉浸在 VR 之中。Dolby Atmos、环绕声和混响 – 下文予以介绍 – 帮助我们做到了这点。

Dolby Atmos

Dolby Atmos 主要用于剧场环境中的线性媒体,但事实证明这种音效完全适合这一项目。和电影一样,Botanical Dimensions 也有后场和前场,前场有一个显示屏。7.2.4 扬声器阵列支持我们创造 3D 声场。对象和环境氛围都得益于本地化的增强。

The Microsoft Spatial Sound Platform 插件可以从 Wwise 输出 Dolby Atmos 信号。小型音频团队可能无法接触到熟悉如何变成自定义混音器和同步插件的程序员,因此这对他们来说非常实用。尽管可以在 Wwise 中编写多声道输出插件,但构建这样的工具更加方便。

利用我们的 Dolby Atmos 阵列

下图是电磁音频层的一条 3D 定位自动化路径。它表示在 Wwise 中创建的声音对象的物理路径。网格的中心是玩家的位置。在此示例中,我们为这一层设计了多条行进路径。

Utilizing the Dolby Atmos array
图 19.利用 Dolby Atmos 阵列。

这种类型的定位不同于您处理(如鸟儿飞行)相关声音的方式。这种方法支持预先确定路径。事实证明,这对我们打造多层次的复杂创意氛围至关重要。

 我们使用这种方法处理地图中的静态对象,因为它可以防止合理空间化

声音混合期间的注意事项

我们的增强型 3D 声场需要精确的设计和混合。它涉及复杂的总线配置(确定如何将音频路由到目的地)和细致的混响设计。

Master-mixer hierarchy for bus configuration
图 20.总线配置的主混合器层次结构。

上图显示了我们的总线配置。它并不复杂,但可以确保我们访问特定的信号组。这意味着混合决策不会影响我们微调过的声音。

Microsoft Spatial Sound Platform 插件驻留在我们的主音频总线 (Master Audio Bus) 中,支持 Wwise 输出 7.2.4 信号。7.2.4 声道配置中包含输出至该总线的一切。

我们的做法与环境立体声 (ambisonic) 总线不同。

环境立体声方法用于录制、混合、回放 3D 360 音频。它发明于 20 世纪 70 年代,后来被 VR 行业采用,它需要采用 360 音频解决方案。

环境立体声将音频场景视作一个从中心点向不同方向发出声音的 360 度声音球体。中心点就是录音时放置麦克风的位置,或者听回放时听众的“最佳位置。”

最常见的环境立体声格式是一阶环境立体声,广泛应用于 VR 和 360 视频。它使用四个声道来创建完整的声场。但我们使用二阶双声道麦克风来录制音效。这样我们创建了一个 9 声道球体,极为准确地体现真实世界 360 音频。

我们将总线设为二阶环境立体声配置下的输出。这样我们可以很轻松地使用部分环境立体声录音。

Ambisonic Audio Bus Property Editor screen
图 21.Ambisonic Audio Bus Property Editor 截图。

为了捕获并完善令人信服的环境,需要密切注意本地化和混响。我们的最佳本地化包含环境立体声、立体声和单声道录音。我们以环境立体声录音为温床,叠加单声道和立体声源。这样我们打造了一个生机勃勃、细节丰富的音效组合,陪伴着用户前往体验中心。

当用户被允许远离主程序轨道自由探索体验时,音频团队经常会遇到问题。这是因为环境立体声是在空间中的某一个点捕捉。但环境立体声音阶越高,捕捉点越广。这就是我们使用二阶环境立体声麦克风的原因。

我们将环境立体声录音混合在一起,比预期的要低。这是因为将录音放回到混音中意味着这些录音要作为声源和混响之间的桥梁。实际上,环境立体声更像是混响(而非点源)的温床。

通过使用搭载高级 CPU 的系统,我们可以执行计算任务更繁重的流程,比如卷积混响。它利用脉冲响应(输入产生的输出)捕捉某一区域的声音。

Wwise Convolution Reverb (Custom) Effect Editor screen
图 22.Wwise Convolution Reverb (Custom) Effect Editor 截图。

卷积混响产生的效果精确、细腻、灵活。为了获得这种高质量、基于时间的音效,需要付出相对较大的 CPU 开销。然而,得益于英特尔® 酷睿™ i9+ 处理器的强大能力和 Wwise 的多线程功能,计算方面没有任何问题,而且调试之后也不需要优化。

实时调制

项目发布之前,Botanical Dimensions 的规模不断扩大。截止日期日益临近,但项目的大部分都处于不稳定状态,这种情况在音频领域很常见。Wwise 可帮助您快速构建复杂的音频系统,这是我们在项目中使用它的主要原因。得益于强大的系统,我们在发布前一周扩大了体验规模。

大部分早期测试与组合在一个 12 平方英尺的房间里完成的。双低音炮设置非常适合这种规模,但 Botanical Dimensions 是在超过 6,000 平方英尺的仓库中创建的。我们借用了更强大的超低音扬声器,但发现许多源材料没有了在空间中击中低音炮并产生共振所需的子频率。

为了调整设置以适应这个巨大的空间,我们必须快速更换和补充低端产品。为此,我们使用了信号发射器,结合包络线(表示声波随时间变化的水平),以及 Wwise 中内置的低频振荡 (LFO)。

Modulators helped us scale up
图 23.调制器帮助我们从小空间扩展到大仓库。

上图 23 左侧列出的是与信号和正弦发生器结合使用的调制器。借助这些工具,我们能够在体验的关键时刻精确地命中频率。重新开发示例和达到极致性能的时间节省了数小时,并将另一层动力学引入到体验之中。例如,我们搬到更大的场地后,由于仓库中的反射不同,飞行速度系统的音效不如预期。随着速度逐渐增加,LFO 为狂风席卷提供了一种更加自然的感觉。

语音使用和优化

强大的 CPU 让我们不必担心优化问题。唯一适用的是音频转换和语音使用(分别用于 RAM 优化)。我们通过转换保持高音质,但试图略微缩小文件大小。

为了优化语音使用,我们使用了 CPU,而不是 RAM,用碰撞球触发大多数声音的开始和结束。这样简化了混合过程,特别是衰减曲线。在 UE4 中,我们使用碰撞球确定想听到声音的区域。区域的大小决定了 Wwise 中的衰减半径。由于实施速度很快,因此系统运行状态非常好,为此我们感到很高兴。

Attenuation Editor
图 24.Attenuation Editor。

未来行动

如果您领导开发这样的大项目,可以尝试突破硬件的极限。当然,如果您计划向公众发布项目,必须考虑周到,以满足各种配置要求。对于规模类似于 Botanical Dimensions、公众不是最终用户的项目,此处最适合了解如何在 Wwise 中进行高级流管理。

Dolby Atmos 和英特尔携手打造沉浸式体验装置

Botanical Dimensions 结合使用了多项技术,支持系统中的各个组件相互通信。以前,我们需要使用多台电脑完成各项职责。事情变得非常复杂,而且增加了硬件成本和麻烦。英特尔® 酷睿™ i9+ 处理器的多核功能使我们能够在一台机器上完成所有任务,这大大节省了时间,总体而言,整个开发过程更加轻松。

Inside Botanical Dimensions
图 25.Botanical Dimensions 内部。

运行多个程序

UE4 是我们的主控制器,通过 TCP 插槽将信息发送给 TouchDesigner 和 Wwise。Wwise 将音频信息发送给 Dolby Atmos 系统。TouchDesigner 处理 OSC 控制、DMX 控制和 LED。以下是我们的系统布局图。

Our system layout
图 26.系统布局。

最重要的是,其他进程的运行不会降低游戏线程的性能。除了多线程插槽通信系统外,我们还使用了 TouchDesigner 和 Wwise 的内置分析器优化性能。

UE4 的作用

UE4 的内置 CPU 分析器帮助我们识别导致问题的一切情况。我们的目标是最低每秒 60 帧 (fps)。得益于 NVIDIA GeForce* GTX 1080 Ti GPU 和英特尔® 酷睿™ i9+ 处理器,,我们实现了平均 75 fps 的帧速率。我们从未遇到过 CPU 性能限制问题。

UE4’s CPU profiler
图 27.UE4 的 CPU 分析器。

TouchDesigner 的作用

我们通过批处理文件在自己的线程上运行 TouchDesigner,以便‘show control’命令不影响游戏播放质量。通过使用内置性能监控器,我们优化了 CPU 处理时间,并确保一切顺利运行。

Wwise 的作用

Wwise 是一款强大的音频功能,会占用大量 CPU 资源。特定的影响可能会造成巨大的损失。然而,即使输出多个音频通道,我们也依然保持了良好的性能。我们使用 Wwise 的内置分析器来检测性能瓶颈。

The Wwise profiler helps conserve CPU resources
图 28.Wwise 分析器帮助节省 CPU 资源。

遵循本指南也很有帮助。

为了更好的优化,我们建议通过覆写低流和高流管理器级别设置,强制特定的任务在不同的线程上执行。了解更多信息

这些技巧可以让我们更好地控制多线程,也让我们突破了英特尔® 酷睿™ i9-7900X 处理器(10 核,运行频率 3.3 GHz)的性能极限。

即使一切都在运行,我们也有峰值,但 CPU 利用率平均在 40% - 60% 左右。

The Wwise profiler helps conserve CPU resources
图 29.显示极端峰值的 CPU 利用率图。

结论

我们简要介绍了以前需要耗费数小时处理时间的苛刻场景。英特尔® 酷睿™ i9+ 处理器可以快速、高效地处理我们下达的所有任务。我们期待开发出新的系统测试方法,因为我们将继续构建令人惊叹的沉浸式环境。

关于作者

Adam Amaral 是 Master of Shapes 的创始人、CEO 和创意技术专家。他不断努力走出舒适区,创造的作品获奖无数,同时也积累了广泛的专业知识。如果 Adam 没有驯服野牛,或开发机器人,他会忙着为 Miley Cyrus 设计巡回演唱会、或制作备受赞誉的商业内容和互动装置。最近,他一直在打造创新的 VR/AR 体验,并使用新技术,尝试进入外太空。

声明

文档不代表英特尔公司或其它机构向任何人明确或隐含地授予任何知识产权。

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.