赛博朋克渲染调整

赛博朋克渲染调整

通过ReShade为《赛博朋克2077》实时修复着色器:校正天空反射、增强远景湿润度和水坑效果、树木光追阴影随风同步。

[size=4][b]描述[/b][/size]

[color=#D4D4D8]Cyberpunk Render Tweaks 是一个 ReShade 插件,它在《赛博朋克 2077》运行时用修正后的版本替换单个游戏着色器,从而修复渲染器中的一些特定问题。

它不使用 ReShade 效果或后处理:游戏会自行渲染修正后的着色器,因此结果是画面本身的一部分,而不是叠加在画面之上的图层。每个调整项都可以在游戏内开闭,并且你的选择会被记住。

这是一个 [b]beta[/b] 版本。这里的所有内容都已在真实硬件上测试过,但仅在一台机器上 —— 非常欢迎反馈。[/color]

[size=4][b]安装说明[/b][/size]

[color=#D4D4D8]1. 为《赛博朋克 2077》安装 [b]带完整附加组件支持的 ReShade[/b](见“需求”)。
2. [b]手动安装:[/b] 将压缩包解压到你的《赛博朋克 2077》游戏文件夹(包含 [font=Courier New]bin[/font] 的那个文件夹)。
[b]模组管理器:[/b] 像安装其他任何模组一样安装它(Vortex、Mod Organizer 2)。
3. 启动游戏,打开 ReShade 叠加层(默认为 Home 键),然后进入 [b]Render Tweaks[/b] 选项卡。

设置会保存到附加组件旁边的 [font=Courier New]CyberpunkRenderTweaks.ini[/font] 中。

[b]卸载:[/b] 删除 [font=Courier New]bin\x64\CyberpunkRenderTweaks.addon64[/font](以及 [font=Courier New].ini[/font],如果你想的话),或者在模组管理器中移除该模组。[/color]

[size=4][b]主要功能[/b][/size]

[b]湿滑表面与积水 —— 绘制距离[/b]
[color=#D4D4D8]防止潮湿沥青在驾驶时可见地“追赶”车辆。适用于任何渲染模式。

可能是最安全的调整项 —— 它只修改一个湿滑表面像素着色器。原版使用硬编码的距离 120 / 60 / 30 / 15 米;该附加组件将这四个距离都作为滑块暴露出来,最远的可达 2000 米(其余三个可达 300 米),外加一个重置为原版数值的按钮。到目前为止我还没有注意到任何明显的帧率影响或画面瑕疵,但需要更多测试。[/color]

[compare before=https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462448-1239443591.jpg]https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462453-491660143.jpg[/compare]
[compare before=https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462423-835046205.jpg]https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462428-1863288729.jpg[/compare]

[b]树木 —— 光追/路径追踪阴影与反射[/b]
[color=#D4D4D8]修复在 RTGI / 路径追踪下随风摇摆的棕榈树、灌木和小树周围出现的黑色阴影条带。[/color]
[spoiler]
[color=#D4D4D8]游戏已经有一个计算着色器,可以对树木 BVH 应用风变形,但它的风路径实际上是禁用的。我重新启用了它,并修改了相应的树木着色器,使屏幕上的变形与 BVH 匹配 —— 在我的转储中误差在几分之一毫米之内。

两个权衡:共享同一 BVH 组的树木现在以相同的相位摇摆(但方向不同),因为风向遵循每棵树的局部旋转,而不是世界方向。在我看来,这仍然比完全禁用风要好得多。

大型静态树木不受影响。一些棕榈树底部仍有一个小黑点,可能是由于屏幕和 BVH 之间网格 LOD 不同所致。[/color][/spoiler]
[compare before=https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462486-918299018.jpg]https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462493-1819034063.jpg[/compare]

[b]用于光追/路径追踪的天空 —— 天空立方体[/b]
[color=#D4D4D8]让光追/路径追踪的光照和反射使用与你在屏幕上看到的相匹配的天空。需要光追或路径追踪。

可能是最复杂且最具争议的修复:结果通常很微妙,但在某些天气下,整体环境光会明显变暗。[/color]
[spoiler]
[color=#D4D4D8]CP2077 实际上有两个天空:一个是在屏幕上渲染的,另一个是供光追/路径追踪用于 GI、DI 和反射的简化天空立方体。后者忽略体积雾,并且生成方式不同,因此光追/路径追踪的光照和反射可能与你实际看到的天空有显著差异。

该附加组件每帧使用与屏幕天空相同的天空模型重建自己的带雾天空立方体,并将其输入光追/路径追踪以替代原版天空立方体。原版天空立方体本身未被修改。

有时光照颜色会以意想不到的方式变化 —— 例如灰色雾带上绿色色调。这主要是因为原版屏幕天空和光照天空从一开始就是不同方式生成的:原版光照天空使用与可见天空不同的 Hosek-Wilkie 参数,而新的立方体遵循可见天空。理论上,天气模组可以通过匹配这两组参数来减少这种情况 —— 尚未测试。

我已尽量保持优化。它可能会增加少量 CPU 开销,不过在路径追踪模式下,这一成本在一定程度上会被整体帧时间掩盖。[/color][/spoiler]
[compare before=https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462274-1047968472.jpg]https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462279-1591684475.jpg[/compare]
[compare before=https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462318-1390302409.jpg]https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462323-936560731.jpg[/compare]
[compare before=https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462383-738406103.jpg]https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462388-1108205260.jpg[/compare]
[compare before=https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462344-1840617673.jpg]https://staticdelivery.nexusmods.com/mods/3333/images/33943/33943-1789462350-953182802.jpg[/compare]

[size=4][b]需求[/b][/size]

[color=#D4D4D8]• [b]Cyberpunk 2077[/b] 2.31
• [b]带完整附加组件支持的 ReShade[/b](DirectX 12)—— 已用 6.8.0 测试
• 天空立方体修复需要 [b]光追或路径追踪[/b];树木修复仅在 [b]RTGI 或路径追踪[/b] 下可见。
• 不需要其他模组。[/color]

[size=4][b]兼容性[/b][/size]

[color=#D4D4D8]已与 [b]Ultra+[/b] 和 [b]OptiScaler[/b] 一起测试 —— 未发现问题。

[b]RenoDX[/b] —— 自 0.3.4 起兼容,已与 RenoDX Cyberpunk 2077 模组一起测试。有两点需要注意:
• 使用 [b]当前的 RenoDX cp2077 构建[/b](2026-09-16 或之后)。较旧的构建仍会与此附加组件冲突,并且 RenoDX 的色调映射会失效。
• 保持默认文件名。ReShade 按字母顺序加载附加组件,Render Tweaks 需要在 RenoDX [b]之前[/b] 加载 —— 不要把 RenoDX 重命名为类似 [font=Courier New]a_renodx-cp2077.addon64[/font] 的名字。[/color]

[size=4][b]致谢[/b][/size]

[color=#D4D4D8]• [b]crosire[/b] 和 ReShade 贡献者 —— 整个模组所基于的附加组件 API。
• [b]clshortfuse[/b] 和 [b]RenoDX[/b] —— RenoDX 开创了从 ReShade 附加组件替换游戏着色器和扩展根签名的做法,其代码是我学习这一切如何工作的主要参考。感谢 clshortfuse 帮助解决了两者之间的兼容性问题。
• [b]Ultra+[/b] 社区 —— 感谢其带来的灵感,促使我承担这些修复。
• [b]Dear ImGui[/b],作者 Omar Cornut —— 游戏内 UI。[/color]