资讯详情

资讯详情

RenoDX游戏帧结构分析:如何从draw调用中定位tonemap与final blit关键通道

RenoDX游戏帧结构分析如何从draw调用中定位tonemap与final blit关键通道【免费下载链接】renodxRenovation Engine for DirectX Games项目地址: https://gitcode.com/GitHub_Trending/re/renodxRenoDXRenovation Engine for DirectX Games是一款 DirectX 游戏 Mod 工具集支持替换着色器、注入缓冲区、升级交换链与纹理资源等操作。本文介绍如何利用 RenoDX 自带的 DevKit 与 MCP 工作流从一帧内的 draw 调用列表中快速定位tonemap 通道与final blit 通道回答 HDR 改造中最关键的问题高动态范围数据到底在哪一步被压死的一、为什么必须找到 tonemap 和 final blit 这两道关卡 任何 DirectX 游戏的一帧渲染流水线大致是场景渲染 → 后期处理 → tonemapHDR 转 SDR→ UI 叠加 → final blit最终拷贝到屏幕。tonemap 通道把 HDR 场景数据压缩到人眼可见范围通常也是高动态范围数据的终点站final blit 通道把合成好的画面拷贝到交换链上呈现给显示器通常是最简单的一次全屏拷贝。对想做 HDR 保留、色彩改造的 Mod 作者来说核心判断只有一条final blit 之前HDR 是否已经消失如果消失战场在 tonemap 通道如果还在直接改造 final blit 前的合成通道即可。这正是 RenoDX 官方文档 docs/DEVKIT_MCP.md 中反复强调的从帧尾倒查思路。二、RenoDX 的帧结构分析三件套 RenoDX 的实时分析栈由三部分组成组件路径作用devkit 插件src/addons/devkit/addon.cpp游戏内追踪设备、着色器、资源与帧快照MCP 桥进程src/apps/mcp_bridge/main.cpp把命名管道暴露为标准 MCP 工具服务MCP 客户端Codex、Claude Desktop 等以自然语言/JSON-RPC 驱动分析架构分层说明见 src/addons/devkit/mcp/README.mddraw 调用的数据结构定义在 src/addons/devkit/mcp/draw_summary.hpp。三、七步定位法从帧尾倒查关键通道官方推荐的工作循环来自 docs/DEVKIT_MCP.md连接并选择活动设备devkit_statusdevkit_select_device。很多游戏暴露多个 D3D 设备draws 为 0 的那个基本可以排除排队帧快照devkit_queue_snapshot等待下一次 present 捕获先检查靠后的 draws而不是第一个看起来亮的着色器识别三类候选通道场景合成/tonemap、SDR 的 UI 与文字通道、真正的 final blit交换链通道用devkit_get_draw细看候选 draw确认渲染目标与输入纹理用devkit_analyze_resource回读资源验证数据格式与数值范围确认目标通道后再 dump 并编辑着色器。devkit_list_draws还支持按shaderHash、minRenderTargetCount等字段过滤见 src/addons/devkit/mcp/README.md能从上千次调用中一步筛出全屏四边形 单张输入纹理的典型 final blit。四、读懂一次 draw 调用的关键字段 devkit_get_draw返回的信息中与定位 tonemap / final blit 最相关的是字段定位技巧像素/顶点着色器哈希同名哈希反复出现在帧尾多半是合成或拷贝通道渲染目标RTV格式与尺寸全屏 r8g8b8a8通常是 SDR 输出r16g16b16a16_float说明还带着 HDRSRV 输入数量与格式只有一张输入纹理的全屏 draw大概率就是 final blit混合状态final blit 一般是直接覆盖写入不启用混合swapchain / clone 标志直接绑定交换链的 draw 就是屏幕出口经验法则如果最终通道只是从一个已经是 SDR的目标做一次单纹理拷贝那这里不是恢复 HDR 的位置——必须往前找到 tonemap 之前的合成通道。五、验证通道用资源克隆确认 HDR 是否幸存 确定候选通道后RenoDX 提供最直接的验证手段——资源克隆对比原始视图可能仍是r8g8b8a8_unorm_srgb被截断到 0~1克隆视图可升级为r16g16b16a16_float保留大于 1.0 的高光。流程devkit_set_resource_clone开启克隆 → 用preferClone: true回读同一资源 → 对比数值统计。导出方面PNG仅 SDR 预览只能看个大概EXRHDR 保留的RGBA16F导出才是判断 HDR 生死的地面真值。六、从分析到 Mod把结论落成替换着色器 通道确定后把验证过的行为迁移到 src/games/ 下的游戏 Mod 目录每个游戏一个文件夹包含addon.cpp资源升级与着色器注册和按 CRC 命名的替换着色器着色器文件必须命名为{CRC32}.{TARGET}.hlsl例如tonemap_0xE6BB6773.ps_5_0.hlsl规则见 src/games/AGENTS.md替换用的 HDR 算法库非常齐全src/shaders/tonemap.hlsl 汇总了 aces.hlsl、frostbite.hlsl、reno_drt.hlsl 等多种 tonemap 实现运行时着色器放在renodx-dev/live/原始 dump 放在renodx-dev/dump/两者不要混用。常用文件导航完整工作流docs/DEVKIT_MCP.md贡献指南docs/CONTRIBUTING.mdDevKit 插件入口src/addons/devkit/addon.cpp工具注册层src/addons/devkit/mcp/runtime.hpp帧快照工具src/addons/devkit/mcp/snapshot_tools.hpp着色器检视src/addons/devkit/mcp/shader_inspection.hpp资源分析src/addons/devkit/mcp/resource_analysis.hpp一句话总结从帧尾倒查用devkit_list_draws过滤、devkit_get_draw确认、资源克隆验证三步就能把 tonemap 与 final blit 这两个关键通道钉死——这就是 RenoDX 帧结构分析的核心方法论。【免费下载链接】renodxRenovation Engine for DirectX Games项目地址: https://gitcode.com/GitHub_Trending/re/renodx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →