微软首次推出 Advanced Shader Delivery(ASD)一年之后,这项技术正在向主流游戏引擎和数字商店铺开。Epic 最近更新了 Unreal Engine 5.x 的官方文档,其中一项变化值得关注:UE 5.8 将通过一个内置的命令行工具,原生支持微软的 ASD 技术。
![]()
着色器编译卡顿是当下 PC 游戏最糟糕的问题之一,而 Unreal Engine 5 在这方面尤其出名——它往往让情况变得更糟。微软 ASD 的思路是把一部分着色器编译负载从本地 PC 上挪走,为此引入了两项技术:State Object Database(SODB)和Precompiled Shader Database(PSDB)。前者为存储游戏数据提供标准化格式,后者则充当预编译着色器的远程缓存。
按照 UE 的新文档,着色器通常在 Direct3D 12 游戏首次启动时编译。GPU 驱动把着色器编译成针对特定 GPU 的代码,游戏则创建 Pipeline State Objects(PSO),用来保存配置 GPU 渲染管线所需的状态。
UE 5.8 附带的 ASD Tool 可以从一个“cooked”的 Windows 游戏构建中生成 SODB。每个 SODB 对应一个特定游戏构建,包含该构建的着色器与 PSO 数据。第三方数字商店随后可以利用这些数据库,为多个受支持的 GPU 家族和驱动版本编译并分发着色器数据。
这套多步骤流程有望显著减少着色器编译卡顿,但限制也很明确:
- ASD Tool 目前只支持使用 Shader Model 6 的 Direct3D 12 游戏;
- 不支持光线追踪 PSO;
- 游戏构建一旦对着色器做出改动,开发者就需要重新生成 SODB。
Epic 同时提醒,ASD 和 ASD Tool 的定位是补充现有 UE 功能,包括 PSO 预缓存和打包的 PSO 缓存。两者都用于缓解着色器编译卡顿,Epic 建议开发者在采用 ASD Tool 之后仍然保持 PSO 缓存开启。换句话说,卡顿问题眼下还没有一劳永逸的解法。
落地节奏上,游戏工作室已经可以向 Microsoft Store 提交编译好的 SODB,对 Steam 和 Epic Games Store 的支持预计在 2027 年初到来。基于 ASD 的方案要求用户安装较新的显卡驱动,但这项技术最终预期会支持多家厂商的游戏级 GPU,并在 PC 和移动设备上都有应用。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.