From aba8383283d6d5a0180236a718d1102495f20299 Mon Sep 17 00:00:00 2001 From: Tommy Date: Wed, 10 Jan 2018 19:18:11 +0100 Subject: [PATCH] Add unit test for correct FBX phong material import. --- test/models/FBX/phong_cube.fbx | Bin 0 -> 17084 bytes test/unit/utFBXImporterExporter.cpp | 30 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 test/models/FBX/phong_cube.fbx diff --git a/test/models/FBX/phong_cube.fbx b/test/models/FBX/phong_cube.fbx new file mode 100644 index 0000000000000000000000000000000000000000..851021d1c77e0480a8e29d41ae47097387c8509f GIT binary patch literal 17084 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 literal 0 HcmV?d00001 diff --git a/test/unit/utFBXImporterExporter.cpp b/test/unit/utFBXImporterExporter.cpp index 975f2acef..d2415a8e5 100644 --- a/test/unit/utFBXImporterExporter.cpp +++ b/test/unit/utFBXImporterExporter.cpp @@ -46,6 +46,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include +#include +#include +#include using namespace Assimp; @@ -67,3 +70,30 @@ TEST_F( utFBXImporterExporter, importBareBoxWithoutColorsAndTextureCoords ) { const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/FBX/box.fbx", aiProcess_ValidateDataStructure ); EXPECT_NE( nullptr, scene ); } + +TEST_F( utFBXImporterExporter, importPhongMaterial ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/FBX/phong_cube.fbx", aiProcess_ValidateDataStructure ); + EXPECT_NE( nullptr, scene ); + EXPECT_EQ( (unsigned int)1, scene->mNumMaterials ); + const aiMaterial *mat = scene->mMaterials[0]; + EXPECT_NE( nullptr, mat ); + float f; aiColor3D c; + // phong_cube.fbx has all properties defined + EXPECT_EQ( mat->Get(AI_MATKEY_COLOR_DIFFUSE, c), aiReturn_SUCCESS ); + EXPECT_EQ( c, aiColor3D(0.5, 0.25, 0.25) ); + EXPECT_EQ( mat->Get(AI_MATKEY_COLOR_SPECULAR, c), aiReturn_SUCCESS ); + EXPECT_EQ( c, aiColor3D(0.25, 0.25, 0.5) ); + EXPECT_EQ( mat->Get(AI_MATKEY_SHININESS_STRENGTH, f), aiReturn_SUCCESS ); + EXPECT_EQ( f, 0.5 ); + EXPECT_EQ( mat->Get(AI_MATKEY_SHININESS, f), aiReturn_SUCCESS ); + EXPECT_EQ( f, 10.0 ); + EXPECT_EQ( mat->Get(AI_MATKEY_COLOR_AMBIENT, c), aiReturn_SUCCESS ); + EXPECT_EQ( c, aiColor3D(0.125, 0.25, 0.25) ); + EXPECT_EQ( mat->Get(AI_MATKEY_COLOR_EMISSIVE, c), aiReturn_SUCCESS ); + EXPECT_EQ( c, aiColor3D(0.25, 0.125, 0.25) ); + EXPECT_EQ( mat->Get(AI_MATKEY_COLOR_TRANSPARENT, c), aiReturn_SUCCESS ); + EXPECT_EQ( c, aiColor3D(0.75, 0.5, 0.25) ); + EXPECT_EQ( mat->Get(AI_MATKEY_OPACITY, f), aiReturn_SUCCESS ); + EXPECT_EQ( f, 0.5 ); +}