From 958f8c57fdefea77ef01ce783d1ad1fd5db52cd5 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova <luca@openrobotics.org> Date: Mon, 1 Aug 2022 16:56:33 +0200 Subject: [PATCH 1/2] Add a test for gltf with external textures Signed-off-by: Luca Della Vedova <luca@openrobotics.org> --- graphics/src/AssimpLoader_TEST.cc | 24 +++++ test/data/gltf/PurpleCube.bin | Bin 0 -> 840 bytes test/data/gltf/PurpleCube.gltf | 133 ++++++++++++++++++++++++++ test/data/gltf/PurpleCube_Diffuse.png | Bin 0 -> 5198 bytes 4 files changed, 157 insertions(+) create mode 100644 test/data/gltf/PurpleCube.bin create mode 100644 test/data/gltf/PurpleCube.gltf create mode 100644 test/data/gltf/PurpleCube_Diffuse.png diff --git a/graphics/src/AssimpLoader_TEST.cc b/graphics/src/AssimpLoader_TEST.cc index a32a0a331..75a179cd3 100644 --- a/graphics/src/AssimpLoader_TEST.cc +++ b/graphics/src/AssimpLoader_TEST.cc @@ -620,6 +620,30 @@ TEST_F(AssimpLoader, LoadGlTF2Box) EXPECT_DOUBLE_EQ(mat->Transparency(), 0.0); } +///////////////////////////////////////////////// +// Open a gltf mesh with an external texture +TEST_F(AssimpLoader, LoadGlTF2BoxExternalTexture) +{ + common::AssimpLoader loader; + common::Mesh *mesh = loader.Load( + common::testing::TestFile("data/gltf", "PurpleCube.gltf")); + + EXPECT_STREQ("unknown", mesh->Name().c_str()); + + // Make sure we can read the submesh name + EXPECT_STREQ("PurpleCube", mesh->SubMeshByIndex(0).lock()->Name().c_str()); + + EXPECT_EQ(mesh->MaterialCount(), 1u); + + const common::MaterialPtr mat = mesh->MaterialByIndex(0u); + ASSERT_TRUE(mat.get()); + // No data (it is a file), but a populated filename + EXPECT_EQ(nullptr, mat->TextureData()); + auto testTextureFile = + common::testing::TestFile("data/gltf", "PurpleCube_Diffuse.png"); + EXPECT_EQ(testTextureFile, mat->TextureImage()); +} + ///////////////////////////////////////////////// // Use a fully featured glb test asset, including PBR textures, emissive maps // embedded textures, lightmaps, animations to test advanced glb features diff --git a/test/data/gltf/PurpleCube.bin b/test/data/gltf/PurpleCube.bin new file mode 100644 index 0000000000000000000000000000000000000000..59a9334fbb05d96eebc3bc20f70f2e091be473dd GIT binary patch literal 840 zcmah_IZgvX5G=q8tifP&n1qb$5fkh_1cbyVkO-{#!tNLR01^bDV;~|nAAyLf(Kc$2 zEPJHsuBoo-?p+|xkS=)E;@WAJ;YwXP%_>|wO^)f)9y)OyuAOEXwjI=G6*jLlIi8Vo z$96Ny|1-}SR`%bqz<0g>cgtp(*XM*YUD~1YojEhtux@j_(sWj{yrAiNTg@_X`#q`N z=94P^G~u53iTIpZeEezxetECjFy#A=7nf~#rRGtdq74t^<P(ohueW&lN~^y#;et5M zoA6F=-_@hM<W-wKGqZ2JY12NR)Ji|)eo1#tE&G0GKJ~yBN`7jIZR}zXW5zL#ae_09 d7)Ln3J`T}i>|p~tIKqH&fK8mDkAktl5Pz7Cp^pFn literal 0 HcmV?d00001 diff --git a/test/data/gltf/PurpleCube.gltf b/test/data/gltf/PurpleCube.gltf new file mode 100644 index 000000000..48f941f4a --- /dev/null +++ b/test/data/gltf/PurpleCube.gltf @@ -0,0 +1,133 @@ +{ + "asset" : { + "generator" : "Khronos glTF Blender I/O v1.8.19", + "version" : "2.0" + }, + "scene" : 0, + "scenes" : [ + { + "name" : "Scene", + "nodes" : [ + 0 + ] + } + ], + "nodes" : [ + { + "mesh" : 0, + "name" : "PurpleCube" + } + ], + "materials" : [ + { + "doubleSided" : true, + "name" : "PurpleCube", + "pbrMetallicRoughness" : { + "baseColorTexture" : { + "index" : 0 + }, + "metallicFactor" : 0, + "roughnessFactor" : 0.5 + } + } + ], + "meshes" : [ + { + "name" : "PurpleCube", + "primitives" : [ + { + "attributes" : { + "POSITION" : 0, + "NORMAL" : 1, + "TEXCOORD_0" : 2 + }, + "indices" : 3, + "material" : 0 + } + ] + } + ], + "textures" : [ + { + "sampler" : 0, + "source" : 0 + } + ], + "images" : [ + { + "mimeType" : "image/png", + "name" : "PurpleCube_Diffuse", + "uri" : "PurpleCube_Diffuse.png" + } + ], + "accessors" : [ + { + "bufferView" : 0, + "componentType" : 5126, + "count" : 24, + "max" : [ + 1, + 1, + 2 + ], + "min" : [ + -1, + -1, + 0 + ], + "type" : "VEC3" + }, + { + "bufferView" : 1, + "componentType" : 5126, + "count" : 24, + "type" : "VEC3" + }, + { + "bufferView" : 2, + "componentType" : 5126, + "count" : 24, + "type" : "VEC2" + }, + { + "bufferView" : 3, + "componentType" : 5123, + "count" : 36, + "type" : "SCALAR" + } + ], + "bufferViews" : [ + { + "buffer" : 0, + "byteLength" : 288, + "byteOffset" : 0 + }, + { + "buffer" : 0, + "byteLength" : 288, + "byteOffset" : 288 + }, + { + "buffer" : 0, + "byteLength" : 192, + "byteOffset" : 576 + }, + { + "buffer" : 0, + "byteLength" : 72, + "byteOffset" : 768 + } + ], + "samplers" : [ + { + "magFilter" : 9729, + "minFilter" : 9987 + } + ], + "buffers" : [ + { + "byteLength" : 840, + "uri" : "PurpleCube.bin" + } + ] +} diff --git a/test/data/gltf/PurpleCube_Diffuse.png b/test/data/gltf/PurpleCube_Diffuse.png new file mode 100644 index 0000000000000000000000000000000000000000..09b608d6554a09806451fb26122b49926e0aa8b3 GIT binary patch literal 5198 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 literal 0 HcmV?d00001 From bab4260a0fb1f9a5551615efee86ba6fc42cffea Mon Sep 17 00:00:00 2001 From: Luca Della Vedova <luca@openrobotics.org> Date: Mon, 22 Aug 2022 16:58:14 +0800 Subject: [PATCH 2/2] Use joinPaths, image of gazebo logo Signed-off-by: Luca Della Vedova <luca@openrobotics.org> --- graphics/src/AssimpLoader_TEST.cc | 2 +- test/data/gltf/PurpleCube_Diffuse.png | Bin 5198 -> 19375 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/graphics/src/AssimpLoader_TEST.cc b/graphics/src/AssimpLoader_TEST.cc index 75a179cd3..b80f561b1 100644 --- a/graphics/src/AssimpLoader_TEST.cc +++ b/graphics/src/AssimpLoader_TEST.cc @@ -626,7 +626,7 @@ TEST_F(AssimpLoader, LoadGlTF2BoxExternalTexture) { common::AssimpLoader loader; common::Mesh *mesh = loader.Load( - common::testing::TestFile("data/gltf", "PurpleCube.gltf")); + common::testing::TestFile("data", "gltf", "PurpleCube.gltf")); EXPECT_STREQ("unknown", mesh->Name().c_str()); diff --git a/test/data/gltf/PurpleCube_Diffuse.png b/test/data/gltf/PurpleCube_Diffuse.png index 09b608d6554a09806451fb26122b49926e0aa8b3..2381764737ebb82fe31e4d49fe37ee19e55bd3b5 100644 GIT binary patch literal 19375 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 M%GvJu3EHi{0nFnf#Q*>R literal 5198 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