bg3fgvk - Vulkan DLSS FG - 与DLSS5兼容

bg3fgvk - Vulkan DLSS FG - 与DLSS5兼容

免费、开源的DLSS帧生成(x2/x3/x4),适用于博德之门3在Vulkan上的运行,通过NVIDIA Streamline实现。利用游戏自身的DLSS获取深度和运动矢量;驱动生成并调节帧率。与Script Extender和MCM兼容。RTX 40(x2)/RTX 50(x3,x4)。解压到bin目录,在游戏中启用DLSS,即可游玩。兼容DLSS5。

描述

bg3fgvk 为以 Vulkan 模式运行的《博德之门 3》添加 NVIDIA DLSS 帧生成(x2、x3 或 x4)功能。它是免费且开源的。

游戏自带的 DLSS 超分辨率已经能生成帧生成所需的深度和运动矢量;bg3fgvk 将这些数据传递给 NVIDIA Streamline,由 NVIDIA 驱动生成并调度额外的帧。它不包含替代性上采样器,没有自己的菜单,也不需要账户或密钥。在 1440p 分辨率下,原本 30-35 fps 的场景在 RTX 50 系列显卡上使用 x4 模式可以显示约 120-140 fps。

它可以与《博德之门 3》脚本扩展器以及通过其绘制 UI 的模组(包括模组配置菜单)同时运行。

它还通过 OptiScaler DLSSNR 分支兼容 DLSS 5 神经渲染。请参阅下方的“DLSS 5”章节。

源代码和问题追踪:github.com/thierbig/bg3fgvk

安装说明

  1. 如果您还没有安装 Native Mod Loader:请手动下载,将其 bin 文件夹解压覆盖到游戏的 bin 文件夹中,并允许其替换 bink2w64.dll。确保存在 bin\NativeMods\ 文件夹。
  2. 将 bg3fgvk zip 文件的内容解压到游戏的 bin 文件夹(包含 bg3.exe 的那个文件夹)。如果提示,请合并 NativeMods 文件夹。最终您会得到 bin\NativeMods\fgvk.dllbin\NativeMods\Streamline\(NVIDIA Streamline 运行时,请保留在该位置)。
  3. 在游戏的视频设置中:渲染器选择 Vulkan,上采样设置为 DLSS(任意质量,或 DLAA)。在 Windows 中:设置 > 系统 > 显示 > 图形 > 默认图形设置 > 开启“硬件加速 GPU 计划”。

载入存档。帧生成会在进入世界几秒后自动开启,并在加载界面和菜单中暂停。小键盘 * 键用于切换开关,End 键用于循环切换 x2/x3/x4。

设置保存在 bin\NativeMods\fgvk.ini 中(首次启动时创建)。日志文件:bin\fgvk.logbin\sl.log

卸载:删除 bin\NativeMods\fgvk.dllbin\NativeMods\Streamline\

注意:如果启动失败后游戏的视频设置中 DLSS 选项消失,只需重新选择即可。

DLSS 5 神经渲染与帧生成同时使用(可选,仅限 RTX 50 系列)

当通过 OptiScaler DLSSNR 分支 提供 DLSS 5 神经渲染时,bg3fgvk 可与其协同工作。OptiScaler 将游戏的 DLSS 调用传递给驱动,并在 UI 绘制之前对上采样后的图像运行神经渲染模型。bg3fgvk 读取相同的图像,因此生成的帧也会携带神经渲染的结果。您可以同时获得 DLSS 超分辨率、神经渲染和 x4 帧生成。

请先安装 bg3fgvk(参见上述步骤),然后:

  1. 下载 OptiScaler DLSSNR 发布版 zip 文件,并将所有内容解压到游戏的 bin 文件夹(包含 bg3.exe 的那个文件夹)。您会得到一个 OptiScaler 文件夹、一个 Licenses 文件夹、nvngx.dll_dlssnr.dllOptiScaler.dllOptiScaler.ini

  2. OptiScaler.dll 重命名为 dxgi.dll。此游戏请勿使用 winmm.dllbg3.exe 无法直接加载它。您可以跳过设置 .bat 文件,手动完成重命名。

  3. nvngx_dlssnr.dll(DLSS 5 模型,约 165 MB)放在同一个 bin 文件夹中。该文件来自 NVIDIA 驱动包,不包含在 OptiScaler zip 中。在 RTX 50 系列上使用原版文件;不要将其重命名为 nvngx_dlssd.dll。您可以从 RenoDX Discord 获取此 .dll 文件。

  4. 使用文本编辑器打开 bin\OptiScaler.ini 并设置以下行(搜索每个键,它们位于不同的章节中):

    • [Upscalers] VulkanUpscaler=dlss
    • [DlssNr] Enabled=true
    • [Spoofing] StreamlineSpoofing=false
    • [Spoofing] Dxgi=false

    VulkanUpscaler=dlss 是必需的。OptiScaler 对 Vulkan 游戏的默认值是 FSR 2.2,这会静默替换游戏的 DLSS。关闭欺骗功能可让 Streamline 看到您真实的 GPU,否则多帧生成可能会被限制为 x2。

  5. 启动游戏,载入存档并游玩。神经渲染已通过 ini 开启,因此您完全无需打开 OptiScaler 菜单。帧生成会照常启用。

注意事项:

  • 原生分辨率下的神经渲染开销较大;请预期您的渲染帧率会明显下降,而帧生成会在此基础上倍增。[DlssNr] 下的 WorkingScale(例如 0.75)会以较低分辨率运行模型,以少量细节换取帧率。
  • NVIDIA App 的每游戏 DLSS 覆盖功能可与该技术栈配合使用,但其帧生成覆盖会锁定倍率,并使 End 键失效。
  • 请将 ReShade / RenoDX DLSS 5 文件移出 bin 文件夹。该路径无法与帧生成共存。
  • 已在 RTX 5070 Ti 和驱动 610.88 上确认可用,尽管 OptiScaler DLSSNR 说明要求 616.56 或更新版本。
  • 日志:除了 fgvk.logsl.log 之外,还有 bin\OptiScaler.log(在 [Log] 下设置 LogToFile=true)。

要移除 DLSS 5 并保留帧生成,请从 bin 文件夹中删除 dxgi.dllOptiScaler.iniOptiScaler.lognvngx.dll_dlssnr.dllnvngx_dlssnr.dll 以及 OptiScalerLicenses 文件夹。bin\NativeMods 中的 bg3fgvk 不受影响。

主要特点

  • DLSS 帧生成 x2、x3 或 x4(RTX 50 系列上支持多帧生成)。
  • 通过 NVIDIA Streamline 在驱动侧生成和调度帧:与商业游戏使用的 DLSS-G 相同,而非用户态重新实现。
  • 每帧提供游戏真实的 DLSS 深度、运动矢量、抖动和无 UI 图像,因此 UI 不会在动态背景上产生拖影。
  • 通过 OptiScaler DLSSNR 分支兼容 DLSS 5 神经渲染:生成的帧会携带神经渲染的结果。
  • 自动启用 DLSS-G 所需的 Reflex 低延迟 + 加速功能。
  • 在 3D 世界渲染时自动开启,在菜单、加载界面和视频中自动关闭。不会因重新创建资源而产生卡顿。
  • 与脚本扩展器和 MCM 共存:该模组会路由 Vulkan,使扩展器的覆盖层绘制在实际呈现的帧上。
  • 快捷键:小键盘 * 开/关,End 循环切换倍率。两者均可通过 fgvk.ini 重新绑定。
  • 开源,MIT 许可。提供详细日志以帮助故障排查。

系统需求

  • NVIDIA RTX 40 系列(x2)或 RTX 50 系列(x3 和 x4)。不支持 AMD/Intel:这是 NVIDIA DLSS-G 技术。
  • 以 Vulkan 模式(默认的 bg3.exe,而非 DirectX 11)运行《博德之门 3》,并在视频设置中启用 DLSS。
  • Native Mod Loader
  • 对于 DLSS 5:RTX 50 系列、OptiScaler DLSSNR 分支以及您自己的 nvngx_dlssnr.dll 副本。

致谢

  • NVIDIA,感谢其提供的 Streamline SDK 和 DLSS 帧生成技术,并公开了 Streamline 的源代码,这使得该集成可以被调试。
  • Norbyte,感谢其开发的《博德之门 3》脚本扩展器。
  • Native Mod Loader 的作者,该模组负责加载此扩展。
  • Microsoft Detours,用于实现钩子。
  • PureDark,其 BG3 帧生成工作为了解游戏缓冲区结构提供了参考。
  • !FingerPaint 帮助找到了与 Dagherbou 配合的方案,以及感谢 OptiScaler DLSSNR 分支的作者,还有 clshortfuse(RenoDX),该分支的 DLSS 5 色彩合成构建在其工作基础之上。