给《绝地潜兵 2》补中间帧的第三方帧生成器,跑在游戏进程内,不依赖任何驱动特性,N 卡 A 卡 I 卡通用。
更多细节请阅读readme.md
图片为2K环境下,3080ti,原生超级采样模式,不开插帧情况下帧数在50左右,开了在100附近。
游戏渲染第 N 帧时,在 Present 前插入一帧合成画面:
代码块
上一帧 N-1 ──┐
├─ 算光流(1/4 分辨率)→ 合成中间帧 G(N-1,N) → 连续 Present 两次
当前帧 N ───┘
每源帧出 2 帧,上屏帧率翻倍;生成帧不参与游戏逻辑,纯显示层增强。
HD2 实测(RTX 3080 Ti / Win11 26H2 / EAC 环境)
环境要求
重要限制
运行中修改以下设置会让插帧在本次会话内失效,必须退出游戏重进:
不受影响:画质预设、DLSS/FSR/XeSS、抗锯齿、垂直同步、帧率上限——改完立即正常。
调优(改 ini + 换 HLSL,立即生效,无需重装 mod)
更多细节请阅读readme.md
图片为2K环境下,3080ti,原生超级采样模式,不开插帧情况下帧数在50左右,开了在100附近。
游戏渲染第 N 帧时,在 Present 前插入一帧合成画面:
代码块
上一帧 N-1 ──┐
├─ 算光流(1/4 分辨率)→ 合成中间帧 G(N-1,N) → 连续 Present 两次
当前帧 N ───┘
每源帧出 2 帧,上屏帧率翻倍;生成帧不参与游戏逻辑,纯显示层增强。
HD2 实测(RTX 3080 Ti / Win11 26H2 / EAC 环境)
分辨率 | 关插帧 | 开插帧(源 → 上屏) | 生成失败 |
2560×1440 HDR | 80 fps | 82.7 → 165 fps | 0 |
3840×2160 HDR | ~64 fps | 64.4 → 128 fps | 0 |
- 计算开销:光流 0.46 ms + 混合 0.11 ms ≈ 0.57 ms/帧
- 合成质量:PSNR 32.04 dB(对照"直接两帧平均"仅 22.08 dB,+10 dB)
- 关键特性:源帧率低于刷新率一半时几乎零代价(用掉本来空转的 vblank)
模块 | 做法 |
光流 | 单像素全搜(半径 16 px)+ 3×3 复核 + 4 级细化 + 抛物线亚像素 |
遮挡 | 双向一致性检验 + 分歧度抑制 |
UI 保护 | 静止像素检测(时间差 <3.5%)+ 1px 梯度描边 → 命中就硬拷贝真帧,彻底消除 HUD 闪烁 |
呈现 | vtable 克隆 hook Present/Present1,双 Present |
项 | 要求 |
游戏 | HELLDIVERS 2(本版针对其调校;其他 D3D12 游戏理论可用,未适配) |
API | D3D12 + 翻转模型 + ≥3 back buffer |
系统 | Windows 11 24H2 / 26H2 |
驱动 | NVIDIA 32.0.16.1664(616.64)实测环境;其他版本理论无影响 |
mod 环境 | 支持 Lua mod 的加载器(实测 Arsenal + MDL3),本 mod 需排最高优先级 |
显示器 | 144 Hz 以上收益最明显 |
运行中修改以下设置会让插帧在本次会话内失效,必须退出游戏重进:
- 分辨率(2K ↔ 4K)
- 渲染比例 / 分辨率缩放
- 全屏 / 无边框 / 窗口化
- HDR 开关
不受影响:画质预设、DLSS/FSR/XeSS、抗锯齿、垂直同步、帧率上限——改完立即正常。
调优(改 ini + 换 HLSL,立即生效,无需重装 mod)
- 拖影 → flowRadius 12→16
- UI 残留 → hudProtect 提到 1.0
- 想要更准 → flowDownscale 4→2(慢 4 倍)
- 着色器热替换:%LOCALAPPDATA%\SMFG\shaders\blend.hlsl
- 只支持 D3D12;源帧率顶到刷新率时无收益
- 快速旋转镜头可能有轻微拖影(物理限制)
- 载入画面、过场动画等低帧率场景效果不明显