当前位置 > 首页 > 国际新闻 > 正文

《Ninja Legends》分享:如何为快节奏VR动作游戏的交互优化性能
  • 发布时间:2020-01-29
  • www.mcm-outlet.com
  • 资料来源:严昌华,《Yingwei.com》作者。最近,虚拟现实动作游戏《Ninja Legends》的开发者Coinflip Studios介绍了如何通过博客帖子优化快节奏互动的性能。以下是视频网络的具体安排:

    我们游戏中最令人满意的地方之一是敌人被切成两半的时间点。当这种情况发生时,敌人角色将沿着由刀片移动产生的平面动态地分成两半。中央处理器和图形处理器实时分割敌人忍者可能需要非常昂贵的成本。虽然这对于大多数现代游戏电脑来说通常不是问题,但是Oculus Quest的移动芯片组要平稳运行要复杂得多。在本文中,我们将介绍在中央处理器中使用的技术,以支持设备保持稳定的帧速率。

    我们的解决方案集中在三个方面:

    确保网格划分算法有足够的CPU周期来平稳运行。管理切割产生的大量视觉效果。切割后保持稳定的性能。

    1。背景线程

    分裂敌人的角色网格是一个非常简单的操作。现在计算哪条边在刀片的哪一侧,然后用正确的边生成一个新网格。这涉及到许多简单的数学运算,因此很容易将其卸载到后台工作线程。通过将计算放在后台线程中,我们减轻了主CPU线程的负担。

    使用后台线程的一个缺点是您不能再保证操作能在一帧内完成。多线程编程的异步特性意味着您可能需要两个或更多的帧来完成后台工作并将数据返回到主线程。另一件要记住的事情是,并非所有的工作都可以在后台线程中完成。影响3D场景本身的操作必须由主线程执行。

    2。中央处理器调频

    Oculus Quest操作系统允许设备动态提高和降低中央处理器和图形处理器的性能。我们将关注中央处理器,但GPU也有类似的行为。通过尽可能降低中央处理器的频率,头显示器可以省电并防止过热。该设备将自动检测游戏当前的中央处理器资源是否紧张,并适当提高中央处理器水平。将决策权留给设备的问题是,增加CPU级别的决策需要几帧时间。

    在中央处理器增加频率之前所需的决策时间表明游戏中帧速率可能下降。因为我们知道切割会给中央处理器带来压力,所以每当我们检测到玩家想要切割敌人时,我们就手动提高中央处理器的速度。我们在半秒钟内最大化CPU级别,然后允许默认行为接管并自然降低CPU级别。

    在Unity Oculus SDK中,此控件通过OVRManager.cpuLevel公开,

    3。视觉效果的对象池。

    当玩家执行剪切时,此时会触发大量视觉效果。各种效果共同为玩家创造一个满意的反馈时刻。问题是立即实例化大量效果是一项非常昂贵的操作。我们发现每个效果的实例化时间超过了1毫秒。对于72 fps(每帧13毫秒),这大约是帧CPU时间的10%。在《Ninja Legends》中,我们通过应用对象池来缓解这个问题:在场景中维护一组常用的效果,这些效果已经被实例化了,但是在需要之前是隐藏的。

    4。跨框架视觉效果激活

    即使应用了对象池,在同一框架中重新激活多个对象也会产生一定的成本。我们的解决方案是激活跨帧视觉效果。我们构建了一个系统来排队低优先级激活,并为每帧分配一个激活。为1帧启用5个效果可能会超出预算,但推迟5帧的相同效果影响会小得多。请记住,以72 fps播放5帧大约需要70毫秒,玩家仍然会立即看到它。

    5。减少物理交互

    游戏的物理模拟由中央处理器运行,所以降低模拟的复杂性可以为我们提供更多的性能空间。一旦敌人忍者被切断,我们只允许物理对撞机与地面互动。身体部位对身体部位、身体部位对其他敌人、身体部位对玩家武器之间的交互不再需要,如果它保持激活,实际上会引起更多不必要的视觉噪音。这使我们能够在切割后保持稳定的帧速率。这一点非常重要,因为玩家可能会陷入激烈的战斗状态,有多个敌人,并且在各个方向都有触觉视觉效果。

    这是我们的统一碰撞矩阵。被砍的敌人被分配给了曹

    使用上述技术,我们为Oculus Quest开发了一个终极忍者体验。虽然这已经经历了许多技术和设计迭代,但是玩家的积极反馈使得所有这些都是值得的。

    原始链接:https://yivian.com/news/67899.html

    日期归档

    两江信息网 版权所有© www.mcm-outlet.com 技术支持:两江信息网 | 网站地图