From 5ae3175907570c0a0f08da80a203c812a289b5ef Mon Sep 17 00:00:00 2001 From: Omar Shehata Date: Thu, 30 Aug 2018 15:55:40 -0400 Subject: [PATCH] Updated tests --- specs/lib/createGltfSpec.js | 8 +- specs/lib/loadMtlSpec.js | 160 ------------------------------------ specs/lib/obj2gltfSpec.js | 13 +++ 3 files changed, 17 insertions(+), 164 deletions(-) diff --git a/specs/lib/createGltfSpec.js b/specs/lib/createGltfSpec.js index 4114c0d..1cde9e5 100644 --- a/specs/lib/createGltfSpec.js +++ b/specs/lib/createGltfSpec.js @@ -125,11 +125,11 @@ describe('createGltf', function() { expect(gltf.extensionsRequired).toEqual(['KHR_materials_pbrSpecularGlossiness']); }); - it('adds KHR_materials_common extension when materialsCommon is set', function() { - options.materialsCommon = true; + it('adds KHR_materials_unlit extension when unlit is set', function() { + options.unlit = true; var gltf = createGltf(noMaterialsObjData, options); - expect(gltf.extensionsUsed).toEqual(['KHR_materials_common']); - expect(gltf.extensionsRequired).toEqual(['KHR_materials_common']); + expect(gltf.extensionsUsed).toEqual(['KHR_materials_unlit']); + expect(gltf.extensionsRequired).toEqual(['KHR_materials_unlit']); }); it('runs without normals', function() { diff --git a/specs/lib/loadMtlSpec.js b/specs/lib/loadMtlSpec.js index 45a4ecb..398b249 100644 --- a/specs/lib/loadMtlSpec.js +++ b/specs/lib/loadMtlSpec.js @@ -468,164 +468,4 @@ describe('loadMtl', function() { expect(material.doubleSided).toBe(true); }); }); - - describe('materialsCommon', function() { - it('creates default material', function() { - options.materialsCommon = true; - var material = loadMtl._createMaterial(undefined, options); - var extension = material.extensions.KHR_materials_common; - var values = extension.values; - expect(extension.technique).toBe('LAMBERT'); - expect(extension.transparent).toBe(false); - expect(extension.doubleSided).toBe(false); - expect(values.ambient).toEqual([0.0, 0.0, 0.0, 1.0]); - expect(values.diffuse).toEqual([0.5, 0.5, 0.5, 1.0]); - expect(values.emission).toEqual([0.0, 0.0, 0.0, 1.0]); - expect(values.specular).toEqual([0.0, 0.0, 0.0, 1.0]); - expect(values.shininess).toEqual(0); - expect(values.transparency).toBe(1.0); - expect(values.transparent).toBe(false); - expect(values.doubleSided).toBe(false); - }); - - it('creates material with textures', function() { - options.materialsCommon = true; - - var material = loadMtl._createMaterial({ - diffuseTexture : diffuseTexture, - ambientTexture : ambientTexture, - normalTexture : normalTexture, - emissiveTexture : emissiveTexture, - specularTexture : specularTexture, - specularShininessTexture : specularShininessTexture - }, options); - - var extension = material.extensions.KHR_materials_common; - var values = extension.values; - expect(extension.technique).toBe('LAMBERT'); - expect(extension.transparent).toBe(false); - expect(extension.doubleSided).toBe(false); - expect(values.ambient instanceof Texture).toBe(true); - expect(values.diffuse instanceof Texture).toBe(true); - expect(values.emission instanceof Texture).toBe(true); - expect(values.specular instanceof Texture).toBe(true); - expect(values.shininess).toEqual(0); - expect(values.transparency).toBe(1.0); - expect(values.transparent).toBe(false); - expect(values.doubleSided).toBe(false); - }); - - it('sets material for alpha less than 1', function() { - options.materialsCommon = true; - - var material = loadMtl._createMaterial({ - alpha : 0.4 - }, options); - - var values = material.extensions.KHR_materials_common.values; - expect(values.diffuse).toEqual([0.5, 0.5, 0.5, 0.4]); - expect(values.transparency).toBe(1.0); - expect(values.transparent).toBe(true); - expect(values.doubleSided).toBe(true); - }); - - it('sets material for diffuse texture and alpha less than 1', function() { - options.materialsCommon = true; - - var material = loadMtl._createMaterial({ - diffuseTexture : diffuseTexture, - alpha : 0.4 - }, options); - - var values = material.extensions.KHR_materials_common.values; - - expect(values.diffuse instanceof Texture).toBe(true); - expect(values.transparency).toBe(0.4); - expect(values.transparent).toBe(true); - expect(values.doubleSided).toBe(true); - }); - - it('sets material for transparent diffuse texture', function() { - options.materialsCommon = true; - - var material = loadMtl._createMaterial({ - diffuseTexture : transparentDiffuseTexture - }, options); - - var values = material.extensions.KHR_materials_common.values; - - expect(values.diffuse instanceof Texture).toBe(true); - expect(values.transparency).toBe(1.0); - expect(values.transparent).toBe(true); - expect(values.doubleSided).toBe(true); - }); - - it('sets material for specular', function() { - options.materialsCommon = true; - - var material = loadMtl._createMaterial({ - specularColor : [0.1, 0.1, 0.2, 1], - specularShininess : 0.1 - }, options); - - var extension = material.extensions.KHR_materials_common; - var values = extension.values; - - expect(extension.technique).toBe('PHONG'); - expect(values.specular).toEqual([0.1, 0.1, 0.2, 1]); - expect(values.shininess).toEqual(0.1); - }); - - it('sets CONSTANT technique when there are no normals', function() { - options.materialsCommon = true; - options.hasNormals = false; - - var material = loadMtl._createMaterial({ - diffuseColor : [1.0, 1.0, 1.0, 1.0] - }, options); - - var extension = material.extensions.KHR_materials_common; - var values = extension.values; - - expect(extension.technique).toBe('CONSTANT'); - expect(values.emission).toEqual(values.diffuse); - }); - - it('ambient of [1, 1, 1] is treated as [0, 0, 0]', function() { - options.materialsCommon = true; - - var material = loadMtl._createMaterial({ - ambientColor : [1.0, 1.0, 1.0, 1.0] - }, options); - - var values = material.extensions.KHR_materials_common.values; - expect(values.ambient).toEqual([0.0, 0.0, 0.0, 1.0]); - }); - - it('packs alpha texture in diffuse texture', function() { - options.materialsCommon = true; - - var material = loadMtl._createMaterial({ - diffuseTexture : diffuseTexture, - alphaTexture : alphaTexture - }, options); - - var values = material.extensions.KHR_materials_common.values; - - var hasBlack = false; - var hasWhite = false; - var pixels = values.diffuse.pixels; - var pixelsLength = pixels.length / 4; - for (var i = 0; i < pixelsLength; ++i) { - var alpha = pixels[i * 4 + 3]; - hasBlack = hasBlack || (alpha === 0); - hasWhite = hasWhite || (alpha === 255); - } - expect(hasBlack).toBe(true); - expect(hasWhite).toBe(true); - expect(values.transparency).toBe(1.0); - expect(values.transparent).toBe(true); - expect(values.doubleSided).toBe(true); - }); - }); }); diff --git a/specs/lib/obj2gltfSpec.js b/specs/lib/obj2gltfSpec.js index eec6c6c..bb324b5 100644 --- a/specs/lib/obj2gltfSpec.js +++ b/specs/lib/obj2gltfSpec.js @@ -184,4 +184,17 @@ describe('obj2gltf', function() { obj2gltf(texturedObjPath, options); }).toThrowDeveloperError(); }); + + it('adds KHR_materials_unlit to materials if unlit is set', function(done) { + var options = { + unlit : true + }; + expect(obj2gltf(texturedObjPath, options) + .then(function(glb) { + for(var i = 0;i < glb.materials.length; i++) { + var material = glb.materials[i]; + expect(material.extensions.KHR_materials_unlit).toBeDefined(); + } + }), done).toResolve(); + }); });