Skip to content

纹理不显示:模型白色/无颜色

状态: 🟢 已修复

日期: 2025-07-16 严重程度: 🔴 P1(渲染错误,模型纹理全白) 影响范围: frontend/src/core/main.ts(加载器注册)+ internal/app/app.go(HTTP 服务器) 发现方式: 用户反馈 修复方案: 注册 BMP/TGA 加载器 + basenameFallbackFS 路径容错 + MmdStandardMaterialProxy

错误信息

无 404,无报错,仅控制台有 FS: GET 日志。

可能原因

  1. PMX 内部贴图路径与实际文件路径不匹配(如 ../tex/xxx.bmp vs textures/xxx.bmp
  2. 贴图路径含中文字符导致 URL 编码/解码不一致
  3. 文件扩展名大小写(.BMP vs .bmp
  4. PMX 使用 TGA/BMP 但加载器注册不完整

已采取的修复

  • 注册 RegisterDxBmpTextureLoader() — 处理 BMP alpha 通道
  • 导入 @babylonjs/core/Materials/Textures/Loaders/tgaTextureLoader — TGA 支持
  • 设置 MmdRuntimeShared.MaterialProxyConstructor = MmdStandardMaterialProxy
  • Go HTTP 服务器添加 FS: GET 请求日志用于诊断

诊断方法

wails3 dev 控制台搜索 FS: GET / 开头的日志,看贴图文件是否被请求及结果状态码。

涉及文件

  • app.goStartFileServer(含日志)
  • frontend/src/core/main.tsinit() 中加载器注册