diff options
author | bqqbarbhg <bqqbarbhg@gmail.com> | 2024-04-13 20:28:12 +0300 |
---|---|---|
committer | bqqbarbhg <bqqbarbhg@gmail.com> | 2024-04-13 20:28:12 +0300 |
commit | 2a757e4897f14405b46530b3e7c6e31bd4cdc6ab (patch) | |
tree | 07ef8e3285867f4bcb391ed6f611041db2f59af9 /modules | |
parent | 43b32f9d0baa13ef8e7079521fbef7c4f090aa88 (diff) | |
download | redot-engine-2a757e4897f14405b46530b3e7c6e31bd4cdc6ab.tar.gz |
Fix FBX texture path resolving
Diffstat (limited to 'modules')
-rw-r--r-- | modules/fbx/fbx_document.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/fbx/fbx_document.cpp b/modules/fbx/fbx_document.cpp index 63766247ee..bde23289f4 100644 --- a/modules/fbx/fbx_document.cpp +++ b/modules/fbx/fbx_document.cpp @@ -990,8 +990,8 @@ Error FBXDocument::_parse_images(Ref<FBXState> p_state, const String &p_base_pat for (int texture_i = 0; texture_i < static_cast<int>(fbx_scene->texture_files.count); texture_i++) { const ufbx_texture_file &fbx_texture_file = fbx_scene->texture_files[texture_i]; String path = _as_string(fbx_texture_file.filename); - path = ProjectSettings::get_singleton()->localize_path(path); - if (path.is_absolute_path() && !path.is_resource_file()) { + // Use only filename for absolute paths to avoid portability issues. + if (path.is_absolute_path()) { path = path.get_file(); } if (!p_base_path.is_empty()) { @@ -2239,6 +2239,10 @@ Error FBXDocument::_parse_lights(Ref<FBXState> p_state) { } String FBXDocument::_get_texture_path(const String &p_base_dir, const String &p_source_file_path) const { + // Check if the original path exists first. + if (FileAccess::exists(p_source_file_path)) { + return p_source_file_path.strip_edges(); + } const String tex_file_name = p_source_file_path.get_file(); const Vector<String> subdirs = { "", "textures/", "Textures/", "images/", |