From 9905b90a183cd82c27b534a6244c4a683d64421e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Blissing?= Date: Mon, 4 Feb 2019 14:46:42 +0100 Subject: [PATCH] Add search location for textures in FBX plugin The FBX plugin may fail texture lookup even if the texture is located in the same folder as the model file. This change tries, as a last resort, to check if the texture filename is available in the same folder as the model. --- src/osgPlugins/fbx/fbxMaterialToOsgStateSet.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/osgPlugins/fbx/fbxMaterialToOsgStateSet.cpp b/src/osgPlugins/fbx/fbxMaterialToOsgStateSet.cpp index fa91b90a9..7080fb0a1 100644 --- a/src/osgPlugins/fbx/fbxMaterialToOsgStateSet.cpp +++ b/src/osgPlugins/fbx/fbxMaterialToOsgStateSet.cpp @@ -184,14 +184,18 @@ osg::ref_ptr FbxMaterialToOsgStateSet::fbxTextureToOsgTexture(co { filename = osgDB::concatPaths(_dir, fbx->GetFileName()); } - else if (osgDB::fileExists(fbx->GetFileName())) // Then try "name" (if absolute) + else if (osgDB::fileExists(fbx->GetFileName())) // Then try "name" (if absolute) { filename = fbx->GetFileName(); } - else if (osgDB::fileExists(osgDB::concatPaths(_dir, fbx->GetRelativeFileName()))) // Else try "current dir/name" + else if (osgDB::fileExists(osgDB::concatPaths(_dir, fbx->GetRelativeFileName()))) // Else try "current dir + relative filename" { filename = osgDB::concatPaths(_dir, fbx->GetRelativeFileName()); } + else if (osgDB::fileExists(osgDB::concatPaths(_dir, osgDB::getSimpleFileName(fbx->GetFileName())))) // Else try "current dir + simple filename" + { + filename = osgDB::concatPaths(_dir, osgDB::getSimpleFileName(fbx->GetFileName())); + } else { OSG_WARN << "Could not find valid file for " << fbx->GetFileName() << std::endl;