Repository navigation
Prism v1.2.3
一张「未压缩」贴图修好了,顺手把贴图替换的两份代码合成了一份。
修好:未压缩贴图替换失败
现象:某些贴图(例如 KARDS 的 T_standard_ammo,看着就是一张普通插图)在桌面端点「替换」
会报 Could not detect a supported pixel format from the asset.,而原始预览完全正常。
原因有两层:
- 这类贴图是
PF_B8G8R8A8(未压缩 32 位彩色),尺寸还不是 2 的幂(2090×2311),
数据全部内联在.uexp里,没有.ubulk; - 桌面端的替换其实是交给
UAssetCLI子进程完成的,而 CLI 为了保持精简,自带了一份
纹理解析代码 —— 那份副本里没有未压缩格式,也还留着「尺寸必须是 2 的幂」的老判断。
于是主程序看得懂、能预览,CLI 一进去就抛异常。
现在 CLI 和主程序共用同一份解析代码:未压缩贴图直接按像素打包,PF_DXT1 用内置 BC1 编码,
两者都不再需要 astcenc / texconv。同类资产(非 2 的幂、没有 ubulk)也一并受益。
顺带
- 替换失败时界面只显示一行原因,完整的 CLI 输出写进日志(之前整段堆栈会铺在替换项上);
- 没有外部编码器时,不再拦掉本来就能内部编码的格式;
- 纹理解析 / mip 回写只剩一份实现(
UAssetTexture.Core),以后不会再出现
「主程序能预览、CLI 替换不了」这种分叉; - 261 项自动化断言全绿,发布包冒烟测试通过。
安装
- Windows:解压 zip,双击
Prism.Desktop.Desktop.exe
(UAssetCLI/与tools/要和它放在同一目录) - Android:直接覆盖安装 apk(
versionCode 10/versionName 1.2.3)