为《红色沙漠》实时提供光照、玩家、摄像机及环境/天空遥测数据,内置本地HTTP/WebSocket API、全屏光照标记和3D雷达。单个ASI插件,支持可配置热键、状态通知以及SDR/HDR10/scRGB界面。环境天空
绯红沙漠遥测 2.1.11简而言之——你现在就能得到的东西- 实时光照数据 对于火焰、蜡烛、灯笼及其他附近的游戏光源:世界坐标、线性HDR RGB值、推导亮度,以及已识别聚光灯的方向和锥角。
- 玩家与视角:玩家位置和根节点朝向,加上原生渲染相机,以60Hz独立发布。
- 两道流光:未经处理的原始记录,以及一个单独的分组/EMA平滑数据流。平滑处理绝不会更改或删除原始数据。
- 环境/天空曝光全局天空系数、相机本地天空曝光以及推导出的本地估算值。通过了可逆的开放→封闭→开放测试。
- 游戏内覆盖层:角落HUD,可配置3D雷达(F8)、详细诊断(F9)和全屏光标记(F10)。每个按键均可重新映射。
- 本地 JSON API:HTTP 和 WebSocket 位于 127.0.0.1:27311,仅限回环访问,因此你可以通过实时游戏灯光来驱动自己的工具、覆盖层或硬件。
- SDR 和 HDRSDR、HDR10 和 FP16 scRGB,并可调节 UI 白电平。
- 一个ASI:安装后,遥测主机将自动启动。遥测数据只读;它绝不会控制游戏操作。
2.1.11 新增内容: 针对在运行NVIDIA Streamline(DLSS / DLSS帧生成)的系统上报告的启动崩溃问题的修复。原因已追溯至遥测自身的钩子排序。参见
启动与兼容性 下方。
此版本中没有: 每盏灯的几何遮蔽。标记可以穿墙显示,F11尚未使用。环境天空遮蔽有效;单个灯光的遮挡仍在开发中。
为《红色沙漠》提供实时光照、玩家、渲染摄像机以及环境/天空遥测数据,并配备本地 HTTP/WebSocket API、全屏光照标记和可配置的 3D 雷达。检查当前来自火焰、蜡烛、灯笼和其他游戏光源的贡献:世界位置、线性HDR RGB、推导亮度,以及已识别聚光灯的方向/锥角。包含独立的玩家位置/根朝向和原生渲染摄像机。一个单独的分组/EMA流会平滑光源,同时不改变或移除原始记录。一个ASI会自动启动本地遥测主机。
观看游戏内演示项目目标与当前阻碍目标是实现一种遥测,既能反映玩家或摄像机位置对天空与环境的暴露程度,也能确定附近哪些单独光源可以通过世界几何体照射到该位置。逐光源可见性必须包含屏幕外和摄像机后方的光源,而不能依赖屏幕空间可见性。
当前的主要障碍是逐光源遮挡的一致性。在受控测试中,火焰、蜡烛和其他灯具与墙壁、建筑和地形仍然不匹配。环境光通过了开放→封闭→开放的往返测试,但其相机朝向语义仍需要验证。
逐光源几何遮蔽已从生产版本 2.1.11 中排除。 F11 和遮挡隐藏的 INI 设置缺失,因为隐蔽源测试失败了。因此标记可能会穿墙显示。原始和平滑光照记录在没有隐藏过滤的情况下仍然可用;保留的可见性元数据报告为未知/已禁用。
当前完整开发状态及保留的研究成果均载于
GitHub欢迎所有人复刻仓库、测试替代方案并贡献改进。
安装或升级需要 Windows x64、Microsoft .NET 8 ASP.NET Core 运行时(x64),并为游戏安装一个 x64 ASI 加载器。原生光照路径支持 Steam 版本 25246367 / EXE 1.0.0.2850。未知可执行文件将被拒绝;游戏更新可能需要新的配置文件。
- 在安装、更新或删除该包之前,请关闭红色沙漠。
- 备份有用的INI偏好设置,并在DMM中禁用/删除之前的Telemetry包。
- 通过 DMM 2.8.1 升级时,请检查 bin64 中是否有旧的 Telemetry 伴随文件。本地测试显示,DMM 可能会保留下列两个 DLL 和两个小写 CFG 文件。
- 只删除旧的 CrimsonDesertTelemetry.Core.dll、crimson-desert-telemetry.dll、crimson-desert-telemetry.deps.cfg 和 crimson-desert-telemetry.runtimeconfig.cfg。不要删除 ASI 加载器。
- 导入并启用/部署完整的 ModManagers ZIP。仅导入是不够的。请将所有包含的文件放在一起。
- 启动游戏并加载存档。修改 INI 文件后需重启;不支持热卸载。
游戏EXE旁的六个运行时文件必须来自同一版本:
红沙荒漠遥测模块.asi
红沙遥测核心.dll
绯红沙漠遥测.ini
绯红沙漠遥测.dll
红漠遥测依赖配置文件
绯红沙漠遥测运行时配置
保持 .cfg 文件名不变;将其重命名为 .json 可能会使 DMM 将其识别为游戏补丁。在移除旧的残留文件后,最终 ZIP 在 DMM 2.8.1 中干净导入,六个文件均准确部署。DMM 自动脏升级/移除行为仍在调查中:在本地测试中,它保留了较旧的 deps.cfg,该文件仅包含版本标签,不包含运行时资源。JSON Mod Manager 和手动加载器的生命周期测试仍不完整。
控制与默认设置- F8: 切换角落HUD和3D雷达。
- F9: 切换详细诊断信息。
- F10: 切换全屏光源标记。
- 每个按键均可在INI中配置为十进制Windows虚拟键码;使用0可禁用快捷键。
- F11未使用。
在提供的包含 31 项设置的生产 INI 中,所有受支持的的功能开关均已启用。玩家/摄像机发布默认 60 Hz;原生光照采集为 20 Hz。遥测半径为 100 游戏单位,显示半径为 35。隐藏 HUD 不会停止遥测。自动隐藏菜单未实现;请使用 F8/F10。在此生产版本中,无法通过旧 INI 启用研究、控制台、浏览器和遮挡开关。
HTTP 和 WebSocket 访问所有路由均为仅限环回的JSON服务:
HTTP 快照:http://127.0.0.1:27311/v1/snapshot
状态:http://127.0.0.1:27311/v1/health
快照架构:http://127.0.0.1:27311/v1/schema
原始 WebSocket:ws://127.0.0.1:27311/v1/stream
平滑光照:http://127.0.0.1:27311/v1/lights/smoothed
平滑 WebSocket:ws://127.0.0.1:27311/v1/lights/smoothed/stream
环境/天空:http://127.0.0.1:27311/v1/ambient
环境模式:http://127.0.0.1:27311/v1/ambient/schema
环境 WebSocket:ws://127.0.0.1:27311/v1/ambient/stream
原始光照路径在启用光照时使用模式1.5;在此生产构建中,该模式允许的逐光源可见性元数据始终报告为未知/禁用。平滑馈送是独立的,会在应用可配置的200毫秒EMA之前对邻近贡献进行分组;邻近分组并非物理灯具身份。环境光包括全局天空系数、相机局部天空曝光以及推导出的局部估计值。这是渲染器遥测数据,并非物理亮度测量。
API参考和客户端示例. API 仅暴露遥测数据,不控制游戏操作。
SDR 与 HDRD3D12 UI 支持 SDR、HDR10 和 FP16 scRGB,可从游戏的输出中选择。HdrPaperWhiteNits 控制 UI 白色亮度,范围为 80 到 500 尼特。合成器在不改变游戏 HDR 设置的情况下混合叠加层。自动化测试覆盖 SDR/HDR10/scRGB;实机 HDR 显示、帧生成以及 AMD/Intel 游戏验收仍待完成。该模组自身不需要 NVIDIA、DLSS、Streamline、Nsight 或 PIX 运行时;它只需与它们共存,这正是 2.1.11 所解决的问题。
启动与兼容性2.1.11 修复了在运行 NVIDIA Streamline(DLSS / DLSS 帧生成)的系统上启动崩溃的问题。两名用户分别在RTX 4090和RTX 4080 SUPER上使用616.92驱动独立报告了此问题。他们的日志显示Streamline在创建或链接交换链时失败,报错0x80070005(E_ACCESSDENIED),约一秒后游戏内发生访问违规。一个小型转储确认加载的ASI正是公开版本,反汇编游戏映像显示它在失败后解引用了自己的交换链成员——交换链本应存在的位置出现了空指针。
问题出在这个模组这边。Telemetry 在 DXGI 的交换链创建过程中同步安装了它的 HUD 交换链钩子,而此时 DXGI 已经返回,但 Streamline 尚未将新的交换链与其命令队列关联。NVIDIA 公布的 Streamline v2.11.1 源码证实了这一顺序:先调用基础工厂,然后是 Streamline 的后置钩子,接着是其代理设置。旧版本在这一序列的中间修改了交换链。
2.1.11 将钩子安装推迟到包装器堆栈完成后,并在游戏或 Streamline 为同一窗口创建替换之前释放 Telemetry 自身的交换链引用。
哪些已确认,哪些尚未确认。 该修复已在搭载相同驱动616.92的RTX 3080上本地验证:一次冷启动加上多次显示与HDR切换,每次均记录到干净的交换链替换且无错误。它已
不 尚未在任一受影响的外部系统上得到确认,因此这是一个经过诊断和测试的修复,而非已关闭的报告。如果启动仍然失败,请附上 DMM 支持包,或完整的 INI 以及引导、主机、原生和叠加层日志,并说明你使用的是一台显示器还是多台。
当前兼容性记录.
2.1.11 还会等待主机的首个有效可玩世界玩家/渲染相机状态,然后再启用原生光照和天空 GPU 捕获。命令列表提交和已提交的 GPU 围栏等待有各自的边界,并会报告具体的失败阶段。
这些测量数据意味着什么该数据源包含的是渲染器贡献,而非每一盏物理光源。发现结果经过视图过滤,并非完整的世界注册表。某盏灯未出现并不证明它处于关闭状态。作者设定数组与渲染数组存在重叠,不可相加。一盏灯可能产生多条记录。线性HDR RGB是渲染器数据,并非流明值或最终屏幕像素:这些值是线性的且未钳制,因此高亮光源通常会超过1.0,且这些不是0-255颜色——显示前需进行色调映射。快速移动可能暴露投影延迟;显示的聚光灯长度为示意性的。
外部主机读取游戏内存;ASI使用受保护的渲染器/D3D12钩子和有界GPU拷贝。正式版本仅包含已发布遥测功能所需的机制;更大规模的诊断和未完成的遮挡研究不在其中。
验证与完整性自动检查通过了71/71个托管控件和30/30个原生控件,包括对嵌套启动样式和运行时显示/HDR交换链替换的新覆盖。随后在Steam构建25246367上进行了实机验证,所有受支持的生产功能均已启用:全部六个已部署文件与发布ZIP一致,实时原始、平滑和环境HTTP及WebSocket数据流正常,F8/F9/F10在游戏中关闭再开启,以及重复的显示/HDR切换均未出现交换链错误。
ZIP SHA-256:
CB7DD68FFAA548A53F2A5303870C012F9CD0CC44944A46A0F59BF274457C5052
ASI SHA-256:
06EE760E33E499252AF072711C28D55D2D65127E50B98A3E4FD26B39ADEC1B63
最终版ZIP文件在VirusTotal上报告为0/68,最终版ASI文件报告为4/71,比前一个版本少了一家检测厂商。本地Microsoft Defender自定义扫描对这两个确切文件均未报告威胁。这些结果仅适用于上述哈希值。
制作人员: 由 fabianviol 创建,与 Claude 和 Codex (OpenAI) 共同开发。感谢仓库中致谢的社区研究来源和库。
来源、文档和依赖声明MIT 许可的非官方社区项目,与 Pearl Abyss 无关。