From 960bdf266259af3d07194d5e43025f5f577d7a66 Mon Sep 17 00:00:00 2001 From: atdunbg Date: Wed, 23 Sep 2026 19:51:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E8=B4=B4?= =?UTF-8?q?=E5=9B=BE=E6=96=87=E4=BB=B6=E5=90=8D=E6=8E=A2=E6=B5=8B=E2=80=94?= =?UTF-8?q?=E2=80=94=E8=B5=84=E4=BA=A7=E8=AF=BB=E5=8F=96=E4=BF=9D=E6=8C=81?= =?UTF-8?q?=E7=A1=AE=E5=AE=9A=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按用户决定:OBJ/FBX 按材质定义(MTL/assimp 槽位)写死读取, 不做文件名猜测补槽;贴图缺失走默认纹理 + INFO 日志可见。 补槽职责归将来手动材质编辑接口。 --- Engine/src/Renderer/Model.cpp | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/Engine/src/Renderer/Model.cpp b/Engine/src/Renderer/Model.cpp index 3c19415..caa97b4 100644 --- a/Engine/src/Renderer/Model.cpp +++ b/Engine/src/Renderer/Model.cpp @@ -280,28 +280,8 @@ Scope Model::ProcessMesh(aiMesh* mesh, const aiScene* scene) texPaths[slot] = (modelDir / path.C_Str()).string(); } } - - // OBJ 常见导出遗漏:PBR 贴图在目录里但 MTL 未引用 - //(backpack 的 roughness.jpg/ao.jpg 正是如此)。 - // 约定文件名探测补槽,命中留 INFO 锚点 - if (!m_IsGltf) { - const std::pair probes[] = { - {"roughness", Material::MetallicRoughness}, - {"ao", Material::Ao}, - {"occlusion", Material::Ao}, - }; - for (const auto& [stem, slot] : probes) { - if (!texPaths[slot].empty()) continue; - for (const char* ext : {".jpg", ".png"}) { - std::filesystem::path p = modelDir / (std::string(stem) + ext); - if (std::filesystem::exists(p)) { - texPaths[slot] = p.string(); - ENGINE_INFO("Probed {} texture: {}", stem, p.string()); - break; - } - } - } - } + // 注:不做文件名探测/自动补槽——资产缺什么就是什么; + // 补槽是将来手动材质编辑的职责,加载期保持确定性 // 材质加载可见性:贴图槽缺失/路径解析错误会静默退化成默认 // 纹理(金属全没 → 塑料感),这里留下诊断锚点