Problem
参数分散且关系模糊
显示器菜单、系统设置和色彩工具彼此割裂,用户难以判断哪个参数真正改变了观感。
01 · Overview
亮度、对比度、Gamma、色温和饱和度来自不同的硬件或软件通道。ShadePilot 的工作不是增加更多参数,而是把这些能力组织成可理解、可比较、可恢复的使用流程。
我的贡献
我负责把分散的显示调节组织为可保存、可比较、可恢复的操作流程,将设备不支持、应用失败与环境变化纳入产品反馈,并根据用户问题推进迭代。AI 辅助实现和调试;状态规则与验证范围由我确认。
根据真实使用反馈持续修正状态持久化、准星交互与快捷操作中的边界问题,并将问题拆分为可复现状态、交互规则与版本修复任务。
下文按控制体验、显示适配和能力状态展开,具体设备与版本限制单独说明。
Problem
显示器菜单、系统设置和色彩工具彼此割裂,用户难以判断哪个参数真正改变了观感。
Direction
硬件参数、画面风格和恢复操作分区管理,让每个控制项对应清楚的作用层级。
Principle
只保留与调节、比较、切换和恢复直接相关的功能,不以数量替代产品价值。
02 · 故事一 · 控制体验
核心体验围绕三个连续动作展开:快速建立画面风格、比较变化是否有效,以及在任何时候回到可靠状态。

调节暗部、高光、中间调、黑白位、色温与自然色彩,并保存为可复用预设。
按住查看原始画面或使用 A/B 临时对比,减少凭记忆判断造成的偏差。
分别恢复硬件参数与画面曲线,并在正常退出时自动还原启动前状态。
03 · Interface
主界面把设备参数与画面风格放在同一视野中,同时保持两类状态相互独立;工具中心则收纳比较、切换、分享与诊断等低频能力。
04 · System model
相似的视觉结果可能来自完全不同的技术链路。只有先明确状态属于哪一层,界面反馈、错误说明和恢复策略才不会互相冲突。
Hardware path
通过标准 Windows 显示器配置接口写入物理设备,能力取决于面板固件、连接方式、转接设备和显示器设置。
Software path
负责明暗曲线、曝光、色温、色调与软件饱和度,由统一状态合成,避免不同参数相互覆盖。
不预设所有设备都支持同一条链路,而是先检测 DDC/CI 与 Windows 软件色彩能力。
自动模式之外保留明确选择,让用户知道参数由显示器硬件还是系统软件负责。
控件继续占据固定位置,并显示禁用状态与原因,避免静默回退和布局跳动。
故事二 · 4K / 高 DPI
Observed issue
4K 环境下文字与控件发生遮挡。Surface diagnosis
看起来像 spacing 或控件高度问题。Root cause
固定坐标与 Per-Monitor DPI 缩放不一致。Decision
停止继续微调固定像素,转向布局架构。Architecture change
改用 WPF 自适应、内容驱动的容器布局。Result
2K、4K 与高 DPI 进入可验证的系统路径。故事三 · 能力状态
能力状态显式展示,避免用户把设备限制误判为软件故障;失败、回读成功和恢复路径都进入同一套反馈。
完成写入与回读
设备或链路暂不可用
未暴露稳定接口
失败并保留恢复入口
状态回读并恢复稳定
Technical research
本轮调研确认 AMD ADLX 提供公开的显示饱和度能力接口;NVIDIA 的公开 NVAPI 与 Intel 面向普通桌面应用的公开接口中,未找到适合稳定发布的同等写入能力。因此 0.1.7 先交付可验证的 DDC/CI 与 Windows 软件色彩路径,没有用厂商私有调用制造“三家显卡均已支持”的假象。
05 · User feedback
这些匿名反馈涉及预设分享、多显示器、饱和度和界面适配。我先区分功能诉求与环境故障,再决定进入体验设计、兼容性诊断还是布局重构。
反馈来源
公开内容平台评论主要问题
切换、分享、兼容与界面适配隐私处理
头像、用户名与时间已匿名化公开反馈 / PUBLIC RESPONSE
LootPilot 与 ShadePilot 两项公开产品累计获得 3000+ 点赞、5200+ 收藏与 60+ GitHub Stars。
以上为公开互动与公开反馈数据,不等同于独立用户数、实际使用人数或下载量。
Feedback Loop · 高 DPI 布局
A1 · Supporting tools

全局快捷键与多预设循环切换
按前台应用规则自动应用指定预设
环境诊断中心集中显示系统与设备能力
本地保存设置,不包含账号、遥测或广告 SDK
A2 · 迭代附录
核心判断已经归入控制体验、高 DPI 和能力状态三个故事;需要核对技术演进时,可以展开下面的完整记录。
BETA 0.1.5 · 产品闭环
从单项调节,形成可保存、可分享、可恢复的体验闭环
用户发现饱和度跟随显示器而不是画面风格。重新梳理状态归属后,饱和度改为预设参数,并同步进入保存、快捷键、循环切换、自动应用、A/B 对比与重置流程。分享代码升级为 SP2,同时为旧预设和 SP1 代码提供默认值迁移。
BETA 0.1.5 · 辅助能力
比较、切换、分享和诊断围绕同一核心任务工作
加入按住查看原画、A/B 临时对比、前台应用自动切换、多预设循环快捷键、分享代码和环境诊断中心。预设支持编辑、重命名和删除,同时移除重复的旧 JSON 导入导出入口。
BETA 0.1.6 · 根因定位
把反复出现的视觉 Bug 提升为可验证的系统问题
用户截图显示字体被滑块裁切。定位后确认旧 WinForms 固定坐标、控件高度与 Per-Monitor DPI 缩放不一致。先完成 100%—200% 五档碰撞检查,再停止继续逐项移动像素,转向布局架构重构。
BETA 0.1.7 · 架构重构
2K、4K 与高 DPI 下布局不再依赖单机像素微调
主界面重构为 TableLayoutPanel 与 FlowLayoutPanel:参数行、画面风格网格、顶部导航和底部状态区由容器分配尺寸。主题改为按容器语义递归继承,并将页面收敛为单一滚动区域。
BETA 0.1.7 · 能力透明
兼容性从隐藏限制变成可以理解的产品反馈
饱和度加入自动、显示器 DDC/CI 与 Windows 软件色彩后端选择,并在运行时检测可用性。不可用时仍保留控件位置,禁用操作并解释原因,避免状态消失、界面跳动或静默失败。
发布与回归
形成可追踪、可构建、可公开验证的交付结果
窗口标题、文件版本、README、CHANGELOG、可执行文件、发布压缩包和源码包保持一致;针对主题继承、下拉框边界、重复滚动和不可用状态继续回归,最终发布 BETA 0.1.7。
BETA 0.1.8 · 多显示器
从“写入成功”推进到“写入了正确的设备”
混合显卡设备上,Gamma Ramp 可能被写入错误输出。版本改为通过目标 DISPLAY 创建对应设备上下文,并在诊断信息中显示输出显卡;多屏同步按逻辑输出去重,单屏失败也不会阻断其他屏幕。
BETA 0.1.9 · 性能边界
把“轻量”落实为可解释的运行时行为
原画对比改为事件式切换,移除 25ms 按键轮询;关闭自动切换时彻底停止后台检测。软件饱和度改为按需启动,在全屏应用前台时暂停可能与帧生成技术冲突的颜色矩阵。
BETA 0.2.0 · 工作流延伸
同一套视觉意图可以被观察、导出并安全恢复
主界面加入实时明暗曲线,并可导出标准 33³ .cube 3D LUT 供 OBS 使用;同时加入独立游戏性能保护,在全屏期间暂停软件饱和度与显示器重检,退出后再延迟恢复。
BETA 0.2.1 · WPF 迁移
界面重构不以丢失成熟能力为代价
将旧版核心能力迁移到 WPF,并统一主界面、工具中心和深浅主题;恢复参数风险分析、快捷键循环范围、气泡说明与硬件启动值恢复,同时补齐不同 DPI 下的内容布局。
BETA 0.2.1 · 环境恢复
把偶发设备变化转化为可恢复的产品状态
监听显示环境变化,在显示器重连、休眠唤醒后延迟重扫设备并恢复画面风格;重新采集 Gamma 基线,减少混合显卡、多显示器和全屏切换后的状态漂移。
BETA 0.3.0 · 写入验证
从“调用成功”推进到“目标、结果和失败原因都可确认”
Gamma Ramp 写入会重新绑定目标显示输出、有限重试并回读验证;驱动调用移到后台线程,多屏应用按一次原子操作处理,最近结果与错误进入环境诊断中心。
A3 · Boundaries
ShadePilot 不读取或修改第三方应用进程,不创建覆盖层、不截图、不模拟输入,也不依赖在线服务。它只调用 Windows 显示与色彩能力,并为设备差异保留清楚的诊断与恢复路径。
DDC/CI、HDR、扩展坞、转接器和厂商实现都会影响可用能力,界面应如实显示而不是伪装成功。
启动时记录可读取状态,硬件参数与画面风格分别重置,正常退出默认执行恢复。
只有当新能力能缩短判断路径、减少重复设置或提高可诊断性时,才进入产品范围。