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:
parent
f9589fab60
commit
8c59b93505
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user