优化你的游戏是配置你的资产和Studio设置的过程,以保持在内存和图形处理单元(GPU)有限的设备上高帧率和性能水平。这个过程确保几乎每个用户在查看你的环境时都有相同的游戏体验和视觉体验。
使用环境艺术 - 优化 .rbxl 文件作为参考,本节环境艺术课程向你展示如何审查和配置你的地方文件以获得最佳图形,包括以下指导:
- 审查每个资产的物理和渲染参数,以确认它们保持内存和引擎性能。
- 剔除多余的纹理、几何体或透明度,这些会不必要地增加Roblox引擎在渲染你的资产时必须执行的计算量。
虽然Roblox引擎为你处理大部分优化工作,但你可以通过利用微型分析器来帮助这些优化工作,以查看渲染特定帧所需的时间。利用这些信息,你可以做出明智的决定,了解哪些资产需要关注其参数或多余内容。场景分析是另一个强大的工具,用于检查资源使用情况。

审查物理和渲染参数
在组建资产库中,你了解到设置物理和渲染参数的重要性,这些参数允许你的资产在内存和GPU有限的设备上保持高视觉质量。然而,在构建环境时,根据资产在游戏中的上下文位置和目的调整这些参数是很常见的。例如,最终样本激光标记环境中的大部分植被尽管有性能成本,但仍然投射阴影,因为这增加了环境的真实感。
当你修改物理和渲染参数时,在开发过程接近尾声时审查所有参数以查看你可以在哪里优化参数,同时保持美学目标和游戏需求是很有用的。举例来说,你可以禁用游戏区域边缘附近植被的BasePart.CastShadow属性,以节省性能,而不干扰用户的游戏或视觉体验。


剔除非必要内容
在审查完你的物理和渲染参数后,你可以审查资产本身,以查看你可以从游戏中剔除哪些非必要内容,这些内容不会影响你的游戏玩法,例如具有不同资产ID的相同纹理、具有许多顶点的复杂几何体,或根据相机视图重叠的透明度。以下部分详细说明你可以做些什么来审查这些内容,以及它们如何帮助优化工作。
删除重复纹理
在你开发资产和构建环境之间过渡时,通常会在找到符合美学目标或游戏需求的必要内容时对网格或纹理进行迭代。如果你不将资产转换为包,当你将这些迭代导入Studio时,你会创建Roblox引擎需要引用的唯一资产ID,以便在环境中渲染你的资产。
例如,如果你分别将以下两个消防栓网格导入Studio,即使它们在外观上完全相同,Roblox引擎也会将它们视为具有唯一资产ID的两个对象。引擎需要进行的唯一调用越多,对内存和性能的影响就越大。因此,确认在多次重用资产时,每个资产实例使用相同的资产ID是很重要的,这样引擎只需进行一次调用即可重复渲染。

优化几何体
如果你发现需要进行更多调整以提高设备间的帧率,查看你可以通过以下方式优化几何体是很有用的:
- 将一组网格合并为一个资产。
- 减少具有几何复杂性的资产的多边形数量。
扩展第一个技术,每个游戏中的唯一资产代表GPU上的一次绘制调用,它向GPU发送信号以调用信息,以便Roblox引擎正确渲染资产。你拥有的唯一资产越多,系统需要进行的绘制调用就越多。因此,如果你有一组网格构成游戏中的一个更大组件,你可以在第三方建模工具中将它们组合在一起,以减少多次绘制调用的需要。
为了说明这一点,最终样本激光标记环境将多个部件和网格组合在一起,以创建建筑外部的大塔。如果你将所有这些单独的组件组合在一起,你可以将其制作成一个只有一个资产ID的单一资产,并将绘制调用的数量从8减少到1。然而,重要的是要注意,这种技术会移除你自由更改每个组件的视觉和物理特征的能力,例如其位置或材料。
例如,在以下图像中,左侧的塔仍然是多个资产在Model对象下,而右侧的塔是一个单一资产。你可以单独修改左侧塔的每个组件,但当你修改右侧塔时,例如将其颜色更改为黑色,它会影响整个对象。这就是为什么在环境开发接近尾声时考虑这种技术很重要,当你知道在哪里可以提高性能而不影响美学目标时。

扩展第二个技术,具有几何复杂性的资产具有更多多边形,这意味着它们有更多顶点,引擎在渲染其视觉外观时需要计算这些顶点。这意味着具有较少复杂性和保真度的资产在渲染时成本较低,从而提高性能和内存。
删除分层透明度
为了给环境提供真实感,最终样本激光标记环境包括许多具有不同透明度级别的网格,例如户外空间的植被、未来派标志或花坛栏杆上的玻璃。当相机查看多个半透明对象时,这些对象在彼此前面或后面,Roblox引擎必须多次渲染重叠的像素,以考虑透明区域。这个过程称为高透明度过度绘制,它对性能产生了显著影响。
例如,考虑以下样本环境中花坛的视图。引擎必须分层渲染从离相机最近的植物到离户外区域最近的植物之间的叶子透明区域,这相当于数十万个过度绘制的像素。为了减轻这种影响,审查环境中所有半透明对象的布局,并确保没有太多重叠层,尤其是在屏幕的大区域中是很重要的。


当你完成审查所有内容以确保其在设备间的最佳状态时,你的游戏现在准备好发布了!