分享

游戏开发︱如何利用最新款的CPU,创建沉浸式虚拟世界?

 爱因思念l5j0t8 2017-06-16

简介:本文是来自Chronosapien工作室的专家Justin Link的自述。他将以实际项目为例,为您讲述性能强劲的CPU给游戏最终的VR体验带来的巨大影响。

三年多以来,我经营了一家名为 Chronosapien 的工作室,我们专门利用新兴的技术组件创建交互式内容。我们采用了多种技术,但是最令我们感兴趣的是虚拟现实技术,因此,我们开始创建我们自己的项目,项目名称为Shapesong*


无论从哪个方面来看,从事Shapesong项目都是一段特别的经历。最有趣的地方在于学习如何实现系统的最佳性能,同时始终适应不断变化、日趋成熟的媒体。


本文介绍了我们在创建可信的、极具吸引力的虚拟现实环境中获得的经验,以及如何通过硬件(主要针对CPU)实现虚拟现实。


新的预期

2016年第一代设备浪潮的来临使许多人初次体验了虚拟现实。由于虚拟现实是一个强大的自然用户界面,人们进入虚拟现实界面的方式和传统媒体设备界面的方式完全不同。用户希望虚拟现实提供流畅自然的内容和体验。例如,如果一个从未尝试过虚拟现实技术的人戴上虚拟现实设备,他首先会问:“我的手在哪里?”,而不是问该按哪个按钮。将用户置于虚拟现实环境中,他们做的第一件事不是询问该干什么,而是立即开始触摸物体,捡起来再扔下,还进行了其他交互,您可能不会料到使用电脑程序的用户会产生这样的行为。


当期望落空时,心中的疑虑被打破,虚拟现实的错觉也随之消失。用户不再处于虚拟现实世界中,他们透过镜头看到了数字副本,包含了毫不掩饰的设计元素和设定的场景。


许多虚拟现实使用案例不包括创建虚拟环境。然而,由于虚拟现实应用的目标是沉浸与传输,开发人员和设计人员的必须创建栩栩如生的世界,为用户提供和真实世界一致的响应。这意味着创建可以变化与恢复的环境,可以捡起与扔掉的物体以及可以塑造与修改的工具。


这便是下一代交互式体验的目标,创建一个栩栩如生的虚拟现实世界。用户通常希望虚拟现实的交互方式与真实世界的交互方式相同,但是他们无法看到沉浸式和交互性体验所隐含的计算。开发人员利用现有的技术和工具为虚拟现实环境添加生动、逼真的效果,但是他们能做的只有这些。在某些情况下,为了支持这些体验,他们需要利用性能更强大的硬件,这是我和我的团队所面临的挑战。开发我们自己的虚拟现实体验 - Shapesong时,我们掌握了增强沉浸式效果需要创建的组件,也了解了创建的方法。交互性和沉浸式体验的宽度非常广泛,传统系统的计算资源又非常有限,我们不得不选择部分区域进行创建,或增强创建流程的创新性。很像用一根吸管吸一座山。


在本文中,我将介绍Shapesong消耗CPU性能的几个途径,它对用户的影响以及更强大的CPU对扩展沉浸式体验的支持。我的目标是帮助人们更好地了解高端虚拟现实系统在支持沉浸式虚拟体验方面的优势。


什么是 Shapesong?

首先,我们来了解Shapesong的环境。Shapesong是面向下一代音乐交互式体验的解决方案。用户能探索音乐环境、发现用于虚拟乐器的声音、在提供伴舞和娱乐的场景中创造音乐,还能与自己的克隆或其他人共同弹奏音乐。简而言之,Shapesong 就是一个《幻想曲》与《欢乐糖果屋》在共享的虚拟世界中相遇的体验。下面是我们的概念演示视频:


我们的目标是创建一个随时随地弹奏音乐的世界,为用户提供工具,使他们利用环境和找到的乐器来创造音乐。 我们还尝试创造一种将视觉和音乐表演融合在一起的联觉体验,使演奏者和观众完全沉浸其中。


我们需要实时设计与控制该体验的许多方面,因此,运行 Shapesong 的系统功能变得尤为重要。


创建一个音乐世界

虚拟实行严格的每秒90帧的渲染时间,每帧约11毫秒。相比之下,传统体验的渲染时间为每秒30帧,即使某些区域低于每秒30帧也不会产生重大后果,虚拟现实则不然。实际上,虚拟现实需要渲染场景的两个版本,每只眼睛对应一个版本。这意味着虚拟现实的渲染负载是平面媒体设备的两倍。这些规则存在一些例外,也可以利用技巧改变规则,但是最重要的是,虚拟现实对计算的要求要严格得多,成本也高了一大截。


Shapesong实现了一些独特特性,对虚拟现实系统的性能提出了更高的要求。从技术的角度来看,Shapesong是数字音频工作站 (DAW) 和视频游戏在虚拟环境中的结合。上述三个部分均能消耗大量的CPU周期。 我们看一下Shapesong中完全依赖CPU性能的领域。


音频处理

作为一款音乐游戏,Shapesong处理了大量音频,这点不足为奇。除了对环境、玩家和用户界面声音进行基准渲染以外,还需要渲染不同时期的乐器演奏。事实上,多个乐器的平均音频处理负载是基准(只演奏一件乐器时)的 20 倍。

图 1:在 Shapesong 中弹奏键盘

这是乐器的幕后原理。 如果您想在乐器上弹奏一个音或音符,需要播放该音符的音频剪辑。 从某些方面来说,一架全尺寸钢琴有 88 个琴键/音符,可以在特定时间内弹奏。 在 Shapesong 中弹奏相似的虚拟乐器时,最多可以同时播放 88 个不同的音频剪辑。 前提是假设每个音符只能同时弹奏一个活动音符或声音,但是,在 Shapesong 中情况并非总是如此。


除了基于音频的乐器演奏方法外,还有另一种方法—声音合成。 但是,声音合成不能代替示例,它拥有独特的处理开销。 我们希望 Shapesong 支持两种方法,在弹奏音乐时实现最大的灵活性。


环境影响

正如我刚才说的,我们希望在 Shapesong 中实现视觉和音乐表演的结合,以创造全新的音乐体验。 播放的音乐需要与环境中的视觉效果保持同步。


多数人认为游戏或体验中的任何图形都是由图形显卡或 GPU 渲染的。 实际上,CPU 执行绘制调用,在图形渲染管线中发挥重要的作用。 绘制调用本质上是 CPU 确定图形任务并将其发送到 GPU 的过程。 总体来说,当存在需要绘制到屏幕的独特任务时,执行绘制调用。


在 Unity* 中,批量处理流程对 Shapesong 引擎和绘制调用进行优化。 批量处理收集相似的绘制调用,将它们聚集到单个调用中,然后发送到 GPU,极大节省了计算时间。 然而,只有在特定条件下 Unity 才执行批量处理,其中一个条件是全部对象共享相同的材料。 另一个条件是批量处理对象必须全部静止,不得改变位置或以任何方式运动。 对于静态环境(如共享相同材料的 200 棵树)而言,批量处理效果非常出色。 但是,如果您想要每一颗树对玩家输入或音乐演奏产生独特的响应时,批量处理不起作用。


无论虚拟世界是否需要响应音乐,该条件为创建栩栩如生的虚拟世界带来了巨大的挑战。 如果无法移动或修改某个场景中的物品,如何使该场景变得栩栩如生? 现实情况是:您需要挑选进行生动展示的部分,并以创新的方式添加效果,这是游戏开发普遍面临的一个长期问题。 如上所述,传统体验和下一代体验的区别在于用户的期待。


物理对象

增强虚拟世界的逼真度不仅需要在环境中添加动画, 还要根据现实世界中习以为常的物理定律设计动画。 事实上,您甚至可以认为当前的虚拟现实系统不是真正的虚拟现实系统,只是叠加了虚拟世界的增强虚拟(参阅混合现实)。 为什么? 因为尽管在虚拟现实中看到了虚拟环境,我们依然站在物理世界中,物理世界受所有自然规律的控制。 重要的是如果您想创建一个无缝的自然体验,不想破坏这个假象,需要将物理实体的定律应用到虚拟现实中。

图 2: 丢掉声筒

我们想在 Shapesong 中创建一个自然的环境,用户可以利用环境中的物体进行演奏,探索音乐环境。 例如,我们希望用户能捡起一块石头,然后在池塘的水面上打水漂,当石头滑过水面时会播放音符,用户也可以扔球,听球下落时音高的变化。 目的是鼓励非专业人士进行音乐探索,消除他们对音乐的畏惧心理。


游戏引擎中的物理机制没有那么难启动,但是成本极其高昂,也非常耗费 CPU 资源。 物理系统不仅需要逐帧计算受物理约束的对象的新位置,还要检查对象和其他环境的接触。 随着物理生成的对象数量和接触它们的对象数量的增长,成本也随之上涨。


录制演奏

用户录制游戏的方式使 Shapesong 变得独一无二。 我们希望充分利用虚拟现实功能和支持虚拟现实的系统,同时录制演奏。 过去,DAW 录制音乐时,只收集弹奏的音符,不会捕捉手掠过琴键的动作,也不会捕捉沉浸于节奏时头部的摆动。 但是音乐不仅在于弹奏的音符, 弹奏的方式也是音乐的重要组成部分。

图 3: 和您的克隆一同弹奏

我们记录了用户的全部输入,将它们制作成一段动画,通过虚拟的人物进行回放。 用户录制演奏本质上是为了克隆自己的在某段时间内的活动。 当玩家弹奏乐器时,克隆玩家的音乐演奏。 当玩家位于其他地方时,克隆玩家与环境的互动、舞蹈或者仅仅是打招呼。


录制一场演奏不会消耗太多资源,但是回放演奏却能消耗大量资源,尤其在演奏规模扩大时。 例如,一首歌的某一节同时弹奏了 4 或 5 种乐器:节奏、低音、旋律、弦乐器和纹理。 可能还包括了一些视觉表演,如跳舞、绘制发光的拖尾或触发环境中的对象。 因此,在典型环境中,用户可能随时播放 10 个或以上录制。 每一个角色包含 3 个记录位置的对象:左手、右手和头部。 我们还跟踪保存的对象角色以及这些对象的状态。 在典型环境中,回放的对象或属性总计至少 100 个,每帧都会对它们进行全部处理。


更强大的硬件性能将带来怎样的变化?

很明显,虚拟现实提出了严格的性能要求, 模拟沉浸式环境和支持它们的功能可能花费高额成本,这也是可以理解的。 那么这意味着什么? 这些 CPU 性能要求对虚拟现实的最终体验产生了怎样的影响?


处理能力增强通常会导致虚拟环境规模的扩大,这是处理能力增强的一个主要影响。 之前发布的体验几乎全部存在于小房间或气泡内,交互性非常有限。 例如,《Tilt Brush*》限制环境画布的规模,最近才支持用户走出空间定位的范围。 《Lab*》创建于实验室内部,实际上只有几个空间定位大小。 即使看起来更为开放的环境(如《Lucky’s Tale*》中的环境)也赶不上同类的现代平台游戏,如《超级马里奥星河*》。 由于 CPU 提供了更卓越的性能,我们将进一步扩大环境,创建并探索更加无缝、多样的世界。


处理能力对虚拟现实体验的另一个影响是有限的交互性。 之前发布的多数体验注重某一类交互性,然后对其进行扩展。 例如,《Job Simulator*》是一个物理沙盒,支持用户捡起、扔掉对象,或以独特、有趣的方式混合使用对象。 《Raw Data*》属于大规模射击游戏,系统可生成成群的敌人供用户射击。 《Audio Shield*》动态生成球体,玩家利用盾牌抵挡球体,与歌曲的节拍保持同步。 尽管这些游戏都很出色,也非常好玩,但是体验的深度相对较浅,因此,其吸引力远不及其他常见的非虚拟现实游戏。 更强的处理能力能减轻每个交互系统的硬件压力,有助于提升交互性的宽度和深度。 《亚利桑那阳光》在原有的多人射击体验的基础上,利用高性能 CPU 启用了许多物理对象和僵尸。


这些效果正是 Shapesong 提供的体验。 随着支持特性的增多,必须缩小环境边缘。 添加了更多的角色意味着必须限制主动音频语音的总数。 我们利用音乐启用了更多视觉效果,必须降低其它地方的图形逼真度。 这些妥协并非仅限于虚拟现实,它们一直存在于各种游戏或体验中。 不同之处在于现实的预期,用户总是提出详细的要求,虚拟现实系统的要求至少比传统系统严苛两倍。 提升虚拟现实系统中的 CPU 性能,有助于创建沉浸式和完全透明的虚拟世界。


展望未来

借助虚拟现实,我们处于媒体领域新标志性转变的前沿。 我们直接进入了人们的想象深处,而不是在外面驻足观望,我们现在可以与世界和角色进行生动、逼真的交互。 这是一个新型的目标,在我们定义下一代虚拟体验之前,需要重新考虑实现这一体验的技术。 宇航员不会坐着缓慢前进的飞行器到达月球,我们也不会借助浏览网页的 PC 探索虚拟现实世界。


但是实现虚拟现实体验不能只依赖最新的计算技术, 还需要我们对现实世界进行模仿,设计沉浸式体验的效果,同时需要打破现实,以便退出。 对于开发 Shapesong 的开发人员来说,这意味着在创建的环境中应用类似于现实世界的全新物理法则,利用直观、独特的交互式方法进行音乐创造。 当然,全新的虚拟现实体验都有其独特的风格,突破了某些限制,但是全部依靠技术来实现。


有关编译器优化的更完整信息,请点击阅读全文!


英特尔开发人员专区

是一个全球性网站,旨在为软件社区

提供见解、信息、专业知识和工具,以帮助在英特尔

软件环境中工作的开发人员

开拓创新,取得成功


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多