Arm NSS 原生集成团结引擎,拓展移动游戏的画质与性能空间
Unity 中国宣布团结引擎原生集成 Arm NSS,提供移动端画质与性能调优方案。
Arm 与 Unity 中国共同推进了 Arm NSS(Neural Super Sampling,神经超级采样)在团结引擎通用渲染管线(URP)中的原生集成。开发者可以在 Universal Render Pipeline (URP) Asset 中配置 NSS,通过编辑器检查、运行时能力判断和 Rendering Debugger,评估Arm神经超级采样在实际项目中的画质与性能表现。
Arm NSS 已在团结引擎 1.11.0 中提供原生支持,后续会持续迭代优化。本文介绍这项集成的技术原理、主要功能和开发工作流,具体开放进展可关注官方发行说明。
以低分辨率渲染,重建高分辨率画面
更高分辨率、更丰富的光影与材质细节、更稳定的帧率,是移动游戏持续追求的目标。提高分辨率会增加像素着色、纹理采样和资源读写开销,提高帧率则要求设备在更短时间内完成这些工作。对于长时间运行的游戏,团队还需要考虑功耗表现。
Arm NSS 通过低分辨率渲染与神经重建,为开发者提供了调整 GPU 预算的空间。引擎先渲染低分辨率颜色画面,再结合深度、运动矢量、亚像素采样偏移和历史状态,重建目标分辨率输出。
下方的效果展示采用 1400 × 630 输入、2800 × 1260 输出,对比 NSS 与 FSR + TAA。输入的宽、高分别为目标分辨率的一半,对应四分之一的基础渲染像素数。开发者可以观察连续运动中的纹理、细线和边缘,以及遮挡变化后新露出区域的表现,评估降低基础渲染分辨率后的画面质量。
NSS 与 FSR + TAA 画面对比:观察连续运动中的纹理细节、边缘与遮挡变化。输入分辨率为 1400 × 630,输出分辨率为 2800 × 1260。
基础渲染像素数减少,会改变部分渲染工作的成本;整帧 GPU 时间还包含几何处理、阴影、后处理和 NSS 重建开销。因此,实际收益需要在相同设备、场景与输出目标下测量。
神经网络如何参与重建
Arm NSS 结合当前帧与历史帧信息,获取运动矢量、抖动、深度等,通过神经网络预测上采样和重建所需的参数和滤波等信息,在着色器中进行处理,从而完成高分辨率画面的重建。神经网络并非直接生成最终高分辨率图像,而是为重建过程预测关键参数。这些参数参与空间细节重建和对历史信息的重投影及校正,帮助处理场景内的运动,材质细节与遮挡变化。
引擎持续提供重建所需的信息
超分的时序重建需要持续、准确的渲染数据。画面中的快速运动、细小几何和遮挡变化,既依赖重建策略,也依赖输入与历史状态是否有效。
团结引擎负责整理这些输入。对于特殊材质、顶点动画等,开发者可以通过调试视图检查输入是否与实际画面一致。
引擎还为启用 Arm NSS 的相机维护独立状态,由 SDK 管理历史画面。在分辨率或质量模式变化、收到历史重置请求,集成会更新相应状态,为后续重建提供有效的历史信息。
在 URP 中配置渲染比例与质量模式
使用包含 Arm NSS 支持的团结引擎与 URP,并启用 Arm 内置模块后,开发者可在实际生效的 URP Asset 中,通过 Quality > Advanced Upscaling Filter 添加 ArmNSS。列表中的显示名称为 Arm Neural Super Sampling (NSS)。
在 Arm NSS Settings 中,当前提供三种 NSS 质量模式(Quality Mode):
质量模式与 Render Scale 独立配置。Render Scale 控制基础渲染分辨率,质量模式决定重建质量与处理成本的取舍。切换质量模式不会自动改变渲染比例。开发者可以比较各模式的画面与耗时,再根据项目目标调整 Render Scale。
当前 NSS 生效时的 Render Scale 下限为 0.4的比例。评估超分应选择小于 1.0 的比例;设为 1.0 时,当前路径不执行超分功能。例如,Render Scale 为 0.5 时,基础渲染的宽、高各减半,实际项目可结合内容选择合适的比例。
平台与相机设置
当前Arm NSS在移动端路径主要面向 Android、IL2CPP、AArch64 与 Vulkan 1.3,设备驱动还需要原生支持 NSS 所需的 Arm ML Extensions for Vulkan。引擎会检查实际设备能力,确认 NSS 是否可用。
渲染配置使用 URP 的 Universal Renderer 兼容路径,关闭 Render Graph、开启 HDR,并关闭 MSAA。相机需开启后处理、关闭动态分辨率,并使用没有 Overlay 堆叠的 Base Camera。当前使用范围不包含 XR 和 Parallel Rendering。
引擎负责组织所需的深度、运动矢量和时序采样,开发者无需额外添加 NSS Renderer Feature,也无需另外叠加一个 TAA 重建过程。这里的 HDR 要求指渲染输入数据,并不要求玩家使用 HDR 显示屏。Arm后续也计划支持SDR渲染。
下面的配置录像展示了团结引擎 Editor 中的 NSS 设置流程,便于对照前述选项完成项目配置。
团结引擎 Editor 配置演示:在 URP 中启用 Arm NSS,并设置渲染比例、质量模式及相关选项。
编辑器检查与可观测的重建过程
团结引擎原生集成将NSS功能在编辑器的配置反馈纳入了日常开发流程。URP Inspector 会对 Vulkan、HDR、MSAA、目标平台及 Arm 模块等条件提供提示,Android 的 IL2CPP、AArch64 配置问题还提供相应修复入口。引擎运行时会根据实际设备和相机配置再次检查,决定是否执行 NSS。如果不支持NSS时会执行fallback超分方案(编辑器中Advanced Upscaling Filter选项选择)。
使用 Rendering Debugger 检查输入与历史
开发者可在 Window > Analysis > Rendering Debugger 中,将 Map Overlays 设为 Arm NSS,查看低分辨率输入颜色、深度、运动矢量、历史颜色、遮挡变化掩码和时序反馈等信息。All Tiles 提供 4 × 4 调试总览,方便在同一画面中对照输入与中间状态。
当动态物体的重建表现不符合预期时,可以先检查运动矢量,再观察历史颜色与遮挡变化。对输入与中间状态的观察,有助于将画面问题定位到具体渲染环节。
在 Windows Editor 中预览
Windows Editor 可通过 Vulkan 与仿真层运行 NSS,帮助团队开展接入和画面调试。设备缺少所需 Arm ML 扩展时,可用 -arm-ng-emulation 启动参数启用 Editor 内置的 Graph 与 Tensor 仿真层,并以普通用户权限启动 Editor。
Editor 预览用于验证工作流和重建输入。最终画质、GPU 耗时、功耗与持续负载表现,应在支持所需能力的目标 Android 设备上评估。
条件不满足时的回退
当 NSS 不满足使用条件时,引擎会执行fallback兜底超分方案(编辑器中Advanced Upscaling Filter选项选择)。已经进入 NSS 后,可检测的本帧准备失败会通过复制输入画面提供保底输出。这些处理有明确的检测范围,后续原生执行错误仍需结合日志诊断。
从 SDK 能力到引擎工作流
Arm 与 Unity 中国的工程协作覆盖算法、资源桥接、渲染管线、兜底方案和开发工具。
Arm Neural Graphics SDK 提供 NSS 算法与 GPU 执行能力;通过桥接适配层连接引擎 Vulkan 资源与 SDK;团结引擎负责每帧输入、执行位置、相机状态,兜底方案以及配置、调试和构建流程。
引擎负责每帧的数据准备与执行衔接,原生插件将渲染资源交给 SDK 完成重建,再将结果接回 URP 的后续处理与最终输出。底层对接由集成承担,开发团队可以在熟悉的工作流中围绕内容、质量设置和性能目标开展评估。
Android 构建集成
Android 构建流程会根据目标平台的管线配置加入所需的 NSS 支持。开发者应使用包含相应 Android 支持的引擎,并将启用 NSS 的 URP Asset 配置到目标平台的 Graphics 或 Quality 设置中。
当前 Android 首期交付与验证以标准 AndroidPlayer 的 IL2CPP、AArch64、APK 路径为准。完成项目配置后,团队可进一步推进目标设备上的功能验证。
根据项目目标评估画质与净收益
对于像素着色与相关资源读写开销较高的项目,NSS 值得纳入技术评估。降低基础渲染分辨率可以减少部分 GPU 工作,但预处理、神经推理和重建也会增加成本。实际净收益取决于二者的关系,以及设备上剩余的瓶颈。
团队可先固定输出分辨率、场景和相机运动,再对比质量模式与渲染比例。画质评估重点观察连续运动中的细节稳定性、快速运动、遮挡变化和镜头切换;性能评估则比较整帧 GPU 耗时与 NSS 阶段开销。功耗和热表现,需要在固定目标帧率及持续负载下单独测量。
如果项目主要受 CPU 或游戏逻辑限制,减少像素渲染成本可能不会提高最终帧率。基础渲染像素数减少至四分之一,也不意味着整帧 GPU 时间同步减少 75%。
当扣除 NSS 开销后仍有预算结余,开发者可以将它用于更稳定的帧率、更复杂的光照、材质与后处理,或减少持续负载。明确项目目标后选择配置,有助于把技术收益转化为实际游戏体验。
从像素重建延伸至帧生成
Arm 与 Unity 中国的合作将继续向 NFRU(Neural Frame Rate Upscaling,神经帧率提升) 推进。NSS 重建一帧内部的像素,NFRU 则在渲染帧之间生成中间画面,探索更平滑的运动呈现。
当前 SDK 已包含帧生成相关能力,团结引擎原生集成仍是后续方向,具体开放安排将以官方进展为准。
欢迎关注团结引擎官方平台,了解功能更新、开发资料与技术交流入口。我们也期待与开发者交流 NSS 在实际项目中的需求和实践,共同推进神经图形能力在移动游戏中的应用。
长按关注
Unity 官方微信
第一时间了解 Unity 引擎动向,学习进阶开发技能
每一个“点赞”、“在看”,都是我们前进的动力
点击“阅读原文”,了解 Unity 中国的产品与服务!
来源:Unity官方平台 · mp.weixin.qq.com