统御者 RDRII 完整游戏大修 DX12 兼容

统御者 RDRII 完整游戏大修 DX12 兼容

Mod 几乎覆盖了整个游戏,它是第一个兼容 DX12 的纹理模组,性能比原版更好。

模型和纹理

特别感谢 mlight22 制作这段精彩的视频展示!他完美捕捉了这款模组的灵魂与氛围。向这位为素未谋面的人倾注如此心血的创作者致敬。感谢 mlight22。

补丁 2.1 – 更新日志 / 发行说明

  • 角色重做
  • 修复了雾气和部分烟雾效果的闪烁问题
  • 雾气速度现已与风向正确同步
  • 改进了各种布料和材质的光照表现
  • 皮肤外观的细微变化
  • 沃利噪声纹理已更新 – 云层现在拥有更丰富的内部结构,看起来更具有机感。
  • Graphics.ytd – 对系统要求较低,稳定性提升

关于模组

该模组经过多年开发,倾注了大量心血、耐心与执着的坚持。 别被文件大小吓到——mod 这么大只是因为它在单一帧里涵盖了你能看到的一切:从一粒粒沙子,到昆虫、角色、NPC、地形、植被、室内外场景——所有东西。 尽管该模组规模庞大,但其优化程度极高,在许多场景下甚至比原版表现更佳。 我会尽量清晰地解释你可能会遇到的情况。

安装

我强烈建议你尽可能增加虚拟内存(页面文件)的大小,具体数量以你系统的最大支持为准。 仅仅是原版《荒野大镖客:救赎 2》就能占用 7-9GB 的虚拟地址空间,这已经超过了许多现代游戏。引擎的运作方式就是如此。 使用此模组后,引擎将请求更多的地址空间,而不仅仅是物理内存。 就我个人来说,我分配了 18 到 20GB 的虚拟内存,建议大家也这样做。

确保位于根目录中的 lml.ini 文件中,指定了 DisableReplaceFolder=false 您的游戏根目录中不应存在 version.dll 文件——这是旧的遗留文件。 你应该确保只保留 vfs.asi 和 dinput8.dll 这两个文件。 确保位于根目录的 lml.ini 文件中指定了 DisableReplaceFolder=false

另外,不言而喻的是: 清除所有缓存 并在安装前进行一次手动存档,以防万一

对于那些不喜欢死眼音效的人,可以删除 Core\Audio\DeadEyeNoSound。同样,如果有人不喜欢其视觉效果,可以在 animpostfx.ymt 文件的第 93506 行(<0x30BA4589 value="False" />)将其改为 True。其他内容都保持原样即可。但如果你希望获得原版效果,最好只保留模组的安装文件,其余部分可以删除 :)"

  • 驳斥 DX12 不支持纹理模组大文件交换的误解 ✓
  • 以数学精度处理 3D 图集 ✓
  • 反驳“许多 mod 文件会破坏生成点”的说法 ✓
  • 使用透明纹理和 Alpha 通道 ✓
  • 对 R、G、B、A 通道进行独立控制,以实现精确效果 ✓
  • 从零开始创建全新、优化的噪音图案 ✓

内容概要

天气系统

正如你们已经在截图中看到的,天气系统包含了云层形态,这甚至 R 星都未曾实现过——说实话,我在别处从未见过如此逼真的效果。 为实现这一点,我需要在多个文件中替换所有云图纹理。 这些是 3D 纹理图集,每个图集在各自的 RGBA 通道中包含不同的数据。 每个频道本身由一系列 32 或 64 张灰度图像组成。 在这些纹理中,灰度值在数学上至关重要: 根据材质的差异,灰度值代表密度、运动或插值行为。 即便是最微小的偏差,也足以彻底打破物理的幻象。 基于这个原因: 所有中间格式都以浮点数形式处理。 分辨率变化至少以 15 位小数精度进行计算。 直方图被持续监控以保留或有意重塑值分布。 如果你想要原创性——或者,就我而言,如果你想要重塑物理行为——你必须确切知道你在哪里、为什么以及如何改变灰度值。

温度与气候逻辑

所有温度数据均由专业气象学家协助编写。 参考自与目标地海拔和气候相近的现实世界区域的全年气候数据。 结果: 天气事件现在会触发原版中从未出现的条件。 每种天气状态都对应着正确的物理行为。

情人节位于山麓附近。在原始版本中,你在那里见过冰雹吗? 现在你会——因为在一年中的某些时期,下冰雹是完全正常的。 如果冰雹在夜间开始,气温可能会降到足以使其转变为雪的程度。 如果从早晨开始,升温会将冰雹转变为降雨,一旦停止,你会看到地面自然形成蒸发。 所有天气过渡都自然地渐变,遵循物理逻辑而非预设开关。

云朵

纹理例如:

  • worleynoise_tiling
  • cloudnoisevolume
  • cloudnoise

已完全替换。 目标是达到一种完全不同的云层结构。 原版云朵的设计是为了保持紧凑和“蓬松”。我的目标则相反: 我希望云被风撕裂,拉长成不稳定的形状—— 几乎像章鱼触手一样,只要引擎的物理效果允许?

天气与气候系统

这是模组的核心。 系统赖以存在的基石。 在这里花费的时间比任何其他地方都要多——这点显而易见。 原版天气系统主要是基于循环和脚本化的。 这个模组将该逻辑替换为基于数值和概率驱动的气候系统。 有:

  • 无固定天气循环
  • 没有硬编码的“过场动画”过渡
  • 没有区域无关条件

相反,天气并非由预设决定,而是由相互关联的参数衍生而来。 每个地区都有自己的小气候,其特征由以下因素决定:

  • 温度范围
  • 湿度行为
  • 高度影响
  • 概率权重
  • 季节性偏差

沼泽地就像沼泽地一样。 高海拔雪域地区的行为类似于高山环境。 平原对压力变化的反应与森林不同。 这不是视觉上的装饰——而是结构性的。

温度不再是摆设。 直接影响到:

  • 降水类型(雨、雪、毛毛雨、冰雹)
  • 雾密度和持久性
  • 云层形成与消散
  • 天气状态之间的过渡速度

冷雨与暖雨的特性迥然不同。 接近冰点的条件会产生不稳定的转换。 高温会增加大气的不稳定性。 这反映了现实世界中的热力学行为。

大气转换 & 压力逻辑

天气过渡不再是二元的。 他们跟随逐渐变化的大气迁移,更接近:

  • 压力前锋
  • 饱和度阈值
  • 不稳定累积

晴空不会瞬间变成风暴。 阴天条件会根据概率和温度一致性而减弱或增强。 这将创建:

  • 更长的、可信的天气积累过程
  • 更平滑的过渡
  • 减少破坏沉浸感的切换

扩展天气状态

新的和改进的状态被直接整合到系统中,而不是叠加在顶层。 示例如下:

  • DRIZZLE — 持续性低强度降水
  • 冰雹 — 稀有、温度依赖、短暂但具有攻击性
  • 优化了 OVERCAST 行为,增加了多个密度级别

每个状态是:

  • 温度感知
  • 地区感知
  • 概率加权

没有什么是全局触发的。一切都是情境相关的。

体积行为依赖于程序化噪声系统,而非静态遮罩。 云:

  • 分层密度形式
  • 有机分解
  • 对光线和高度作出反应

噪声纹理用于驱动:

  • 内部云变异
  • 光吸收
  • 散射不规则性

这避免了平坦的云层,并在不强制高分辨率的情况下创造出深度。 再说一遍——系统性的,不是脚本化的。

风不仅仅是视觉上的运动。 它连接到:

  • 天气强度
  • 风暴临近
  • 压力不稳定性

植被相应地作出反应:

  • 平静的阴天中微妙的动静
  • 暴风雨前的定向应力
  • 高能天气时,图像更清晰的运动

这加强了场景流动感,而非循环动画的视觉效果。

系统会生成极具电影感的瞬间 — 但绝不会因为游戏“决定”这么做。 它们发生的原因是:

  • conditions align
  • 概率解析
  • 转场自然演变

这就是区别。

尽管复杂:

  • 所有值均为数字且轻量
  • 没有过多的脚本编写
  • 无逃脱状态链

该系统扩展性良好,即使在长时间游戏过程中也能保持稳定。

最终说明

这不是一个天气模组。 这是一个气候框架—— 让世界由氛围主导,而非由脚本支配。 一旦你玩过它, 其他的一切都显得不真实。

雾与大气湿度

本模组中的雾气并非后期效果。 这是一个体积大气状态。 从视觉覆盖到物理存在

原版迷雾的行为大致上像一个可见性过滤器。 这里,雾气就像悬浮的水汽。 它拥有:

  • 深度
  • 密度层级
  • 光线交互
  • 时间持续性

你并不是“进入雾中”—— 你穿过一片恰好饱和的空气团。

Atlas 替换与结构重新设计

雾气图鉴已完全替换。 未调整。 未重新着色。 重建。 新的地图集提供:

  • 更高的内部变异性
  • 更平滑的密度梯度
  • 减少块状伪影
  • 中远距离下更好的深度感知

仅此一点就改变了雾气的观感——甚至在应用任何逻辑之前。

雾的密度现在是分层的。 你会注意到:

  • 靠近地面的浓雾更厚
  • 随着高度逐渐变薄
  • 局部化密度口袋取代平面墙壁

这使得山谷自然容易积聚雾气, 当高耸的地形突破它时。

温度 & 湿度依赖关系

雾的形成取决于热力条件。

  • 冷空气 + 湿气 = 持续雾
  • 温暖空气 = 更快消散

雨后,雾的形态与干燥寒冷的早晨有所不同。 黎明时分,薄雾缭绕。 到中午时,它就会变薄——除非条件允许它维持。 没有什么事情是强制的。

光散射与吸收

当前雾气:

  • 柔和高光,而非压暗它们
  • 逐渐吸收远处的光线
  • 对太阳角度和强度做出反应

晨光穿透雾气的方式与暮光不同。 背光雾显示出体积,而不是平面的亮度。

雾气流动的设计非常微妙。 避免激进滚动或明显噪音:

  • 缓慢漂流
  • 微变化
  • 低频率运动

目标是参与,而非分心。 你感觉到空气在流动—— 你看不到纹理滑动。

雾并非一个孤立的系统。 它对以下内容作出响应:

  • 先前天气(雨、毛毛雨、暴风雨)
  • 温度变化
  • 风力强度
  • 区域湿度分布图

沼泽雾不是山雾。 晨雾并非风暴之雾。 阴天的雾与晴夜的雾有所不同。

性能优先的立体渲染

尽管增加了深度:

  • 智能使用地图分辨率
  • 无强力透支
  • 没有不必要的层级

雾的感觉更浓重了,但表现开销并未增加。

结果

雾气不再是只能远观的东西。 它是你存在于其中的某种东西。 它重塑了距离, 使世界变得柔和, 并将光线转化为氛围。 再次—— 它之所以这种行为,是因为条件允许。 不是因为脚本规定了这么写。

地形

所有地形纹理均使用电影行业中一个专业化、未命名的人工智能视觉效果插件(超过 140GB 大小)并结合专用视觉效果服务器进行处理。 每个纹理:

  • 被放大至 64K–128K
  • 然后逐步降低到目标分辨率。

“仅仅放大”的模组实际上并不会增加细节。 一旦细节丢失,除非进行物理重建,否则再多的放大处理也无法将其复原。

所有纹理保持原始格式,但使用了一种新方法进行转换——我们称之为“DX12 就绪的转换管线”。 这允许:

  • 将由 GPU 直接消耗的纹理
  • 减少 CPU 开销
  • 较少的引擎到 GPU 的通信
  • 并且在很多情况下,真正的性能提升

(再次:增加您的虚拟内存?)

从路边小木屋到圣丹尼斯的酒馆,每一个室内场景都经过了精心处理。 每座城市、每栋建筑、每一块可见的地形方格、每个营地、每个罐子、商店里的每件物品。 单个画面中你所见到的一切。

大多数纹理模组都会提升画质。 这个用来重建。 你并没有得到更清晰的像素。 你获得真实的表面信息。

无噪点的高频细节

目标不是“更多细节”。 目标对细节把握准确。 岩石表面显示:

  • 微小骨折
  • 沉积物层理
  • erosion patterns

土壤显示:

  • 紧实区域
  • 松散的颗粒状变化
  • 水分和矿物质导致的细微颜色变化

没有任何东西看起来过于锐化。 看不出有上过漆。

纹理压缩,焕然一新

所有地形纹理保持原始游戏格式, 但转换方法并非虚拟引擎所需。 结果:

  • 更流畅的流媒体播放
  • 降低 CPU 负载
  • 更稳定的帧间隔

在许多情况下,地形表现得比原版更好。

地形细节设计用于在所有尺度上保持清晰。 从高处有利位置:

  • 大图形仍可读
  • 地形不会崩塌成泥沼
  • 色彩平衡保持稳定
  • 细节自然浮现
  • 没有明显的纹理断裂
  • 没有人造对比度尖峰

世界是连续的。

水 & 液压

完整纹理重建:water_noisewater_bumpwater_surfacewaterfall 纹理已完全从零开始重建。您将目睹的不再仅仅是纹理,而是充满生气、呼吸般鲜活的水元素。 通过使用之前提到的相同“DX12 就绪转换”方法,这些复杂的水体模拟直接被 GPU 吞入处理。这意味着你可以获得逼真的水流与泡沫效果,而帧数几乎不会下降。 水面的运动和物理效果现在比以往任何时候都更加自然。重建的噪点图与引擎位移之间的交互作用,能对世界的光照和风做出反应,产生完美逼真的流体动力学效果。

动物(野生动物 & 马)

动物被当作有生命的呼吸系统来对待——而不是背景道具。 此处的目标是在不强行提高分辨率或牺牲性能的情况下,实现自然的动作、可信的解剖结构和物理存在感。

游戏中的许多动物使用小型多帧纹理图集(通常是 2-3 帧)来驱动:

  • 肌肉变形
  • 呼吸
  • 微妙的面部动作

这些地图册已得到增强和重新平衡。 其结果是:

  • 肌肉运动更加平滑和连续。
  • 状态之间的转换感觉更自然,不那么机械。
  • 呼吸稍显深沉且更为自然,特别是在骑马时尤为明显。

这种情况在空闲状态和慢速移动时最为明显——原版游戏在这些动作上常常显得生硬。

动物皮毛是通过毛发重建流程结合精心调整的皮毛参数重新构建的。 与其增加纹理尺寸,重点放在了:

  • strand breakup
  • 定向流动
  • 感知密度正确

你会注意到:

  • 对光反应更好的毛皮
  • 层与层之间更清晰的分离
  • 减少阴影中的浑浊阴影

尽管视觉上有所改进,但大多数动物纹理的分辨率仍低得惊人——通常在 512 到 1K 之间。 这能在提供媲美更高分辨率设置的效果的同时,保持性能稳定。

马匹接受了额外的训练。 他们的皮肤、肌肉、血管和呼吸都被调整得让人感觉:

  • 更重
  • 更加有机
  • 更加脚踏实地。

皮肤下的血管现在更加清晰可见。 肌肉紧张在运动过程中表现得更加明显。 并且安静时呼吸稍微更明显一些。 效果很微妙,但一旦你注意到它——就再也无法忽视。

即使拥有所有增强功能:

  • resolutions stay conservative
  • 图集保持紧凑
  • 没有不必要的内存峰值

这确保了:

  • stable streaming
  • 没有动画故障
  • 跨系统一致性行为

简而言之:动物更好,训练方式相同。

最终说明

这些变化并不引人注目。 它们在后台默默工作—— 直到你意识到这个世界变得更加生动, 更加脚踏实地, 而且更难回头了。 正是这个意思。

主要角色(剧情人物)

主线故事中的角色们受到特殊对待——他们不仅是资源,更是承载着游戏情感重量的活生生的人。 这是该项目中最耗时、最具挑战性的部分之一。

面部重建与身份保持

所有主要角色都经过专业的面部重建流程进行了全面重制。 目标不是为了美化它们, 绝不是要把它们变成塑料般的、现代模样的面孔。 每一个皱纹、疤痕、不对称和瑕疵都被保留了下来——并且只在能增加个性的地方得到增强。 这些是疲惫、被追猎、被时间磨蚀的西方混蛋—— 而且他们应该看起来就像那样。

面孔现在包括:

  • 更清晰的骨骼结构
  • 令人信服的面部深度
  • 在各种光照条件下保持正确比例
  • 更强的身份认同,即便相隔遥远

每个角色保留原有的个性,但如今能从脸上瞬间读懂。

皮肤被重建为一种材质,而非平面纹理。 你现在会注意到:

  • 可见毛孔
  • 微妙的卵泡图案
  • 对光产生反应的微皱
  • 正确区分油性和干性区域

皮肤在强光或雾气下不再看起来像涂了塑料。 相反,它会从物理上对以下内容做出反应:

  • 太阳角度
  • 环境光
  • 天气状况
  • 一天中的时间

特写镜头终于撑住了——不是因为分辨率更高,而是因为表面表现正确。

所有主要角色的面部动画图谱均被增强并重新校准。 直接影响:

  • 对话时脸部的移动方式
  • 肌肉如何在表情之间转换
  • 情绪如何持续存在而非突然中断

你会特别注意到它在:

  • 长对话
  • 紧张时刻
  • 安静的场面,角色们不说话,但有所反应

面部现在会呼吸、犹豫,并做出回应——而不仅仅是动画播放。

  • 减少间接光照下的“死板凝视”效果
  • 角色们现在会看着你,而不是看穿你。

头发、胡须与衰老

头发和胡须经过了重新平衡,以避免常见的平淡或过于暗沉的外观。

  • 在阴影中更易读
  • 自然地融入肌肤。
  • 显示岁月痕迹、忽视和粗糙

年长的角色终于看起来苍老了,而不只是分辨率低。

衣物纹理在增强时更注重磨损痕迹,而非锐利度。 你将会看到:

  • 软化的边缘
  • 现实的布料反应
  • 积累起来的泥土,而不是画上去的

材料经过调整,以避免出现“模组光泽”问题。 一切都没有不自然地发光。 一切在光照管线中都在其应在的位置。

一些角色得到了额外的定制处理。 例如:

  • 阴森贝尔营地作为一个地点和角色空间得到了全面增强。
  • 角色专属服装套装已重新设计,以符合其故事线。
  • 某些面部细节被微妙地清洁或粗糙化,以更好地反映叙事进展

这些并非随意的变更——它们遵循故事情节。

尽管在视觉上有了巨大改进:

  • 角色纹理大部分保持在 1K 到 2K 之间
  • 法线贴图和动画图集经过精心平衡
  • 内存使用保持控制

这确保了:

  • 没有动画卡顿
  • 无缓冲卡顿
  • 无不必要的 GPU 压力。

角色看起来更好,运行也比原版更流畅。

最终备注

这不是一个“美化模组”。 这是一次角色重建—— 保持原版美术风格, 但不会像 2018 年的主机那样在技术上有所妥协。 这些角色经历了艰难的生活—— 现在,他们的脸终于讲出了全部的故事。

NPC 们

NPC 已从头重建——在视觉、物理和行为层面全面升级。 目标是让 NPC 们显得真实、警觉且人性化,同时避免让它们变成高分辨率的性能杀手。

几乎所有 NPC 的面部都进行了全面重建。 (仅有极少数情况下,原始数据确实无法恢复,只有两三个例外)。 尽管保持低纹理分辨率,皮肤细节现在在物理上是可读的:

  • pores
  • 细纹
  • 微妙的皮肤破裂
  • 恰当的音调变化

这是通过重建皮肤微观结构实现的,而不是通过蛮力提高分辨率。

牙齿、眼睛、牙龈、睫毛和面部毛发都经过单独增强,使其作为一个统一的材质系统协同工作,而非分离的平面层。

面部动画图集——驱动表情和微运动的纹理——得到了增强和重新校准。 结果如下:

  • 表情过渡更加流畅
  • 面部肌肉感觉不那么僵硬了
  • 细微的情绪在动作中更容易被读懂。

面部表情现已能根据对话、紧张程度和距离互动,呈现自然流畅而非刻意的反应。

服装、头发与材质

衣物材质经过重新平衡,以更自然地响应光线和运动:

  • 织物粗糙度在变化光照下表现正常
  • 折叠页在间接光线下更易阅读。
  • 材质对比得以保留,且未过度锐化。

对头发和眉毛进行了精细处理,以避免出现典型的“头盔”效果,特别是在强光照射或雾气环境下。

NPC 们现在会:

  • 多说话,不要字幕
  • 动态地评论事件
  • 聊聊你自己,别光顾着聊别人
  • 更自然地反应附近的干扰

在圣丹尼斯,举个例子:

  • 穿着更廉价衣服的女性走路时更僵硬、更突兀。
  • 穿着昂贵服装的女性走路时臀部摆动幅度更大,姿态更优雅。 (通过略微增强的抖动物理效果来提升自然的流畅性)

这在不夸大其词的情况下,创造了可见的社会对比。

公共交通与人群逻辑

电车行为得到扩展:

  • NPCs 进行更长时间的对话
  • 更多对话变体可用。
  • NPCs 可能会意外离开电车。
  • 在少数情况下,NPC 甚至可能会登上它们。

如果外面发生了什么危险的事情:

  • NPCs 将会站起来
  • 恐慌
  • 别只是被动地盯着看,离开电车吧。

世界意识得到了提升。 如果你骑着一匹稀有马接近警长,他可能会对此发表评论,并简短讲述他过去的故事——包括他曾经拥有的马匹。 这些互动是罕见的、无脚本的、并且具备情境感知能力,使其显得自然而非触发式的。

表演哲学

尽管进行了所有增强:

  • NPC 纹理故意保持低分辨率
  • 大部分脸的范围在 512 到 1K 之间
  • 内存占用保持在最小

许多现有的模组使用 RGBA8 等不常见格式将 NPC 材质提升至 2K-4K 分辨率 —— 却仍然无法实现一半的真实感。 这种方法关注结构和材质表现,而非原始像素数量。

植被

植被系统是制作过程中最为复杂的系统之一——这不仅关乎视觉效果,还因为它与引擎内隐藏的物理数据紧密相连。

使用 Alpha 通道的纹理无法正常处理。 在透明度的背后,引擎存储的数据行为几乎类似于矢量信息: 植物能弯曲到什么程度,如何应对风力,压力如何通过叶片和草叶传播。 如果你直接处理这些带有完整 Alpha 通道的纹理,你就会破坏那种隐藏的结构。 这就是为什么合适的植被增强模组几乎不存在的主要原因。

为解决此问题,透明度被暂时移除,所有处理均在原始数据上进行,然后才精心重建 Alpha 通道——从而保留了原有的物理完整性。

草地表面物理(不可见但至关重要)

一个最重要的变化是你从未直接看到的东西。 用于计算风向和压力的草地表面纹理—— 可见的草地纹理——已被完全重制。 这个表面纹理控制:

  • 风压是如何吸收的
  • 草地提供多少阻力
  • 运动如何在大规模区域中传播

通过重新设计这个表面层,草现在作为一个连续的物理系统来响应风,而不是作为孤立的动画精灵。

Wind overdrive(原版中禁用)现在已完全启用并同步。 草地移动现在由以下因素直接驱动:

  • 风速
  • 风向
  • 体积风传播

当你从高处观察草地时,请稍等—— 你可以亲眼目睹风浪掠过田野的景象,草叶随着风的吹拂,在同一方向和节奏下弯腰摇曳。 这让你能视觉感知风的传播,而不仅仅是运动。

体积极风结构

风力纹理本身被重新设计,引入了:

  • 更锐利的体积过渡
  • 微压力区
  • 不同强度的分层风量

结果:

  • 相邻的草丛斑块不再完全一致地移动。
  • 气压差自然形成
  • 即使在相同风向下,植被的弯曲程度也不同。

这会产生一个更自然、更动态的响应,尤其是在暴风雨和大风期间。

中型植被与渗透性

灌木、丝兰、矮灌木和树枝的调整使其更易被风吹透。 不是风“推”着植被像一块刚性物体那样:

  • 空气现在渗入得更深了
  • 内部运动可见
  • 树枝、树叶和花簇各自独立反应。

叶片密度、压力响应和柔韧性经过重新校准,使植被表现为一种物理介质,而非静态障碍物。

照明

整个光照的物理行为已经重制。 所有散射模型均通过以下方式调整:

  • HDR 摄影参考
  • 一天中的不同时段
  • 多种天气状况

游戏使用了 13 个照明区域来代表 24 小时,并且所有时间间隔内的过渡效果都经过了重新平衡。 现在光线在整个昼夜循环中的表现一致、符合物理规律且自然。