Files
2026-09-30 16:13:31 -07:00

33 lines
2.5 KiB
Markdown

# macOS UI 清晰度
原生客户端按 macOS 窗口的逻辑尺寸布局,在 Retina 的物理像素尺寸上绘制 UI。
本轮保持 40250 的窗口尺寸、格子、图标位置和点击逻辑,通过更细的纹理和字形改善显示。
- `hd_ui.pak` 提供 2× UI 图片;原版 EPK 继续负责逻辑尺寸和 UV。高清纹理不改变道具数据。
- 加载顺序为显式 `MT_HD_UI_PAK`、应用资源目录、客户端工作目录。缺失或无效时记录一次日志并使用原图。
- mac 打包必须包含通过索引/PNG 检查的高清包,同时包含 SDL3、Vulkan loader 和 MoltenVK。
- 轴对齐图片的起点对齐物理像素;宽高、UV 和旋转保持不变。一比一显示使用 point 采样,其余缩放保留 linear。
- 字体按物理像素/逻辑像素比向上取整生成 1–4× 字形。Retina 字形保留 8 位覆盖率,1× 路径保持原版阈值。
- 窗口尺寸、显示器和显示倍率变化时,在脚本帧之间重建字体页。字符信息节点地址和原字号/字距保留。
构建高清包使用现有 Real-ESRGAN 管线:先放大 4×,再缩到 2×,恢复原图低频残差与纹理,
对透明边缘填色和可平铺背景补边。模型不会恢复原图中不存在的真实细节,因此保留原版素材开关便于对照。
工具来源:[Real-ESRGAN 官方发布](https://github.com/xinntao/Real-ESRGAN/releases/tag/v0.2.5.0)。
```sh
python3 scripts/build_hd_ui.py --esrgan build/tools/realesrgan \
--client build/zh-locale/Client --locale zh --out build/hd-ui/hd_ui.pak
python3 scripts/verify_hd_ui.py build/hd-ui/hd_ui.pak
cmake --build build/release --target mt_native_render -j8
scripts/package_mac_app.sh build/release build/zh-locale/Client dist/Metin2.app build/hd-ui/hd_ui.pak
```
临时关闭高清图片:`MT_HD_UI=0 dist/Metin2.app/Contents/MacOS/Metin2`。
字体强制倍率:`MT_FONT_OVERSAMPLE=1`(用于原版对照)或 `2` 等;默认自动适应显示器。
启动日志应显示 `[hd_ui] loaded ... textures` 和 `UI glyph raster: 2x ...`(普通 Retina 屏)。
验证:`host.ui_quality` 检查物理像素对齐、采样选择和无效高清索引回退;`port.text` 在
1→2→3→1→2× 中检查字符指针、字号、字距、页面尺寸和 8 位透明度。旧字体实现不能通过这些新增检查。
实际应用用本地测试服务器打开背包、填入武器/防具/消耗品并截取原尺寸画面,检查背包与工具栏;
截图仅用于清晰度验收,不是 Windows 像素完全等价声明。应用为本地 ad-hoc 签名构建。