-- 本文来自英特尔游戏开发部门的 Justin Link --
在三年多的时间,我有幸负责管理一家名为Chronosapien的工作室,而我们主要是通过新兴技术组件来创建交互式内容。我们涉足了大量不同的技术,但VR已经成为了我们最关注的领域,所以我们开始了一个名为“Shapesong”的项目。
从许多不同的角度来看,“Shapesong”项目都是一次十分独特的经历。但其中一个最有趣的方面是,我们一直在学习如何最大化系统性能,同时不停地适应不断发展的媒介。在这篇文章中,我希望向大家分享如何制作一个可信和引人入胜的VR环境,包括从硬件角度来出发,尤其是CPU。
全新的期待
随着第一代设备在2016年出现,普罗大众开始第一次接触到VR体验。由于虚拟现实是一种更为自然的用户界面,所以人们对待它的方式与传统媒体设备不同。我们期望VR中的内容和体验能够足够自然。例如,当用户第一次穿戴VR设备的时候,他们不会先问“我应该要按下什么按钮?”,而是会问“我的双手在哪里?”。当传送至虚拟环境中时,用户不会询问他们应该做什么,他们立即开始触摸对象,拾取对象,以及传统计算机程序用户所无法想象的其他交互。
当期望无法得到满足时,真实感就会被打破,而虚拟现实的幻觉则会瞬间消失。用户不再是身处于虚拟现实之中,他们只是通过透镜来感知一个数字模拟,周围则充斥着毫不掩饰的设计元素和脚本化场景。
虚拟现实存在一系列不涉及构建虚拟环境的用例。但如果VR应用程序的目标是沉浸和传送,作为开发者和设计者的我们就必须创建一个栩栩如生的世界,能够像我们的物理世界那样响应用户。这意味着我们要创建一个可以改变和转换的环境,创建可以抓取和投掷的对象,以及创建可以塑造和变形的工具。
这就是下一代交互式体验,一个栩栩如生的虚拟世界。对此,用户自然而然地期望他们可以像物理世界一样与虚拟世界进行交互,但他们忽略的是沉浸感和交互性背后的所有计算。开发者的责任是利用现有工具和技术实现这种逼真的虚拟世界,但他们的力量有限。在某些时候,他们需要利用更高性能的硬件来实现目标。
这是我和我的团队所面临的挑战。在开发VR体验“Shapesong”的时候,我们学习到创建沉浸感所需的一切,我们知道如何才能实现这一点。但交互性和沉浸感的广度是如此之大,而计算资源在传统系统上又是如此受限制,我们被迫进行权衡选择,或者发挥自己的创意。这种感觉就像是把一根吸管塞进一块石头。
在本文中,我希望与大家探讨“Shapesong”在什么方面为CPU性能施加了压力,这对用户有什么影响,以及为什么功能更强大的CPU能够加强沉浸感。我的目标是帮助大家更好地理解高端VR系统在实现这种高度沉浸感体验中的优势。
“Shapesong”是什么?
首先,我们先来看看什么是“Shapesong”。“Shapesong”是我们面向下一代音乐交互式体验的解决方案。用户可以自由探索音乐环境,发现可以用于虚拟乐器中的声音,创建可以舞动和游乐的歌曲,以及与自己或其他人的克隆体一起演奏音乐。我喜欢把它简单描述为《幻想曲》与《查理和巧克力工厂》在一个共享虚拟世界中的结合。
我们对“Shapesong”的目标是创造一个能够以音乐形式游乐的完整世界,并支持用户通过他们发现的环境与乐器来制作出属于自己的体验。我们同时试图创造一种融合视觉和音乐表演的联觉体验,让表演者和观众都能完全沉浸其中。
体验存在大量需要设计和实时控制的方面,所以运行“Shapesong”的系统功能变得尤为重要。
创建一个音乐世界
虚拟现实要求的帧率达到90fps,或者说每帧11毫秒。与之相比,传统体验的帧率为30FPS,而且在特定位置低于30FPS也不会造成重大影响。但虚拟现实却非如此。VR实际上需要渲染两个版本的场景,一个左眼一个右眼。尽管要求存在一定的例外,而且存在可以利用的辅助技巧,但毫无疑问的是VR对计算的要求十分严格。
我们为“Shapesong”设计了一系列特定的功能,而这对VR系统提出了更加严格的性能要求。从技术的角度来看,“Shapesong”是数字音频工作站 (DAW) 和游戏在虚拟环境中的结合。这三者均对CPU提出了巨大的计算负担。下面我们不妨来看看“Shapesong”中完全依赖于CPU性能的部分。
 音频处理
作为一款音乐游戏,“Shapesong”需要处理大量的音频。除了对环境,玩家和UI声音进行基准渲染以外,我们还会在不同时间段播放与乐器相关的声音。事实上,多个乐器的平均音频处理负载是基准(只演奏一件乐器时)的20倍。

在Shapesong里玩键盘琴
这是乐器的幕后工作原理。如果你希望在乐器上演奏一个声音(或者说一个音符),你需要播放这个音符的音频片段。从某些方面来说,完整的钢琴包含88个可以在特定时间内弹奏的不同琴键(或者说音符)。如果你在“Shapesong”中弹奏类似的虚拟乐器,你最多可以同时播放88个不同的音频片段。然而,这是假设了每个音符在同一时间段只弹奏一个活动音符(或者说声音),但对“Shapesong”而言情况并不总是如此。
除了基于音频片段的乐器演奏方法外,我们还可以通过另一种方法来演奏乐器:声音合成。但声音合成不能代替采样(sample),而且这需要独特的处理负载。我们希望“Shapesong”能够支持两种方法,从而在弹奏音乐时可以实现最大的灵活性。
   环境效果
我在上文已经提到,我们希望在“Shapesong”中实现视觉和音乐表演的结合,从而实现全新的音乐体验。所以,播放的音乐需要与环境中的视觉效果保持同步。
大多数人认为游戏或体验中的所有图形都是由GPU渲染,但实际上CPU图形渲染管道上扮演十分重要的角色,因为绘制调用是由CPU所执行。绘制调用本质上是指CPU确定图形任务并将其发送到GPU的过程。总的来说,当存在需要绘制到屏幕的独特任务时,系统将需要CPU执行绘制调用。
在Unity中,“Shapesong”引擎和绘制调用在一个名为“批量处理”的流程中得到了优化。批量处理采集相似的绘制调用,将它们聚集到单个调用,然后再发送至GPU,这能够极大地节省计算时间。但Unity只有在特定条件下才会对调用执行批量处理,而其中一个条件是所有对象都共享相同的材料。另一个条件则是批量处理对象必须全部静止,不能够改变位置或以任何方式运动。对于静态环境而言(比方说共享相同材料的200棵树),批量处理的效果非常优秀。但如果你希望每一颗树都对玩家输入或音乐演奏产生独特的响应,批量处理将无法起到相同的作用。
无论虚拟世界是否需要响应音乐,这对创建栩栩如生的虚拟世界而言提出了巨大的挑战。如果无法移动或改变某个场景中的对象,我们应该如何令这个场景变得栩栩如生呢?现实情况是,你不得不权衡需要进行生动演示的部分,而且在实现方式上发挥自己的创意(这也是游戏开发所普遍面临的一个长期问题)。正如我在前文所说,传统体验和下一代体验的区别在于用户的期待。
   物理对象
要实现一个栩栩如生的虚拟世界,我们不仅需要在环境中添加动画,我们还要根据大家早已习以为常的物理定律来设计动画。事实上,你甚至可以认为当前的VR系统不是真正的VR系统,它们只是叠加了一层虚拟世界的增强虚拟。为什么这么说呢?因为尽管在VR中看到了虚拟环境,但我们依然站在物理世界中,受所有物理世界的自然规律所束缚。重点是,如果你希望创建一个无缝的自然体验,同时不破坏这种幻觉,你将需要确保虚拟世界的物理与现实世界相匹配。

抛起一个音乐弹药
我们希望在“Shapesong”中创建一种自然的体验,能够支持用户利用环境中的对象进行演奏,并以此来探索音乐环境。例如,当用户捡起一块石头并在池塘上打水漂时,我们希望石头滑过水面时会播放音符;或者说当用户往下拍球时,球体下落时会出现音高的变化。这样做的目的是,以一种不令人胆怯的方式来鼓励非专业人士进行音乐探索。
尽管在游戏引擎中启用物理并非是难于登天,但成本极其高昂,对CPU资源的消耗也十分可观。物理系统不仅需要逐帧计算受物理约束的对象的新位置,同时还需要检测对象与其余环境的接触。随着这种物理支持的对象和相接触对象的数量增多,成本也将随之增加。
   表演录制
令“Shapesong”与众不同的一点是,用户可以自行录制表演。我们希望表演录制能够充分利用VR及其运行系统的功能。以往在通过数字音频工作站录制音乐时,你只能捕捉弹奏的音符,系统不能捕捉手指演奏琴键的动作,也无法捕捉头部的摆动。但音乐的重点不仅只是你所弹奏的音符,你所弹奏的方式同样是十分重要的组成部分。

与自己的“影分身”一起玩
我们记录了用户的所有输入,并将它们制作成一段可以通过虚拟化身实现的动画。当用户录制一次表演的时候,他们基本上是克隆自己在特定时间段内的活动。对于弹奏乐器,这意味着克隆你在演奏音乐时的一切行为。对于其他,这意味着克隆你与环境的交互,你的跳舞,或者仅仅只是打招呼这一动作。
尽管录制一场表演不会消耗太多的资源,但播放表演却会恰恰相反,尤其在以表演规模进行播放时。例如,一首歌的某一节中可能同时弹奏了四种或五种乐器,而这期间可能同时包含一定的视觉表演,如跳舞或与环境中对象进行交互。因此,用户在典型演奏中的任意时刻可能会播放10个或以上的演奏录制。每一个角色都有三个部分需要录制:左手,右手和头部。我们同时追踪了角色所握持的对象,以及这些对象的状态。在典型环境中,播放的对象或属性总计至少有100个,而每一帧都需要对它们进行处理。
   更强大的硬件性能将带来怎样的变化?
显然,虚拟现实提出了严格的性能要求,模拟沉浸式环境及其功能可能需要付出高昂的资源消耗。但这意味着什么呢?CPU的性能要求将会对VR的最终体验产生怎样的影响呢?
更强大CPU性能可以带来的一个主要影响是,扩大虚拟环境的规模。你不妨看看以往的虚拟现实体验,它们几乎全部存在于小房间之内,而且交互性非常有限。例如,Tilt Brush限制了环境画布的规模,而它们在最近的更新中才支持用户走出房间尺度的范围。《Lab》的场景位于一个实验室之内,而这实际上只有几个房间尺度的大小。即使是《Lucky’s Tale》这样看起来更为开放的VR环境,它们也远远比不上同类的现代平台游戏(如《超级马里奥银河》)。由于CPU提供了更卓越的性能,这种环境能够进一步扩大,从而为玩家创建一个更加无缝和更为多样的世界。
更强大CPU性能可以为VR体验带来的另一个影响是,提高VR体验的交互性。大多数旧款体验注重于某一类交互性,然后再对其进行扩展。例如《Job Simulator》是一款物理沙盒,支持用户拾取对象或以独特和有趣的方式来混合对象;《Raw Data》属于大型射击游戏,系统可以生成一波接一波的敌人;《Audio Shield》则是根据音乐节奏生成球体,而玩家可以利用盾牌进行格挡。尽管上述游戏非常优秀,同时十分好玩,但体验的深度相对不足。因此,它们的吸引力远远比不上其他热门的非VR游戏。更强大的处理能力可以减轻每个交互系统对硬件施加的压力,而这有助于提升交互性的宽度和深度。《亚利桑那阳光》就是一个例子,这款游戏在原有的多人射击体验基础上利用高性能CPU启用了大量的物理对象和僵尸,大大增加了游戏的沉浸感和吸引力。
这种效果正是“Shapesong”所提供的体验。随着我们启动更多的功能,我们必须节省环境的投入;随着我们添加更多的角色,我们必须限制主动音频语音的总数;当我们为音乐启用更多的视觉效果时,我们必须降低其它方面的图形保真度。这种妥协并非仅限于虚拟现实,它们一直存在于各种游戏或体验之中。但不同之处在于用户的预期,我们都期待一个逼真的虚拟环境,所以虚拟现实系统对性能的要求至少比传统系统高出两倍。提升VR系统中的CPU性能将有助于创建这种高度沉浸和高度逼真的虚拟世界。
   展望未来
对于虚拟现实,我们正处于媒介新范式变革的最前沿。我们不再是通过一个有限窗口来知觉脑海中的奇幻世界,我们直接进入了人类幻想的深处,我们现在可以与这个世界及其里面的对象进行生动而逼真的交互。这是一个全新的目标,而我们在定义下一代虚拟体验之前必须重新思考实现这一体验的技术。正如宇航员不会坐着一架嚓嘎嚓嘎的飞船前往月球,我们也不会借助用于浏览网页的PC来探索VR世界。
但要实现这种虚拟现实体验,我们不能只依赖于最新的计算技术。我们创建的设计需要能够模拟出一个足够沉浸的世界,同时又可以实现真正的逃避感。对于开发“Shapesong”的开发者来说,这意味着我们需要通过一种既熟悉又新颖的物理法则来创建环境,并且利用直观而独特的交互式方法来创建乐器。当然,每一种全新的虚拟现实体验都有其独特的风格和挑战极限的方式。但是,它们都需要依靠一定的技术条件来实现相应的目标。

想学习VR开发吗?我们有积累8年的资源库、教程库和交流社区,点击进入。

原文发布自:http://www.52vr.com/article-2098-1.html

如何最大化利用CPU性能创作沉浸式VR体验相关推荐

  1. 文旅融合助力沉浸式夜游体验项目的发展

    2022上半年,受国内疫情形势影响,文化消费市场整体收紧.上海.广州.吉林.北京等多地爆发的疫情打乱了旅游市场的复苏节奏,国内居民的出游意愿与消费受到影响.国家统计局数据显示,2022上半年,全国居民 ...

  2. 她笔下的水墨世界令人赞叹,中国风海报沉浸式国风体验

    平面设计中最重要的元素之一就是色彩,在西方绘画创作色彩观念中,"色彩是每个物体所固 有的,是难以分割的一部分,亦或是可以认为色彩是光化作用中物象的客观反映. "在传统水墨作品中,创 ...

  3. 如何实现沉浸式视频体验?

    沉浸式视频体验 上周产品小哥哥丢过来一个需求,名曰:沉浸式视频体验,大致内容是一个页面里有几十个视频,用户点击其中一个视频时,该视频自动滑动到屏幕可视区域的顶部开始播放,并暂停其他视频,该视频滑出屏幕 ...

  4. 助力汽车行业服务转型,Ivanti构建沉浸式IT体验

    申耀的科技观察 读懂科技,赢取未来! 二战期间,为了减少飞机被击中坠落的风险,人们期望给飞机容易被子弹打中的地方增加钢板加固,因此有人对对战中的维修飞机上的弹孔分布进行了调研,如下图所示,这也可以看作 ...

  5. 博物馆展示沉浸式互动体验空间应用

    随着科技的发展,国家产业进入文旅时代,科技助力产品形态升级和商业模式创新,为产业高质量发展赋能,为展览提供知识本质功能打开更多可能性. 新起典文旅认为当前国内的博物馆沉浸式投影越来越受公众喜欢,越来越 ...

  6. 打造沉浸式游戏体验,戴尔及ALIENWARE推出全新AMD锐龙游戏本

    随着电竞产业的飞速发展,游戏本市场的发展日新月异,各种新技术层出不穷.沉浸式体验成为游戏本的一大发展趋势. 4月8日,戴尔及ALIENWARE携手AMD.NVIDIA强强联合,发布两款全新游戏本--性 ...

  7. 项目式教学:为学生创造沉浸式学习体验

    近日,笔者认真阅读了< 项目式教学:为学生创造沉浸式学习体验 >一书(中国人民大学出版社),对教师如何开展项目式教学有了清晰的认识.在阅读期刊网上下载的相关文章时,笔者留意到,我国的不少研 ...

  8. 新版CSDN浏览器助手打造沉浸式阅读体验,快来看看吧!

    目录 前言 正文 一.新版 CSDN 浏览器助手安装前后页面对比 二.新版 CSDN 浏览器助手的自定义设置 三.为什么选择 CSDN 浏览器助手 四.如何安装 CSDN 浏览器助手 结尾 CSDN浏 ...

  9. csdn插件新增“博客净化”功能,去掉广告,砍掉边栏……打造沉浸式阅读体验,你值得拥有!

    csdn插件新增"博客净化"功能,去掉广告,砍掉边栏--打造沉浸式阅读体验,你值得拥有! CSDN浏览器助手新版本 9 月强势上线! 插件官网链接下载地址 https://t.cs ...

最新文章

  1. C专家编程--读书笔记九 再论数组
  2. 技术解析系列 PouchContainer Goroutine Leak 检测实践
  3. JS实现全选、反选、不选
  4. php substr函数的用法6,PHP中substr函数如何使用?
  5. 前端学习(2144):webpack中使用css的配置
  6. 复制文本框内容至剪贴板
  7. linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘
  8. Mybatis SQL片段
  9. Scala进阶之路-I/O流操作之文件处理
  10. php 转gbk,php 中文怎么转gbk
  11. DIY个性家装心得家用电动工具选择
  12. mysql索引失效的常见9种原因详解
  13. BIOS知识枝桠——PCD
  14. android将毫秒转换成日期,如何在Android中将毫秒转换为日期格式?
  15. 想不想修真鸿蒙秘术,想不想修真鸿蒙秘诀怎么得 揭开想不想修真秘诀真面目...
  16. 获取非行内样式的兼容
  17. Java——重写hashCode()和euqals()方法
  18. vue 和 react的对比
  19. 博睿孟曦东:致力于提升企业关键业务可靠性与稳定性使其IT质量可视化
  20. 实施工程师mysql面试题_软件实施工程师面试题(下)

热门文章

  1. RecyclerView中adapter列表里有EditText输入框问题(使用不复用方法解决)
  2. SpringMVC——自定义拦截器、异常处理以及父子容器配置
  3. iis 站点中文乱码 解决方案
  4. web开发中目录路径问题的解决
  5. 程序编译是出现“field has incomplete type“问题的解决
  6. kail linux安装软件提示“无法定位软件包”解决方法
  7. WebApi的安全性及其解决方案
  8. 什么是Linux的原生GUI API?
  9. 为什么在Ruby中使用`rescue Exception =gt; e`样式不好?
  10. 一文理解拉格朗日对偶和KKT条件