Dynamic Pipeline(水管流程)
資料只從本機截圖資料夾流向 SDR 桌布資料夾;展示頁不讀取、不掃描、不嵌入真實圖片。
System Architecture(系統架構)
Repo 只負責 workflow wrapper(工作流程包裝);核心 HDR 轉換交給外部 `hdrfix.exe`。
Interface(介面)
- README usage(使用說明)
- config.example.json
- Scheduled Task(工作排程)
Workflow(工作流)
- test-presets.ps1
- convert-once.ps1
- watch-folder.ps1
- common.ps1
Conversion(轉換)
- hdrfix.exe
- preset exposure test
- SDR PNG output
Boundary(邊界)
- 不提交 `.jxr`
- 不提交桌布輸出
- 不提交 `config.json`
User Architecture(使用者架構)
使用者只要安裝 `hdrfix.exe`、設定資料夾,之後可手動批次轉換或讓監控腳本常駐。
安裝
下載 `hdrfix.exe`,放到 `tools\hdrfix.exe`。
試片
執行 `test-presets.ps1`,用肉眼挑最接近遊戲內 HDR 觀感的 exposure(曝光)。
設定
把選好的 `exposure` 寫回 `config.json`,確認輸入與輸出資料夾。
批次
執行 `convert-once.ps1`,先處理現有 `.jxr`。
監控
執行 `watch-folder.ps1`,新 `.jxr` 寫入完成後自動轉換。
桌布
Windows 桌布幻燈片指向 `D:\桌布\Forza Horizon 6`。
使用者如何使用此功能
這段是日常操作手順:第一次先完成設定,之後只要批次轉換或讓監控常駐,Windows 桌布就固定吃 SDR 輸出資料夾。
第一次設定
把 `hdrfix.exe` 放到 `tools\hdrfix.exe`,複製 `config.example.json` 成 `config.json`,確認 `inputFolder` 與 `outputFolder`。
Copy-Item .\config.example.json .\config.json notepad .\config.json
先挑主觀最接近 HDR 的 exposure
選一張代表性的 `.jxr`,輸出多組 exposure(曝光)試片;比較後把最喜歡的值寫回 `config.json`。
.\scripts\test-presets.ps1 -InputPath "C:\Users\邢弘軒\Videos\NVIDIA\Forza Horizon 6\sample.jxr" -ConfigPath .\config.json # output: # sample_exp-2.png # sample_exp-1.png # sample_exp0.png # sample_exp1.png
把選好的 exposure 寫回設定
例如你覺得 `sample_exp1.png` 最接近遊戲內 Forza HDR 觀感,就把 `config.json` 的 `exposure` 設為 `1`。
{
"exposure": 1
}
先轉換現有截圖
當資料夾裡已經有一批 Forza `.jxr`,先跑一次批次轉換;已存在的 `.png` 會依 `overwrite=false` 跳過。
.\scripts\convert-once.ps1 -ConfigPath .\config.json
之後監控新截圖
玩遊戲時讓監控腳本開著,新 `.jxr` 寫入完成後會自動輸出 SDR `.png`,原始 `.jxr` 預設保留。
.\scripts\watch-folder.ps1 -ConfigPath .\config.json
登入後自動啟動
不想手動開監控時,建立 Windows Scheduled Task(Windows 工作排程);未來可用 `-Uninstall` 移除。
.\scripts\install-scheduled-task.ps1 -ConfigPath .\config.json .\scripts\install-scheduled-task.ps1 -Uninstall
設定 Windows 桌布
到 Windows Settings(Windows 設定)→ Personalization(個人化)→ Background(背景),選 Slideshow(幻燈片),資料夾指向 SDR 輸出位置。
D:\桌布\Forza Horizon 6
常見狀況
如果腳本不能執行,改用 `-ExecutionPolicy Bypass`;如果沒有輸出,先確認 `hdrfix.exe` 路徑、input folder(輸入資料夾)與 log(紀錄)。
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\convert-once.ps1 -ConfigPath .\config.json Get-Content .\logs\converter-*.log
不提交真實截圖
`.jxr` 原始檔、轉出的桌布、log(紀錄)、`config.json` 與 `hdrfix.exe` 都留在本機。
失敗不中斷整批
單張失敗會寫 log,下一張繼續處理;已存在輸出檔會依 `overwrite=false` 跳過。
保留升級路徑
GUI(圖形介面)、JPG quality(JPG 品質)、多 input folder(多輸入資料夾)與 Toast notification(Toast 通知)留待未來。
Verification Panel(驗證面板)
先跑 repo verification(儲存庫驗證),再用一張測試 `.jxr` 做人工轉換驗收。
.\scripts\verify.ps1 .\scripts\test-presets.ps1 -InputPath ".\sample.jxr" -ConfigPath .\config.json .\scripts\convert-once.ps1 -ConfigPath .\config.json .\scripts\watch-folder.ps1 -ConfigPath .\config.json