屏幕空间阴影与反射修复

创作者: linehand
已更新:2024-08-19 21:50:00
12KB

关于此 MOD

V2.0版本更新!现已支持将渲染图像扩展至显示边界之外,有效修复视口边缘的屏幕空间特效伪影问题。仅包含两项优化效果,对性能影响微乎其微。在保持原版风格与美学的前提下实现零视觉风格改动。
简单的ReShade过度渲染与裁剪修复方案。将渲染图像放大至超出显示边界。 消除视口边缘周围大部分最严重的屏幕空间效应伪影。. 只有两种效果(V1.0为单效版本) 绝对最小的性能影响. 零改变原版风格/美学 超越消除人工痕迹。

V2.0模组更新是一次重大升级。详情请见下文,并观看展示V2.0版本游戏实况的全新视频。
如有任何问题,或需要安装与设置方面的帮助,只需在上方的帖子栏中提出请求,我会尽快回复。


TL:D 太长不看R

在《荒野大镖客2》中,屏幕空间阴影与反射在画面边缘的突然截断问题处理得较为粗糙——当产生这些阴影或反射的源物体移出屏幕空间时,其对应效果会生硬消失,这种现象普遍显得不够自然,视觉效果较差。

此ReShade预设通过简单地将渲染图像略微放大,将那些伪影推离屏幕,从而消除了大部分屏幕空间伪影。本质上,这是一种标准解决方案。 过度渲染并裁剪 实施。

V2.0 它完全在用户界面之下运行,因此能够对渲染图像进行更大范围的缩放与裁剪(且不影响用户界面),从而有效消除屏幕边缘几乎所有的横向显示空间伪影(这些伪影往往是最刺眼明显的)。

V2.0 在用户界面之下运行,意味着几乎所有其他模组现在都应实现100%兼容,即便它们添加了用户界面元素。

V2.0 除了用于放大图像的单一DisplayMod效果外,还包括一个锐化效果,以有效补偿图像放大过程中产生的轻微模糊。我选择了METEOR NVsharpen效果,因为它兼具高性能和无可见伪影的特点,并且其图像质量与放大前的图像质量非常接近。因此,虽然放大图像确实会轻微影响图像质量,但微妙的锐化效果完全弥补了这一点,最终生成的图像仅比原始图像略微锐利一些。


V2.0 是 仅兼容DX12。 我希望能让它在Vulkan上运行,但目前ReShade的REST插件还无法在《荒野大镖客2》的Vulkan版本中将特效注入到用户界面下方。 有没有图形程序员想深入研究REST插件的源代码,帮助使其在Vulkan上运行?

V2.0 是 与DLAA/DLSS/FSR不兼容。 它与游戏的兼容性良好。 分辨率缩放 设置,在性能相当的情况下提供比DLSS更好的图像质量。因此,如果您需要DLSS来提升性能,我建议转而使用游戏的 分辨率缩放 设置为0.8倍或0.75倍。 Mod V1.0 能够与DLAA/DLSS/FSR良好兼容。

V1.0 将继续保持可用,并且 V1.0版本可与Vulkan兼容使用。,但没有用户界面支持。 行走速度控制与自动行走 模组由 Taki7o7 (已在V2.0版本中替换为完整的游戏界面支持)然而, 目前,我强烈推荐使用DX12(配合此模组的V2.0版本)而非Vulkan。.


安装

非常详细的说明,尽管实际上非常简单(嗯,V1.0版本确实很简单,2.0版本需要稍多设置,但绝对值得)。如果你已经为《荒野大镖客2》安装了支持插件的ReShade,直接获取此插件的最新版本即可。 ReShade效果着色器切换器 (.addon64文件需放置在游戏根目录,.fx文件则需放入Red Dead Redemption 2\reshade-shaders\Shaders\REST文件夹中)。接着将此模组的所有文件解压至游戏根目录。请务必在ReShade中设置一个切换热键以启用/禁用特效,因为您可能偶尔需要临时关闭此修复功能(V2.0版本几乎无需关闭,但仍建议预先配置热键作为备用选项)。

关于V2.0的重要注意事项:
  • 如果您之前在游戏显示设置中按照V1.0版本的要求,将"UI安全区域"设置为90%,现在可以将其调回100%(或您偏好的任意数值)。因为V2.0版本不再需要特定的UI安全区域设置。
  • V2.0版本应完全在游戏用户界面之下运行(全尺寸地图除外)。
  • 游戏V2.0版本中唯一的界面问题是,当打开全尺寸地图时,此预设激活状态下无法正常使用——因此我附上了AutoHotkey脚本(适用于AutoHotkey V1.1+和AutoHotkey V2+版本),可在打开全尺寸地图时自动禁用本模组效果,关闭全尺寸地图时重新启用。更多AHK相关信息请参阅下文。
  • V2.0 目前仅支持 DX12。如需使用 Vulkan,请选择 V1.0 版本。

关于V1.0的重要注意事项:
请务必进入游戏内的显示设置,将“UI安全区域”调整为水平90%和垂直90%。 (V2.0 版本中已无需此步骤).


逐步安装指南:
这些说明适用于 两个版本:模组1.0版和2.0版。 以“开始”的步骤适用于模组版本1.0" 或  "适用于模组版本2.0仅适用于该特定版本,且应 跳过  如果您正在安装不同版本。

  • 将此模组的压缩文件内容解压至《荒野大镖客2》游戏目录中。
  • 如果您正在使用V1.0版本并启用了Vulkan,请从游戏目录中删除ReshadeEffectShaderToggler.ini文件(该文件在上述步骤1中已放置于该目录)。
  • 下载最新版本的 ReShade (请务必选择支持附加组件的版本)
  • 为RDR2.exe安装ReShade,并且 选择Vulkan 选项(即使在使用此模组的V2.0版本配合DX12时,因为 为Vulkan安装ReShade将使ReShade同时兼容DX12和Vulkan运行环境。而安装适用于DX10/11/12的ReShade仅能在《荒野大镖客2》的DX12模式下生效,无法兼容Vulkan渲染器,因此针对该游戏通常建议选择ReShade的Vulkan安装方案。
  • 在自动驾驶汽车的发展过程中, 效果选择步骤 关于ReShade安装的 要么 切换 关闭 然后 开启 为了“选择所有效果”选项 安装所有ReShade效果, 或 在底部,输入此模组的ReShadeRDR2fix.ini文件路径(该文件应已放入游戏目录中),并选择启用。 仅下载该预设所需的特效.
  • 在ReShade安装的附加组件选择步骤中,请务必至少选择 ReShade效果着色器切换器 通过 亚历山大 (通常被称为 REST)
  • 适用于模组版本2.0此外,您还需要安装 AutoHotkey(AHK),如果你尚未安装,请下载v2.0或v1.1版本(我推荐v2.0,但两个版本的脚本均已提供,因此均可使用)。建议将AHK安装到默认路径,否则部分功能可能无法正常使用。
  • 适用于模组版本2.0在《荒野大镖客2》游戏主目录中,找到与你安装/使用的AutoHotkey版本对应的.ahk脚本文件。若使用AutoHotkey v1.1版本,请选择ReShade_RDR2fix_Map_AHKv11.ahk;若使用AutoHotkey v2.0版本,则选择ReShade_RDR2fix_Map_AHKv2.ahk。请根据你的AHK版本选择对应的脚本文件,并在你通常启动RDR2的快捷方式旁,为该脚本文件创建一个快捷方式。
  • 适用于模组版本2.0双击您刚刚创建的快捷方式以启动脚本,很可能会收到用户账户控制提示要求您确认,这是此功能正常运行所必需的(出于安全考虑,请参阅下方关于AHK脚本的详细信息)。
  • ReShade安装完成后(以及此模组2.0版本所需的AutoHotkey),启动游戏(首次运行时ReShade可能需要一些时间编译着色器),随后在《荒野大镖客2》的初始标题菜单界面,轻按 首页 按顺序按键以打开ReShade叠加层,然后完成教程或跳过它,接着选择 设置 在ReShade的标签页中,靠近顶部位置,为切换效果分配一个快捷键(我建议 上翻页,或 结束)
  • 适用于模组版本2.0通常情况下,你很少需要使用那个快捷键来禁用所有效果,但在游戏中浏览目录时,你可能更倾向于使用该快捷键来禁用效果(请参阅下方的兼容性信息)。
  • 适用于模组版本1.0 在某些时候,你需要使用那个切换效果的热键,来暂时禁用所有的ReShade效果,比如在这里,在开始菜单、设置菜单、地图屏幕上,因为点击选项/路径点的活动区域不会与缩放后的图像完美对齐(别担心,十字准星或屏幕中央的任何东西都会完美对齐,而且鉴于键盘/控制器UI导航不受影响,这在游戏中对于大多数活动来说并不是真正的问题)。
  • 在离开ReShade设置选项卡之前,我建议您开启以下选项: 仅加载已启用的效果为了速度和性能。然后点击 首页 在ReShade用户界面的顶部标签页中,位于首页标签旁(即两个箭头< >旁)会显示当前加载的预设名称。若此处未显示预设信息, ReShadeRDR2修复补丁 在那里,然后使用箭头切换到 ReShadeRDR2修复补丁 预设。
  • 适用于模组版本2.0,右键点击 ReShadeRDR2修复补丁 然后会出现一个用于分配热键的方框,点击方框,接着按下 [ 键(左方括号),然后使用方向键 < > 进行切换。 修复《荒野大镖客2》的ReShade问题 预设,然后右键点击预设名称,设置热键时请点击输入框,这次使用“]”键(右方括号)。接着使用方向键切换回 ReShadeRDR2修复补丁 预设。 针对模组2.0版本,您必须分别为这两个预设方案在ReShade中分配特定的热键,以便AHK脚本能在游戏中自动打开地图时有效禁用特效。
  • 务必 ReShadeRDR2修复补丁 是当前激活的预设,请在右下角启用。 性能模式在关闭ReShade叠加层之前, 首页 键(如果您想编辑单个效果设置,需要先禁用) 性能模式)
  • 适用于模组版本1.0在进入设置 > 显示 > 安全区域之前,请先通过第10步中定义的热键关闭特效,然后将水平和垂直安全区域均设置为90%(最小值)。
  • 开始故事模式
  • 适用于模组版本2.0一旦将模组载入游戏,你随时可以按下切换效果的热键来禁用此模组,再次按下则可重新启用(游戏启动时模组会自动启用)。请务必记住,首次启动游戏前,务必先运行那个.ahk脚本快捷方式(该脚本仅在后台针对RDR2窗口运行,对性能无影响,因此可在多次游戏会话间持续运行;如需关闭脚本,可在系统托盘找到AHK图标右键退出,但请注意游玩RDR2时需保持脚本运行状态)。
  • 适用于模组版本1.0一旦将模组加载到游戏中,请点击你的切换效果快捷键以启用此模组,再次点击则禁用。游戏启动时模组会自动启用,但你可能更倾向于在开场菜单使用快捷键先禁用它,待进入故事模式后再手动启用。通常情况下,用户界面安全区域会考虑游戏内的图像缩放比例,但在菜单界面、打开狂暴修改器时以及查看全尺寸地图时,最好使用键盘/控制器进行导航,或直接禁用效果功能。
  • 完成(从现在开始,每次启动游戏时该效果将自动启用,如需禁用请使用快捷键操作)。


兼容性

版本2.0兼容性信息

目前尚未支持控制器。我仅使用键盘和鼠标操作,但会尽快尝试添加控制器支持(如果可能的话)。您也可以通过编辑AutoHotkey脚本文件来自行为您的控制器添加支持功能。 详细指引请查看置顶帖。

完整尺寸的地图应仅通过默认的"M"键快捷键打开。您也可以通过按ESC键,然后从主菜单中打开地图选项来进入地图,但此模组目前尚无法处理该操作方式,因此请直接使用"M"键。若您希望将其重新映射到其他键盘按键,我可以协助您修改AutoHotkey脚本以适配您偏好的按键。如果您使用的是控制器——这正是当前模组暂未支持控制器操作的原因(详见前文说明)。

应兼容几乎所有情况,正如为Reshade插件ReshadeEffectShaderToggler(REST)所包含的ReshadeEffectShaderToggler.ini文件所示,该插件允许ReShade将此模组的效果完全注入至游戏用户界面底层运行。

对于Rampage Trainer,该模组的V2.0版本已修复对齐/布局问题,且在Rampage Trainer的设置中提供了调整屏幕位置选项。

在游戏中浏览目录时,若尝试用鼠标点击目录物品会出现对齐问题(因为目录是3D对象而非UI元素)。建议浏览目录时使用快捷键关闭ReShade效果,或直接使用方向键和回车键选择目录中的物品。

该模组会彻底破坏全尺寸地图的显示。要完全解决此问题,您可以使用附带的AutoHotkey脚本之一,或者在打开全尺寸地图前通过快捷键禁用ReShade效果。若关闭地图时ReShade效果仍处于启用状态,效果会重新编译,这不仅令人困扰,偶尔(虽然罕见)还可能导致游戏崩溃。请务必记住:打开地图前先禁用效果,并在地图关闭后至少等待一秒再重新启用效果。 或者更妙的是, 只需使用其中一个随附的AHK脚本,即可实现完全自动化的修复,从此无需再为此担忧。

包含的AHK脚本需要 AutoHotkey这是一个非常棒的工具,每个人都应该至少掌握一些基本知识。

关于AutoHotkey安全与安全的简要说明

我强烈建议,对于从不可信来源下载的AHK脚本,务必先用文本编辑器查看并确认其中没有恶意代码,或内容超出自身理解范围后再运行。就这一点而言,我并未自诩为可信来源,因此你在运行我的脚本前,请务必先以文本形式查看。只需右键点击我提供的.ahk文件,选择“编辑”、“用记事本打开”,或更推荐“用Notepad++打开”,亲自浏览脚本内容。这里包含两个.ahk文件,分别适用于AHK v1.1和AHK v2.0版本。它们都是非常简单的热键脚本,且每一步都有详细注释说明功能。AutoHotkey在安装时已附带完整文档,若你对脚本中的任何函数存疑,均可通过帮助文档轻松查阅。

即使你不是程序员、脚本编写者或AHK专家,也应该很容易看出这些脚本没有进行任何可疑操作。它们确实需要以管理员权限运行才能向《荒野大镖客2》发送输入指令,因此脚本被设计为在首次启动时请求管理员权限,这需要用户确认UAC提示——这一点确实无法绕过,因为《荒野大镖客2》是受保护进程……严格来说,使用AHK v2版本时,脚本可以以UI访问权限而非管理员权限运行,但稳定性会降低(若想尝试此方式,只需在ReShade_RDR2fix_Map_AHKv2.ahk文件中注释掉管理员权限部分并取消UI访问权限部分的注释)。总之,欢迎大家进行实验探索,如果你有任何建议也请务必告诉我,毕竟我对AHK完全是个新手。尽管这些脚本如此基础,我仍为自己能让它们为这个模组正常运行感到惊喜——虽然它们本应更简洁才对,但谁让《荒野大镖客2》本身就有……各种小毛病呢,哈哈。



版本 1.0
兼容性信息


为避免破坏游戏界面,必须将游戏内显示设置中的“安全区域”调整为水平与垂直方向均设为90%。 如果有人知道如何通过游戏的配置文件将“安全区域”设置为低于90%,请告诉我。 编辑:我找到了一种方法可以大幅调低安全区域,但这种方式无法通过简单的修改实现,需要编写一个.asi脚本模组,这超出了我的能力范围——如果有兴趣,我或许可以为Vulkan用户提供DIY调整的详细步骤。.*已在V2.0版本中针对DX12修复,不再需要调整UI安全区域,因为该模组在UI底层运行。

版本1.0还包含一个用于配合模组使用的ReshadeEffectShaderToggler.ini配置文件。 行走速度控制与自动行走该功能旨在防止该模组的步行速度UI元素被挤出屏幕外,我视其为必备模组。仅支持DX12运行,因为支持ReShade Vulkan的REST插件在《荒野大镖客2》中完全无法使用。 在V2.0版本中,DX12 ReshadeEffectShaderToggler.ini文件已扩展至包含完整的游戏UI支持,修复了与原始UI的兼容性问题,同时兼容大多数添加了各类UI元素的其他模组。

大多数非ReShade模组应该都能正常运行。不过,某些在游戏原生UI框架外添加屏幕界面元素的模组(主要是部分脚本模组)可能无法适配UI安全区域,使用本模组后可能导致其界面元素被挤出屏幕。若您正在使用此类模组,建议…… 狂暴训练器 mod,狂暴模式用户界面将保持功能正常,但布局可能会出现一些轻微的对齐问题。在与狂暴模式用户界面交互时,只需使用快捷键禁用此mod即可。 *已在V2.0版本中针对DX12修复了绝大多数模组的问题(仅需在V2版本的Rampage训练器设置中调整其屏幕显示位置,其对齐问题已基本解决,其他大多数模组应无任何兼容性问题)

真希望能让ReShade特效着色器切换器与游戏本身的着色器完美兼容,这样就能在完全不影响用户界面的情况下应用特效了。虽然这个插件对DX12和Vulkan的支持有限,但理论上或许可行——只是我始终没能找到实现方法。无论我如何调整当前着色器组的设置,只要选中任何实际相关的着色器,游戏总会崩溃。我几乎尝试过这个插件的所有版本,也测试过多个ReShade版本,结果依然如此。 *已在V2.0版本中针对DX12修复此问题,该模组通过REST技术在游戏UI下方注入特效,但我至今仍无法使REST在Vulkan环境下正常运行。 如果有人能帮忙处理ReShade效果着色器切换器, 请随时联系.



完整故事

屏幕空间阴影与屏幕空间反射无法由屏幕外元素生成,因此部分阴影/反射会在屏幕边缘处被突兀截断。当倾斜摄像机导致物体以不平行于屏幕边缘的角度被切断时,这种现象尤为明显。这是屏幕空间特效固有的局限性,除《荒野大镖客2》外,大多数游戏作品都通过技术手段对此进行了部分补偿。

行业标准解决方案
  • 过度渲染与裁剪
    减少屏幕空间效果最严重伪影的首个标准方法是超量渲染(渲染比视口尺寸更大的区域),并在输出显示图像前进行裁剪。这样,略微超出视口的元素仍会被渲染并影响屏幕空间效果。渲染比实际显示更大图像带来的性能损耗,必须与通过有限度超量渲染所提升的图像保真度进行权衡。在进行超量渲染与裁剪时,必须将UI元素纳入考量。
  • 阿尔法遮罩/淡入淡出
    经过过度渲染和裁剪后,屏幕空间反射/阴影投射元素仍有可能超出渲染图像区域,导致其可见的反射/阴影被突然截断。为减轻此类残留伪影的突兀感,应在屏幕空间反射/阴影边缘添加透明度遮罩,或采用渐变淡出效果来柔化边界,而非以硬边直接切断视觉效果。

《荒野大镖客:救赎2》确实有些特别

这款游戏似乎并未采用上述任何一种方法来弥补屏幕空间阴影和反射的明显缺陷,而这些效果在游戏中却被广泛使用。不过公平地说,我认为《荒野大镖客2》实际上同时运用了这两种技术,至少在一定程度上如此。在垂直轴上,屏幕空间效果看起来还算不错,但在水平轴上,似乎存在某些问题。

理想情况下,Rockstar应该发布补丁来修复这些特效频繁出现的显示异常问题。当然,屏幕空间特效本身并非完美无缺,也不可能达到绝对完美的视觉效果,但它们至少不应呈现如垃圾般的粗糙质感。作为3A级游戏开发商,采用行业标准方案来弥补这类特效的固有缺陷,本就是玩家理应期待的基本要求。

次优方案是让一些技术高超的模组制作者来解决这些问题,设计一种方法让《荒野大镖客2》进行内部超采样渲染并裁剪画面,同时通过阿尔法遮罩/渐变处理屏幕空间效果的边缘(至少在水平轴上更有效地实现)。我确实相信《荒野大镖客2》在底层具备这些能力,甚至可能已经实现了某种程度的超采样渲染,但随后却采用了缩放而非裁剪等不合理处理方式(即使关闭分辨率缩放和DLSS/FSR功能)。遗憾的是,要通过制作完善的《荒野大镖客2》模组来解决这个问题,完全超出了我的能力范围。

因此, 下一个 下一个 最好的事情... 在您使用此ReShade变通修复之前不过,这种方法确实应该在UI元素之下应用。 (在V2.0版本中...)以及ReShade插件 ReShade效果着色器切换器  通过 亚历山大 这个预设仅有限地利用了这一点。 行走速度控制与自动行走 兼容性 (在V1.0版本中,以及包括V2.0在内的所有其他版本中)应该能够处理这种情况。 (它可以,并且已在V2.0版本中针对DX12进行了修复), 但我一直无法让它在不导致游戏崩溃的情况下有效运行。 但我一直无法在《荒野大镖客2》中让Vulkan的REST功能正常工作。 因此,任何帮助解决这些问题的努力都将不胜感激。

使用 Xmod 解锁 荒野大镖客2 的全部潜力 — 今天就探索这些顶级 MOD!