From 74080a083ad4764485bc633156dd37d0416281a0 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 14 Nov 2019 21:15:30 +0100 Subject: [PATCH] add texture-transfrm unittest. --- test/models/glTF2/textureTransform/Arrow.png | Bin 0 -> 867 bytes .../models/glTF2/textureTransform/Correct.png | Bin 0 -> 2457 bytes test/models/glTF2/textureTransform/Error.png | Bin 0 -> 2273 bytes .../models/glTF2/textureTransform/License.txt | 0 .../glTF2/textureTransform/NotSupported.png | Bin 0 -> 3291 bytes .../textureTransform/TextureTransformTest.bin | Bin 0 -> 136 bytes .../TextureTransformTest.gltf | 540 ++++++++++++++++++ test/models/glTF2/textureTransform/UV.png | Bin 0 -> 12345 bytes test/unit/utglTF2ImportExport.cpp | 7 + 9 files changed, 547 insertions(+) create mode 100644 test/models/glTF2/textureTransform/Arrow.png create mode 100644 test/models/glTF2/textureTransform/Correct.png create mode 100644 test/models/glTF2/textureTransform/Error.png create mode 100644 test/models/glTF2/textureTransform/License.txt create mode 100644 test/models/glTF2/textureTransform/NotSupported.png create mode 100644 test/models/glTF2/textureTransform/TextureTransformTest.bin create mode 100644 test/models/glTF2/textureTransform/TextureTransformTest.gltf create mode 100644 test/models/glTF2/textureTransform/UV.png diff --git a/test/models/glTF2/textureTransform/Arrow.png b/test/models/glTF2/textureTransform/Arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..fe3405b3f6b14ffdc920bc0f4f30560cabcbab39 GIT binary patch literal 867 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVAk?aJ56J?j$lS^=gjZ_g@TqW zaQReo#@OwU{5ebgCEMCMJT~8a;-RrdgX`zf#0#yxL)Q;a@-sk40k#~WxL&^iVd z1_nkNG8?wL7TC>aTp-zK$i^^BP{s4n_S?B442yQ9`bRI_!+Sh;ipY*&d}^#?Whhux|hU{RJu8Z@=7~*iy!F?biAEizS#1`x>l{J5ExW zf1b0J$K|`;f;^Vvk3ZfncB(TMcx&kp`}o1@Z}Mj)E^J^9*(%J_emH+WcO{R-^BU*N zXAL*$2n$ZUne*+F--itL9s8wUl2_L` zFCVYk6mXw+1zP}+KHgBp5UR*g%EPe0iAAxG@hiirO;c>ntNI3Oo({Szk&zLdlfCv$ znf1;0-;>thB?JXa{Z~BZ-(r;Vc*+0fuRQIl+8DL{$1T4wKipM-07^X zlU{#~y8SmdKI;Vst03QEK`~Uy| literal 0 HcmV?d00001 diff --git a/test/models/glTF2/textureTransform/Correct.png b/test/models/glTF2/textureTransform/Correct.png new file mode 100644 index 0000000000000000000000000000000000000000..e332824fbc00f15ed290ac891bf18dedf74415e5 GIT binary patch literal 2457 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 L1NF*>w&DK)(UL^| literal 0 HcmV?d00001 diff --git a/test/models/glTF2/textureTransform/License.txt b/test/models/glTF2/textureTransform/License.txt new file mode 100644 index 000000000..e69de29bb diff --git a/test/models/glTF2/textureTransform/NotSupported.png b/test/models/glTF2/textureTransform/NotSupported.png new file mode 100644 index 0000000000000000000000000000000000000000..721e7fd765079c7f2111254145c49e1dbec124d3 GIT binary patch literal 3291 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 literal 0 HcmV?d00001 diff --git a/test/models/glTF2/textureTransform/TextureTransformTest.bin b/test/models/glTF2/textureTransform/TextureTransformTest.bin new file mode 100644 index 0000000000000000000000000000000000000000..6765a13008a0b763d65a217da7fd651a66c2f056 GIT binary patch literal 136 zcmY+6fe8R048x)x=4*cDYc4uL3ngVM1t!qLO1{~jk~i-IjO@ub=lkEu?%A$UDPgHv Fcmbi}2l)U1 literal 0 HcmV?d00001 diff --git a/test/models/glTF2/textureTransform/TextureTransformTest.gltf b/test/models/glTF2/textureTransform/TextureTransformTest.gltf new file mode 100644 index 000000000..6dde51d9a --- /dev/null +++ b/test/models/glTF2/textureTransform/TextureTransformTest.gltf @@ -0,0 +1,540 @@ +{ + "accessors": [ + { + "bufferView": 0, + "componentType": 5126, + "count": 4, + "type": "VEC3", + "max": [ + 0.5, + 0.5, + 0.0 + ], + "min": [ + -0.5, + -0.5, + 0.0 + ], + "name": "Positions" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 4, + "type": "VEC2", + "name": "UV0" + }, + { + "bufferView": 2, + "componentType": 5126, + "count": 4, + "type": "VEC2", + "name": "UV1" + }, + { + "bufferView": 3, + "componentType": 5125, + "count": 6, + "type": "SCALAR", + "name": "Indices" + } + ], + "asset": { + "version": "2.0" + }, + "buffers": [ + { + "uri": "TextureTransformTest.bin", + "byteLength": 136 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteLength": 48, + "name": "Positions" + }, + { + "buffer": 0, + "byteOffset": 48, + "byteLength": 32, + "name": "UV0" + }, + { + "buffer": 0, + "byteOffset": 80, + "byteLength": 32, + "name": "UV1" + }, + { + "buffer": 0, + "byteOffset": 112, + "byteLength": 24, + "name": "Indices" + } + ], + "extensionsUsed": [ + "KHR_texture_transform" + ], + "images": [ + { + "uri": "UV.png" + }, + { + "uri": "Arrow.png" + }, + { + "uri": "Correct.png" + }, + { + "uri": "NotSupported.png" + }, + { + "uri": "Error.png" + } + ], + "materials": [ + { + "name": "Offset U", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0, + "extensions": { + "KHR_texture_transform": { + "offset": [ + 0.5, + 0.0 + ] + } + } + }, + "metallicFactor": 0 + } + }, + { + "name": "Offset V", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0, + "extensions": { + "KHR_texture_transform": { + "offset": [ + 0.0, + 0.5 + ] + } + } + }, + "metallicFactor": 0 + } + }, + { + "name": "Offset UV", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0, + "extensions": { + "KHR_texture_transform": { + "offset": [ + 0.5, + 0.5 + ] + } + } + }, + "metallicFactor": 0 + } + }, + { + "name": "Rotation", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 1, + "extensions": { + "KHR_texture_transform": { + "rotation": 0.39269908169872415480783042290994 + } + } + }, + "metallicFactor": 0 + } + }, + { + "name": "Scale", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 1, + "extensions": { + "KHR_texture_transform": { + "scale": [ + 1.5, + 1.5 + ] + } + } + }, + "metallicFactor": 0 + } + }, + { + "name": "All", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 1, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -0.2, + -0.1 + ], + "rotation": 0.3, + "scale": [ + 1.5, + 1.5 + ] + } + } + }, + "metallicFactor": 0 + } + }, + { + "name": "Correct", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 2 + }, + "metallicFactor": 0 + } + }, + { + "name": "NotSupported", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 3 + }, + "metallicFactor": 0 + } + }, + { + "name": "Error", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 4 + }, + "metallicFactor": 0 + } + } + ], + "meshes": [ + { + "name": "Offset U", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 2 + }, + "indices": 3, + "material": 0 + } + ] + }, + { + "name": "Offset V", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 2 + }, + "indices": 3, + "material": 1 + } + ] + }, + { + "name": "Offset UV", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 2 + }, + "indices": 3, + "material": 2 + } + ] + }, + { + "name": "Rotation", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 1 + }, + "indices": 3, + "material": 3 + } + ] + }, + { + "name": "Scale", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 1 + }, + "indices": 3, + "material": 4 + } + ] + }, + { + "name": "All", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 1 + }, + "indices": 3, + "material": 5 + } + ] + }, + { + "name": "Correct Marker", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 1 + }, + "indices": 3, + "material": 6 + } + ] + }, + { + "name": "Not Supported Marker", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 1 + }, + "indices": 3, + "material": 7 + } + ] + }, + { + "name": "Error Marker", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 1 + }, + "indices": 3, + "material": 8 + } + ] + } + ], + "nodes": [ + { + "name": "Offset U", + "mesh": 0, + "translation": [ + -1.1, + 0.55, + 0 + ] + }, + { + "name": "Offset V", + "mesh": 1, + "translation": [ + 0, + 0.55, + 0 + ] + }, + { + "name": "Offset UV", + "mesh": 2, + "translation": [ + 1.1, + 0.55, + 0 + ] + }, + { + "name": "Rotation", + "mesh": 3, + "translation": [ + -1.1, + -0.55, + 0 + ], + "children": [ + 4, + 5, + 6 + ] + }, + { + "name": "Rotation - Correct", + "mesh": 6, + "translation": [ + -0.07904822439840125109869401756656, + -0.51626748576241543174100150833647, + 0.01 + ], + "scale": [ + 0.15, + 0.15, + 0.15 + ] + }, + { + "name": "Rotation - Not Supported", + "mesh": 7, + "translation": [ + 0.27781745930520227684092879831533, + -0.27781745930520227684092879831533, + 0.01 + ], + "scale": [ + 0.15, + 0.15, + 0.15 + ] + }, + { + "name": "Rotation - Error", + "mesh": 8, + "translation": [ + 0.51626748576241543174100150833647, + 0.07904822439840125109869401756656, + 0.01 + ], + "scale": [ + 0.15, + 0.15, + 0.15 + ] + }, + { + "name": "Scale", + "mesh": 4, + "translation": [ + 0, + -0.55, + 0 + ], + "children": [ + 8, + 9 + ] + }, + { + "name": "Scale - Correct", + "mesh": 6, + "translation": [ + 0.01854497287013485122728586554355, + -0.01854497287013485122728586554355, + 0.01 + ], + "scale": [ + 0.1, + 0.1, + 0.1 + ] + }, + { + "name": "Scale - Not Supported", + "mesh": 7, + "translation": [ + 0.27781745930520227684092879831533, + -0.27781745930520227684092879831533, + 0.01 + ], + "scale": [ + 0.15, + 0.15, + 0.15 + ] + }, + { + "name": "All", + "mesh": 5, + "translation": [ + 1.1, + -0.55, + 0 + ], + "children": [ + 11 + ] + }, + { + "name": "All - Correct", + "mesh": 6, + "translation": [ + -0.07, + -0.25, + 0.01 + ], + "scale": [ + 0.1, + 0.1, + 0.1 + ] + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [ + 0, + 1, + 2, + 3, + 7, + 10 + ] + } + ], + "textures": [ + { + "source": 0, + "sampler": 0 + }, + { + "source": 1, + "sampler": 0 + }, + { + "source": 2 + }, + { + "source": 3 + }, + { + "source": 4 + } + ], + "samplers": [ + { + "wrapS": 33071, + "wrapT": 33071, + "magFilter": 9729, + "minFilter": 9729 + } + ] +} \ No newline at end of file diff --git a/test/models/glTF2/textureTransform/UV.png b/test/models/glTF2/textureTransform/UV.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a6d4d370c48c7e42ea7337dc5acb4376e5c92f GIT binary patch literal 12345 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[7]->mNumFaces, 17u); } +TEST_F( utglTF2ImportExport, texture_transform_test ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/textureTransform/TextureTransformTest.gltf", + aiProcess_ValidateDataStructure); + EXPECT_NE(nullptr, scene); +} + #ifndef ASSIMP_BUILD_NO_EXPORT TEST_F( utglTF2ImportExport, exportglTF2FromFileTest ) { EXPECT_TRUE( exporterTest() );