obj: Also find .mtl images by their basename, if all else fails (T77801)

While T77801 itself is working as expected in the new C++ obj
importer, the repro file there uses absolute paths to material images,
yet the images themselves are right there in the current folder.

The old python based importer did find them, since it was doing a
really complex image search. My understanding is that while C++
importer was developed, it was decided to not do that -- however
just the "basename file in the mtl directory" sounds simple enough
and gets the repro case file work correctly.
This commit is contained in:
Aras Pranckevicius 2022-08-10 18:03:27 +03:00
parent f9589fab60
commit 8c59b93505
Notes: blender-bot 2023-02-14 00:10:08 +01:00
Referenced by issue #100342, Blender unresponsive to mouse input on MacBook Pro
1 changed files with 8 additions and 0 deletions

View File

@ -134,6 +134,14 @@ static Image *load_texture_image(Main *bmain,
return image;
}
}
/* Try taking just the basename from input path. */
std::string base_path{tex_map.mtl_dir_path + BLI_path_basename(tex_map.image_path.c_str())};
if (base_path != tex_path) {
image = load_image_at_path(bmain, base_path, relative_paths);
if (image != nullptr) {
return image;
}
}
image = create_placeholder_image(bmain, tex_path);
return image;