跳到主要内容

性能优化分析

简介

游戏引擎在本质上,就是使其成为通用的。

平衡的算法总是受到青睐, 而不是那些在某些情况下可能很快,而在另一些情况下很慢的算法,或者那些快但很难使用的算法。 IdeaXR在这方面也不例外。

明确了这点后,所以本教程部分的目的是解释如何从IdeaXR 中获得最大的性能。

帧率(FPS)及其影响因素

在程序中,一帧便是绘制到屏幕上的一个静止的画面。

帧率(FPS)表示GPU处理是每秒钟能够更新的次数,帧率是衡量一个程序的基本指标。帧率越高画面越流畅。

在IdeaXR引擎中,渲染一帧需要执行很多任务,如更新项目状态。

有些任务在每帧都需要执行,如脚本,光照计算等,还有许多操作是在一帧执行多次,如物理运算。 当所有这些任务都执行的足够快时,工程才会有稳定理想的帧率。 影响帧率的因素可以从以下几个方面内进行分析。

  • 面片数 场景中的模型越多,需要渲染的面片数也越大,绘制一帧画面的时间自然变长。因此,在建模时要有意识的减少三角面片的数量,搭建场景时删除不必要的模型,这些措施都可以达到提高帧率的目的。

  • 运算量 如果代码中有复杂的运算,场景中有大量的物理模拟,屏幕上有满屏的后处理特效等操作,就会给CPU或GPU带来很大的计算量,从而导致帧率下降。因此,可以采取简化运算、减少物理模拟、弱化屏幕效果等措施来提升帧率。

  • 内存 项目工程中用到的纹理尺寸很大,并且没有压缩,或者分辨率过高,这些都有会导致响应速度慢,从而影响帧率。因此,可以采用压缩纹理、降低分辨率等措施来提高帧率。

  • 光照 如果为了增加效果,而在场景中使用了大量的实时光照,就会造成过多的阴影叠加,给GPU的渲染带来巨大的压力,结果会影响帧率。可以使用光照贴图来代替实时光源,或者添加光照探测器来提高帧率。

性能分析工具—调试器面板

分析器允许你在运行程序时对其进行计时, 然后分析器提供结果, 告诉你在不同的功能和区域所花费的时间百分比,以及功能被调用的频率。

这对于确定瓶颈和衡量改进的结果都非常有用。 有时, 改善性能的尝试可能会适得其反,导致性能变慢。

所以熟悉运用分析器工具,可以帮你解决大部分性能有关的问题。

启动IdeaXR项目后,在编辑器屏幕下方的调试器面板中,可以找到包括调试器在内的许多IdeaXR的调试工具。点击调试器即可打开。

Docusaurus Plushie

调试器

当IVRScript编译器在你的代码中达到一个断点时,调试器选项卡会自动打开。

它给你提供了一个栈跟踪,对象的状态信息,以及控制程序执行的按钮。

Docusaurus Plushie

你可以使用右上角的按钮来(从左-> 右):

  • 跳过所有断点 这样一来,你就可以为将来的调试会话保存断点。
  • 复制当前错误消息
  • 单步进入 这个按钮将带你进入下一行代码,如果是函数,它将逐行进入函数。
  • 单步跳过 这个按钮会进入下一行代码,但它不会逐行跳过函数。
  • 暂停 这个按钮会暂停项目的运行。
  • 继续 该按钮在断点或暂停后恢复游戏。
有一点需要注意,如果代码是在多线程中运行,断点不会中断。 这是当前IVRScript调试器的一个限制。

错误

Docusaurus Plushie

这是运行项目时打印错误和警告信息的地方。

您可以在项目设置>调试>IVRScript中禁用特定的警告。

性能分析器

Docusaurus Plushie

性能分析器用于显示单个帧的处理和渲染时间。

Docusaurus Plushie

启动和停止分析器后,你应该看到左边有被跟踪的东西,右边有一个图表。左边列出的项目是一切有助于查看帧时间的东西,它们应该每个都有一个时间的值,并对你正在看的当前帧进行调用。 右上角的帧号告诉你当前正在查看的帧。你可以通过输入帧号或者使用帧号右边的 向上或向下箭头,或者直接点击图形来更改。

如果你想在图形中添加一些东西,或者觉得它看起来太杂乱,你可以勾选和取消勾选某项旁边的方框,以便从图形中添加或删除它。

Docusaurus Plushie

网络分析器

网络分析器包含了所有通过多人项目API进行通信的节点列表,对于每个节点,还包含了一些传入和传出网络交互量的计数器。它还具有一个带宽表,可以显示任何特定时刻的总带宽使用情况。

Docusaurus Plushie

监视

监视器选项卡 项目运行时几个方面的图表,如FPS,内存使用情况,场景中的节点数量等等。所有的监控器都会自动跟踪统计,所以即使项目运行时一个监控器没有打开,你也可以在以后打开它,查看数值的变化。

Docusaurus Plushie

显存

显存选项卡 是项目运行时的视频内存使用情况。 它按资源路径提供了每一个使用视频内存的资源列表,资源的类型,资源的格式,以及该资源使用了多少视频内存。在面板的右上方还有一个视频RAM使用总量的数字。

Docusaurus Plushie

其他

其他选项卡包含一些工具,用于识别您在运行时点击的控制节点:

  • 点击的控制 告诉你点击的节点在场景树中的位置。
  • 点击的控制类型 告诉你你点击的节点的类型是什么。

Docusaurus Plushie