diff --git a/2.0/SheenChair/GLB/SheenChair.glb b/2.0/SheenChair/GLB/SheenChair.glb new file mode 100644 index 00000000..b17772fd Binary files /dev/null and b/2.0/SheenChair/GLB/SheenChair.glb differ diff --git a/2.0/SheenChair/README.md b/2.0/SheenChair/README.md new file mode 100644 index 00000000..cc6025c5 --- /dev/null +++ b/2.0/SheenChair/README.md @@ -0,0 +1,43 @@ +# SheenChair + +## Screenshot + +![screenshot](screenshot/screenshot.jpg) + +[Babylon.JS](https://sandbox.babylonjs.com/) screenshot (above), using the Studio lighting environment. + +## Description + +This model is a wood-framed chair with a fabric seat, tufted with fabric buttons and metal hardware. It uses three extensions: `KHR_materials_sheen` for velvet fabrics, `KHR_texture_transform` to tile the textures for fabric and wood, and `KHR_materials_variants` to create two versions of the chair: "Mango Velvet", and "Peacock Velvet". + +The model is made of four parts using subdivision surface modeling, with four materials for fabric, wood, metal, and the label. The ambient occlusion texture is shared by all materials and uses a 2nd UV with all UVs arranged between 0 and 1. All the other textures use the 1st UV which is not so constrained; it has overlaps and the UVs extend outside the 0-1 UV space. + +The textures were created uniquely, edited from public domain imagery (https://www.publicdomainpictures.net/), or edited from personal photos. This model does not represent a real product, however the fabrics were modeled to match real fabrics, represented [here on the Wayfair website](https://www.wayfair.com/furniture/pdp/bungalow-rose-griner-slipper-chair-bgrs8778.html). The use of real-world reference is meant to help glTF developers with calibrating material features and renderer handling, so we can more accurately represent e-commerce products. + +## KHR_materials_sheen + +The fabric materials use the extension `KHR_materials_sheen` to reproduce velvet fabrics. These screenshots show the real-world photo reference, alongside the intended rendering result, and what may occur if the extension is disabled or not implemented. + +![screenshot](screenshot/mango_reference.jpg) + +Above: real-world reference, and [Babylon.JS](https://sandbox.babylonjs.com/) screenshots using the Studio lighting environment, showing the variant "Mango Velvet" with `KHR_materials_sheen` enabled and disabled. + +![screenshot](screenshot/peacock_reference.jpg) + +Above: real-world reference, and [Babylon.JS](https://sandbox.babylonjs.com/) screenshots using the Studio lighting environment, showing the variant "Peacock Velvet" with `KHR_materials_sheen` enabled and disabled. + +## Material Authoring Choices ## + +To simulate the bending of velvet microfibers from human handling, the red and green color channels of the normal map have been biased in different directions. The normal map has been reduced in strength using the Scale parameter; if this is disabled the fabric may look too rough and bumpy. + +The Peacock Velvet material uses 1.0 metalness. While not being physically accurate, metalness colorizes reflections similarly to real-world velvet fabric, creating more contrast to match the real-world reference. Future extensions may add specular color to metallic-roughness materials for dielectric surfaces, negating the need to force metalness in this case. + +## Authoring Software ## + +The model was created in Autodesk 3ds Max 2020 and exported using the [`Max2Babylon`](https://github.com/BabylonJS/Exporters/tree/master/3ds%20Max) exporter. To add `KHR_materials_sheen` and `KHR_materials_variants` the glTF file was edited manually. + +The asset passes the [glTF Validation](http://github.khronos.org/glTF-Validator/) except for two UNSUPPORTED_EXTENSION warnings for `KHR_materials_sheen` and `KHR_materials_variants` which are not yet supported by the validator, and three UNUSED_OBJECT infos for the variant materials and an unused UV. + +## License Information + +Copyright 2020 Wayfair LLC, CC-BY 4.0 https://creativecommons.org/licenses/by/4.0/, model and textures created by Eric Chadwick. \ No newline at end of file diff --git a/2.0/SheenChair/glTF/SheenChair.bin b/2.0/SheenChair/glTF/SheenChair.bin new file mode 100644 index 00000000..a113b20f Binary files /dev/null and b/2.0/SheenChair/glTF/SheenChair.bin differ diff --git a/2.0/SheenChair/glTF/SheenChair.gltf b/2.0/SheenChair/glTF/SheenChair.gltf new file mode 100644 index 00000000..d0125bfe --- /dev/null +++ b/2.0/SheenChair/glTF/SheenChair.gltf @@ -0,0 +1,726 @@ +{ + "asset": { + "version": "2.0", + "generator": "babylon.js glTF exporter for 3dsmax 2020 v20201123.8, then manually edited to add Sheen and Variants" + }, + "extensionsUsed": [ + "KHR_texture_transform", "KHR_materials_sheen", "KHR_materials_variants" + ], + "extensions": { + "KHR_materials_variants": { + "variants": [ + {"name": "Mango Velvet"}, + {"name": "Peacock Velvet"} + ] + } + }, + "extensionsRequired": [ + "KHR_texture_transform" + ], + "scene": 0, + "scenes": [ + { + "nodes": [ + 0, + 1, + 2, + 3 + ] + } + ], + "nodes": [ + { + "mesh": 0, + "name": "SheenChair_fabric" + }, + { + "mesh": 1, + "name": "SheenChair_wood" + }, + { + "mesh": 2, + "name": "SheenChair_metal" + }, + { + "mesh": 3, + "translation": [ + -0.0006629925, + 0.23622, + 0.0596007444 + ], + "rotation": [ + -0.0436193831, + 0.0, + 0.0, + 0.999048233 + ], + "name": "SheenChair_label" + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "POSITION": 1, + "NORMAL": 2, + "TEXCOORD_0": 3, + "TEXCOORD_1": 4 + }, + "extensions": { + "KHR_materials_variants": { + "mappings": [ + { + "material": 0, + "variants": [ + 0 + ] + }, + { + "material": 4, + "variants": [ + 1 + ] + } + ] + } + }, + "indices": 0, + "material": 0 + } + ], + "name": "SheenChair_fabric" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 6, + "NORMAL": 7, + "TEXCOORD_0": 8, + "TEXCOORD_1": 9 + }, + "extensions": { + "KHR_materials_variants": { + "mappings": [ + { + "material": 1, + "variants": [ + 0 + ] + }, + { + "material": 5, + "variants": [ + 1 + ] + } + ] + } + }, + "indices": 5, + "material": 1 + } + ], + "name": "SheenChair_wood" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 11, + "NORMAL": 12, + "TEXCOORD_0": 13, + "TEXCOORD_1": 14 + }, + "indices": 10, + "material": 2 + } + ], + "name": "SheenChair_metal" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 16, + "NORMAL": 17, + "TEXCOORD_0": 18, + "TEXCOORD_1": 19 + }, + "indices": 15, + "material": 3 + } + ], + "name": "SheenChair_label" + } + ], + "accessors": [ + { + "bufferView": 0, + "componentType": 5123, + "count": 78528, + "type": "SCALAR", + "name": "accessorIndices" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 14350, + "max": [ + 0.412535578, + 0.6861773, + 0.293540359 + ], + "min": [ + -0.4140224, + 0.226573884, + -0.2767251 + ], + "type": "VEC3", + "name": "accessorPositions" + }, + { + "bufferView": 1, + "byteOffset": 172200, + "componentType": 5126, + "count": 14350, + "type": "VEC3", + "name": "accessorNormals" + }, + { + "bufferView": 2, + "componentType": 5126, + "count": 14350, + "type": "VEC2", + "name": "accessorUVs" + }, + { + "bufferView": 2, + "byteOffset": 114800, + "componentType": 5126, + "count": 14350, + "type": "VEC2", + "name": "accessorUV2s" + }, + { + "bufferView": 0, + "byteOffset": 157056, + "componentType": 5123, + "count": 29376, + "type": "SCALAR", + "name": "accessorIndices" + }, + { + "bufferView": 1, + "byteOffset": 344400, + "componentType": 5126, + "count": 5508, + "max": [ + 0.390372425, + 0.640484333, + 0.2655284 + ], + "min": [ + -0.39169845, + 0.005148451, + -0.275435269 + ], + "type": "VEC3", + "name": "accessorPositions" + }, + { + "bufferView": 1, + "byteOffset": 410496, + "componentType": 5126, + "count": 5508, + "type": "VEC3", + "name": "accessorNormals" + }, + { + "bufferView": 2, + "byteOffset": 229600, + "componentType": 5126, + "count": 5508, + "type": "VEC2", + "name": "accessorUVs" + }, + { + "bufferView": 2, + "byteOffset": 273664, + "componentType": 5126, + "count": 5508, + "type": "VEC2", + "name": "accessorUV2s" + }, + { + "bufferView": 0, + "byteOffset": 215808, + "componentType": 5123, + "count": 11520, + "type": "SCALAR", + "name": "accessorIndices" + }, + { + "bufferView": 1, + "byteOffset": 476592, + "componentType": 5126, + "count": 2520, + "max": [ + 0.3399512, + 0.501481354, + 0.220822945 + ], + "min": [ + -0.3399512, + -6.977785E-05, + -0.239334568 + ], + "type": "VEC3", + "name": "accessorPositions" + }, + { + "bufferView": 1, + "byteOffset": 506832, + "componentType": 5126, + "count": 2520, + "type": "VEC3", + "name": "accessorNormals" + }, + { + "bufferView": 2, + "byteOffset": 317728, + "componentType": 5126, + "count": 2520, + "type": "VEC2", + "name": "accessorUVs" + }, + { + "bufferView": 2, + "byteOffset": 337888, + "componentType": 5126, + "count": 2520, + "type": "VEC2", + "name": "accessorUV2s" + }, + { + "bufferView": 0, + "byteOffset": 238848, + "componentType": 5123, + "count": 384, + "type": "SCALAR", + "name": "accessorIndices" + }, + { + "bufferView": 1, + "byteOffset": 537072, + "componentType": 5126, + "count": 81, + "max": [ + 0.136181846, + 0.0100558968, + 0.0467727147 + ], + "min": [ + -0.135885492, + 0.005801852, + -0.110709868 + ], + "type": "VEC3", + "name": "accessorPositions" + }, + { + "bufferView": 1, + "byteOffset": 538044, + "componentType": 5126, + "count": 81, + "type": "VEC3", + "name": "accessorNormals" + }, + { + "bufferView": 2, + "byteOffset": 358048, + "componentType": 5126, + "count": 81, + "type": "VEC2", + "name": "accessorUVs" + }, + { + "bufferView": 2, + "byteOffset": 358696, + "componentType": 5126, + "count": 81, + "type": "VEC2", + "name": "accessorUV2s" + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteLength": 239616, + "name": "bufferViewScalar" + }, + { + "buffer": 0, + "byteOffset": 239616, + "byteLength": 539016, + "byteStride": 12, + "name": "bufferViewFloatVec3" + }, + { + "buffer": 0, + "byteOffset": 778632, + "byteLength": 359344, + "byteStride": 8, + "name": "bufferViewFloatVec2" + } + ], + "buffers": [ + { + "uri": "SheenChair.bin", + "byteLength": 1137976 + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.883, + 0.035, + 0.0, + 1.0 + ], + "baseColorTexture": { + "index": 2, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -3.0, + 3.0 + ], + "scale": [ + 7.0, + 7.0 + ], + "texCoord": 0 + } + } + }, + "metallicFactor": 0.0, + "roughnessFactor": 0.8 + }, + "normalTexture": { + "index": 0, + "scale": 0.6, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -0.5, + 0.5 + ], + "scale": [ + 2.0, + 2.0 + ], + "texCoord": 0 + } + } + }, + "occlusionTexture": { + "index": 1, + "texCoord": 1, + "extensions": { + "KHR_texture_transform": { + "texCoord": 1 + } + } + }, + "extensions": { + "KHR_materials_sheen": { + "sheenColorFactor": [1.0, 0.329, 0.1], + "sheenRoughnessFactor": 0.8 + } + }, + "name": "fabric Mystere Mango Velvet" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.14, + 0.07, + 0.01, + 1.0 + ], + "baseColorTexture": { + "index": 3, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -0.8635584, + 1.12502563 + ], + "rotation": 0.08726647, + "scale": [ + 3.0, + 3.0 + ], + "texCoord": 0 + } + } + }, + "metallicRoughnessTexture": { + "index": 4, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -0.8635584, + 1.12502563 + ], + "rotation": 0.08726647, + "scale": [ + 3.0, + 3.0 + ], + "texCoord": 0 + } + } + } + }, + "occlusionTexture": { + "index": 1, + "texCoord": 1, + "extensions": { + "KHR_texture_transform": { + "texCoord": 1 + } + } + }, + "name": "wood Brown" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.28, + 0.26, + 0.23, + 1.0 + ], + "roughnessFactor": 0.3 + }, + "occlusionTexture": { + "index": 1, + "texCoord": 1, + "extensions": { + "KHR_texture_transform": { + "texCoord": 1 + } + } + }, + "name": "metal" + }, + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 5, + "extensions": { + "KHR_texture_transform": { + "texCoord": 0 + } + } + }, + "metallicFactor": 0.0 + }, + "occlusionTexture": { + "index": 1, + "texCoord": 1, + "extensions": { + "KHR_texture_transform": { + "texCoord": 1 + } + } + }, + "name": "label" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.0, + 0.094, + 0.099, + 1.0 + ], + "baseColorTexture": { + "index": 2, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -3.0, + 3.0 + ], + "scale": [ + 7.0, + 7.0 + ], + "texCoord": 0 + } + } + }, + "metallicFactor": 1.0, + "roughnessFactor": 0.8 + }, + "normalTexture": { + "index": 0, + "scale": 0.6, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -0.5, + 0.5 + ], + "scale": [ + 2.0, + 2.0 + ], + "texCoord": 0 + } + } + }, + "occlusionTexture": { + "index": 1, + "texCoord": 1, + "extensions": { + "KHR_texture_transform": { + "texCoord": 1 + } + } + }, + "extensions": { + "KHR_materials_sheen": { + "sheenColorFactor": [0.013, 0.284, 0.298], + "sheenRoughnessFactor": 0.8 + } + }, + "name": "fabric Mystere Peacock Velvet" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.036, + 0.036, + 0.036, + 1.0 + ], + "baseColorTexture": { + "index": 3, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -0.8635584, + 1.12502563 + ], + "rotation": 0.08726647, + "scale": [ + 3.0, + 3.0 + ], + "texCoord": 0 + } + } + }, + "metallicRoughnessTexture": { + "index": 6, + "extensions": { + "KHR_texture_transform": { + "offset": [ + -0.8635584, + 1.12502563 + ], + "rotation": 0.08726647, + "scale": [ + 3.0, + 3.0 + ], + "texCoord": 0 + } + } + } + }, + "occlusionTexture": { + "index": 1, + "texCoord": 1, + "extensions": { + "KHR_texture_transform": { + "texCoord": 1 + } + } + }, + "name": "wood Black" + } + ], + "textures": [ + { + "sampler": 0, + "source": 0, + "name": "chair_fabric_normal.png" + }, + { + "sampler": 0, + "source": 1, + "name": "chair_occlusion.png" + }, + { + "sampler": 0, + "source": 2, + "name": "chair_fabric_albedo.png" + }, + { + "sampler": 0, + "source": 3, + "name": "chair_wood_albedo.png" + }, + { + "sampler": 0, + "source": 4, + "name": "chair_woodbrown_roughnessmetallic.png" + }, + { + "sampler": 0, + "source": 5, + "name": "chair_label.png" + }, + { + "sampler": 0, + "source": 6, + "name": "chair_woodblack_roughnessmetallic.png" + } + ], + "images": [ + { + "uri": "./chair_fabric_normal.png" + }, + { + "uri": "./chair_occlusion.png" + }, + { + "uri": "./chair_fabric_albedo.png" + }, + { + "uri": "./chair_wood_albedo.png" + }, + { + "uri": "./chair_woodbrown_roughnessmetallic.png" + }, + { + "uri": "./chair_label.png" + }, + { + "uri": "./chair_woodblack_roughnessmetallic.png" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9987 + } + ] +} \ No newline at end of file diff --git a/2.0/SheenChair/glTF/chair_damask_albedo.jpg b/2.0/SheenChair/glTF/chair_damask_albedo.jpg deleted file mode 100644 index 0d92550b..00000000 Binary files a/2.0/SheenChair/glTF/chair_damask_albedo.jpg and /dev/null differ diff --git a/2.0/SheenChair/glTF/chair_damask_normal.jpg b/2.0/SheenChair/glTF/chair_damask_normal.jpg deleted file mode 100644 index 34328ec2..00000000 Binary files a/2.0/SheenChair/glTF/chair_damask_normal.jpg and /dev/null differ diff --git a/2.0/SheenChair/glTF/chair_fabric_albedo.png b/2.0/SheenChair/glTF/chair_fabric_albedo.png new file mode 100644 index 00000000..432b3118 Binary files /dev/null and b/2.0/SheenChair/glTF/chair_fabric_albedo.png differ diff --git a/2.0/SheenChair/glTF/chair_fabric_normal.png b/2.0/SheenChair/glTF/chair_fabric_normal.png new file mode 100644 index 00000000..2699a93a Binary files /dev/null and b/2.0/SheenChair/glTF/chair_fabric_normal.png differ diff --git a/2.0/SheenChair/glTF/chair_label.jpg b/2.0/SheenChair/glTF/chair_label.jpg deleted file mode 100644 index de87cba5..00000000 Binary files a/2.0/SheenChair/glTF/chair_label.jpg and /dev/null differ diff --git a/2.0/SheenChair/glTF/chair_label.png b/2.0/SheenChair/glTF/chair_label.png new file mode 100644 index 00000000..98126069 Binary files /dev/null and b/2.0/SheenChair/glTF/chair_label.png differ diff --git a/2.0/SheenChair/glTF/chair_metal_roughness255.jpg b/2.0/SheenChair/glTF/chair_metal_roughness255.jpg deleted file mode 100644 index 06c89223..00000000 Binary files a/2.0/SheenChair/glTF/chair_metal_roughness255.jpg and /dev/null differ diff --git a/2.0/SheenChair/glTF/chair_occlusion.jpg b/2.0/SheenChair/glTF/chair_occlusion.jpg deleted file mode 100644 index 8f077fcc..00000000 Binary files a/2.0/SheenChair/glTF/chair_occlusion.jpg and /dev/null differ diff --git a/2.0/SheenChair/glTF/chair_occlusion.png b/2.0/SheenChair/glTF/chair_occlusion.png new file mode 100644 index 00000000..8b5f8243 Binary files /dev/null and b/2.0/SheenChair/glTF/chair_occlusion.png differ diff --git a/2.0/SheenChair/glTF/chair_wood_albedo.jpg b/2.0/SheenChair/glTF/chair_wood_albedo.jpg deleted file mode 100644 index 03be830a..00000000 Binary files a/2.0/SheenChair/glTF/chair_wood_albedo.jpg and /dev/null differ diff --git a/2.0/SheenChair/glTF/chair_wood_albedo.png b/2.0/SheenChair/glTF/chair_wood_albedo.png new file mode 100644 index 00000000..061ac2f7 Binary files /dev/null and b/2.0/SheenChair/glTF/chair_wood_albedo.png differ diff --git a/2.0/SheenChair/glTF/chair_wood_roughness0.jpg b/2.0/SheenChair/glTF/chair_wood_roughness0.jpg deleted file mode 100644 index 0a2e7f08..00000000 Binary files a/2.0/SheenChair/glTF/chair_wood_roughness0.jpg and /dev/null differ diff --git a/2.0/SheenChair/glTF/chair_woodblack_roughnessmetallic.png b/2.0/SheenChair/glTF/chair_woodblack_roughnessmetallic.png new file mode 100644 index 00000000..4d7a041a Binary files /dev/null and b/2.0/SheenChair/glTF/chair_woodblack_roughnessmetallic.png differ diff --git a/2.0/SheenChair/glTF/chair_woodbrown_roughnessmetallic.png b/2.0/SheenChair/glTF/chair_woodbrown_roughnessmetallic.png new file mode 100644 index 00000000..a892ddec Binary files /dev/null and b/2.0/SheenChair/glTF/chair_woodbrown_roughnessmetallic.png differ diff --git a/2.0/SheenChair/glTF/gltf_sheen_damask.bin b/2.0/SheenChair/glTF/gltf_sheen_damask.bin deleted file mode 100644 index 01c9a5a8..00000000 Binary files a/2.0/SheenChair/glTF/gltf_sheen_damask.bin and /dev/null differ diff --git a/2.0/SheenChair/glTF/gltf_sheen_damask.gltf b/2.0/SheenChair/glTF/gltf_sheen_damask.gltf deleted file mode 100644 index d5b0bab0..00000000 --- a/2.0/SheenChair/glTF/gltf_sheen_damask.gltf +++ /dev/null @@ -1,1270 +0,0 @@ -{ - "asset": { - "version": "2.0", - "generator": "babylon.js glTF exporter for 3dsmax 2018 v20191031.3" - }, - "extensionsUsed": [ - "KHR_texture_transform", - "KHR_materials_sheen" - ], - "extensionsRequired": [ - "KHR_texture_transform" - ], - "scene": 0, - "scenes": [ - { - "nodes": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ], - "extensions": {} - } - ], - "nodes": [ - { - "mesh": 0, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_seat-fabric" - }, - { - "mesh": 1, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_back-fabric" - }, - { - "mesh": 2, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_back-welt" - }, - { - "mesh": 3, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_seat-welt" - }, - { - "mesh": 4, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_seat-buttons" - }, - { - "mesh": 5, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_back-buttons" - }, - { - "mesh": 6, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_legs-frame" - }, - { - "mesh": 7, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_legs-hardware" - }, - { - "mesh": 8, - "translation": [ - -0.026102066, - 9.41255951, - 2.346486 - ], - "rotation": [ - -0.04361938, - 0, - 0, - 0.999048233 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_seat-panel" - }, - { - "mesh": 9, - "translation": [ - 0, - 0, - 0 - ], - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_back-panel" - }, - { - "mesh": 10, - "translation": [ - -0.026102066, - 9.3, - 2.346486 - ], - "rotation": [ - -0.0436193831, - 0, - 0, - 0.999048233 - ], - "scale": [ - 1, - 1, - 1 - ], - "name": "oval-tufted-chair_seat-label" - } - ], - "meshes": [ - { - "primitives": [ - { - "attributes": { - "POSITION": 1, - "NORMAL": 2, - "TEXCOORD_0": 3, - "TEXCOORD_1": 4 - }, - "indices": 0, - "mode": 4, - "material": 0 - } - ], - "name": "oval-tufted-chair_seat-fabric" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 6, - "NORMAL": 7, - "TEXCOORD_0": 8, - "TEXCOORD_1": 9 - }, - "indices": 5, - "mode": 4, - "material": 0 - } - ], - "name": "oval-tufted-chair_back-fabric" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 11, - "NORMAL": 12, - "TEXCOORD_0": 13, - "TEXCOORD_1": 14 - }, - "indices": 10, - "mode": 4, - "material": 0 - } - ], - "name": "oval-tufted-chair_back-welt" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 16, - "NORMAL": 17, - "TEXCOORD_0": 18, - "TEXCOORD_1": 19 - }, - "indices": 15, - "mode": 4, - "material": 0 - } - ], - "name": "oval-tufted-chair_seat-welt" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 21, - "NORMAL": 22, - "TEXCOORD_0": 23, - "TEXCOORD_1": 24 - }, - "indices": 20, - "mode": 4, - "material": 0 - } - ], - "name": "oval-tufted-chair_seat-buttons" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 26, - "NORMAL": 27, - "TEXCOORD_0": 28, - "TEXCOORD_1": 29 - }, - "indices": 25, - "mode": 4, - "material": 0 - } - ], - "name": "oval-tufted-chair_back-buttons" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 31, - "NORMAL": 32, - "TEXCOORD_0": 33, - "TEXCOORD_1": 34 - }, - "indices": 30, - "mode": 4, - "material": 1 - } - ], - "name": "oval-tufted-chair_legs-frame" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 36, - "NORMAL": 37, - "TEXCOORD_0": 38, - "TEXCOORD_1": 39 - }, - "indices": 35, - "mode": 4, - "material": 2 - } - ], - "name": "oval-tufted-chair_legs-hardware" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 41, - "NORMAL": 42, - "TEXCOORD_0": 43, - "TEXCOORD_1": 44 - }, - "indices": 40, - "mode": 4, - "material": 1 - } - ], - "name": "oval-tufted-chair_seat-panel" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 46, - "NORMAL": 47, - "TEXCOORD_0": 48, - "TEXCOORD_1": 49 - }, - "indices": 45, - "mode": 4, - "material": 1 - } - ], - "name": "oval-tufted-chair_back-panel" - }, - { - "primitives": [ - { - "attributes": { - "POSITION": 51, - "NORMAL": 52, - "TEXCOORD_0": 53, - "TEXCOORD_1": 54 - }, - "indices": 50, - "mode": 4, - "material": 3 - } - ], - "name": "oval-tufted-chair_seat-label" - } - ], - "accessors": [ - { - "bufferView": 0, - "componentType": 5123, - "count": 36288, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "componentType": 5126, - "count": 6507, - "max": [ - 16.2415581, - 15.1540375, - 11.5567074 - ], - "min": [ - -16.3000946, - 9.033549, - -7.292062 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 78084, - "componentType": 5126, - "count": 6507, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "componentType": 5126, - "count": 6507, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 52056, - "componentType": 5126, - "count": 6507, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 72576, - "componentType": 5123, - "count": 18048, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 156168, - "componentType": 5126, - "count": 3285, - "max": [ - 13.7142649, - 27.0148544, - -4.19745 - ], - "min": [ - -13.714263, - 17.5563774, - -10.8424511 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 195588, - "componentType": 5126, - "count": 3285, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 104112, - "componentType": 5126, - "count": 3285, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 130392, - "componentType": 5126, - "count": 3285, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 108672, - "componentType": 5123, - "count": 9216, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 235008, - "componentType": 5126, - "count": 1649, - "max": [ - 13.0943832, - 25.2997475, - -7.67668 - ], - "min": [ - -13.0943842, - 18.223135, - -10.8946905 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 254796, - "componentType": 5126, - "count": 1649, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 156672, - "componentType": 5126, - "count": 1649, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 169864, - "componentType": 5126, - "count": 1649, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 127104, - "componentType": 5123, - "count": 9216, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 274584, - "componentType": 5126, - "count": 1649, - "max": [ - 15.49176, - 11.58516, - 10.5877724 - ], - "min": [ - -15.5439644, - 8.920232, - -6.01620865 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 294372, - "componentType": 5126, - "count": 1649, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 183056, - "componentType": 5126, - "count": 1649, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 196248, - "componentType": 5126, - "count": 1649, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 145536, - "componentType": 5123, - "count": 4800, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 314160, - "componentType": 5126, - "count": 1050, - "max": [ - 11.886342, - 14.25683, - 6.981325 - ], - "min": [ - -11.9356337, - 12.7480354, - -3.341768 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 326760, - "componentType": 5126, - "count": 1050, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 209440, - "componentType": 5126, - "count": 1050, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 217840, - "componentType": 5126, - "count": 1050, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 155136, - "componentType": 5123, - "count": 960, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 339360, - "componentType": 5126, - "count": 210, - "max": [ - 5.978992, - 22.9297142, - -5.711763 - ], - "min": [ - -5.980612, - 22.305, - -6.1019454 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 341880, - "componentType": 5126, - "count": 210, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 226240, - "componentType": 5126, - "count": 210, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 227920, - "componentType": 5126, - "count": 210, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 157056, - "componentType": 5123, - "count": 17280, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 344400, - "componentType": 5126, - "count": 3252, - "max": [ - 13.5381851, - 20.3561935, - 8.850609 - ], - "min": [ - -13.5381851, - 0.202694923, - -9.276621 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 383424, - "componentType": 5126, - "count": 3252, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 229600, - "componentType": 5126, - "count": 3252, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 255616, - "componentType": 5126, - "count": 3252, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 191616, - "componentType": 5123, - "count": 11520, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 422448, - "componentType": 5126, - "count": 2520, - "max": [ - 13.3839054, - 19.74336, - 8.693817 - ], - "min": [ - -13.3839054, - -0.00274715945, - -9.422621 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 452688, - "componentType": 5126, - "count": 2520, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 281632, - "componentType": 5126, - "count": 2520, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 301792, - "componentType": 5126, - "count": 2520, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 214656, - "componentType": 5123, - "count": 5376, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 482928, - "componentType": 5126, - "count": 961, - "max": [ - 15.3950958, - 1.822297, - 8.182747 - ], - "min": [ - -15.3950958, - 0.166030884, - -8.243052 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 494460, - "componentType": 5126, - "count": 961, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 321952, - "componentType": 5126, - "count": 961, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 329640, - "componentType": 5126, - "count": 961, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 225408, - "componentType": 5123, - "count": 6720, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 505992, - "componentType": 5126, - "count": 1295, - "max": [ - 13.007328, - 25.21592, - -7.76413965 - ], - "min": [ - -13.007328, - 18.3080616, - -10.8439074 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 521532, - "componentType": 5126, - "count": 1295, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 337328, - "componentType": 5126, - "count": 1295, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 347688, - "componentType": 5126, - "count": 1295, - "type": "VEC2", - "name": "accessorUV2s" - }, - { - "bufferView": 0, - "byteOffset": 238848, - "componentType": 5123, - "count": 384, - "type": "SCALAR", - "name": "accessorIndices" - }, - { - "bufferView": 1, - "byteOffset": 537072, - "componentType": 5126, - "count": 81, - "max": [ - 5.36149025, - 0.395901442, - 1.84144545 - ], - "min": [ - -5.34982252, - 0.228419363, - -4.35865641 - ], - "type": "VEC3", - "name": "accessorPositions" - }, - { - "bufferView": 1, - "byteOffset": 538044, - "componentType": 5126, - "count": 81, - "type": "VEC3", - "name": "accessorNormals" - }, - { - "bufferView": 2, - "byteOffset": 358048, - "componentType": 5126, - "count": 81, - "type": "VEC2", - "name": "accessorUVs" - }, - { - "bufferView": 2, - "byteOffset": 358696, - "componentType": 5126, - "count": 81, - "type": "VEC2", - "name": "accessorUV2s" - } - ], - "bufferViews": [ - { - "buffer": 0, - "byteLength": 239616, - "name": "bufferViewScalar" - }, - { - "buffer": 0, - "byteOffset": 239616, - "byteLength": 539016, - "byteStride": 12, - "name": "bufferViewFloatVec3" - }, - { - "buffer": 0, - "byteOffset": 778632, - "byteLength": 359344, - "byteStride": 8, - "name": "bufferViewFloatVec2" - } - ], - "buffers": [ - { - "uri": "gltf_sheen_damask.bin", - "byteLength": 1137976 - } - ], - "materials": [ - { - "pbrMetallicRoughness": { - "baseColorFactor": [ - 0.1, - 0, - 0.2, - 1 - ], - "baseColorTexture": { - "index": 2, - "texCoord": 0, - "extensions": { - "KHR_texture_transform": { - "offset": [ - -1, - 1 - ], - "scale": [ - 3, - 3 - ], - "texCoord": 0 - } - } - }, - "metallicFactor": 1, - "roughnessFactor": 0.6 - }, - "normalTexture": { - "index": 0, - "texCoord": 0, - "extensions": { - "KHR_texture_transform": { - "offset": [ - -1, - 1 - ], - "scale": [ - 3, - 3 - ], - "texCoord": 0 - } - } - }, - "occlusionTexture": { - "index": 1, - "texCoord": 1 - }, - "emissiveFactor": [ - 0, - 0, - 0 - ], - "alphaMode": "OPAQUE", - "extensions": { - "KHR_materials_sheen": { - "intensityFactor": 1.0, - "colorFactor": [ - 0.0, - 0.0, - 1.0 - ] - } - }, - "name": "fabric" - }, - { - "pbrMetallicRoughness": { - "baseColorFactor": [ - 0.247058839, - 0.10980393, - 0.03529412, - 1 - ], - "baseColorTexture": { - "index": 3, - "texCoord": 0, - "extensions": { - "KHR_texture_transform": { - "offset": [ - -0.8635584, - 1.12502563 - ], - "rotation": 0.08726647, - "scale": [ - 3, - 3 - ], - "texCoord": 0 - } - } - }, - "metallicFactor": 1, - "roughnessFactor": 1, - "metallicRoughnessTexture": { - "index": 4, - "texCoord": 0, - "extensions": { - "KHR_texture_transform": { - "offset": [ - -1, - 1 - ], - "scale": [ - 3, - 3 - ], - "texCoord": 0 - } - } - } - }, - "occlusionTexture": { - "index": 1, - "texCoord": 1 - }, - "emissiveFactor": [ - 0, - 0, - 0 - ], - "alphaMode": "OPAQUE", - "name": "wood" - }, - { - "pbrMetallicRoughness": { - "baseColorFactor": [ - 0.2509804, - 0.2509804, - 0.2509804, - 1 - ], - "metallicFactor": 1, - "roughnessFactor": 1, - "metallicRoughnessTexture": { - "index": 5, - "texCoord": 0, - "extensions": { - "KHR_texture_transform": { - "offset": [ - -1, - 1 - ], - "scale": [ - 3, - 3 - ], - "texCoord": 0 - } - } - } - }, - "occlusionTexture": { - "index": 1, - "texCoord": 1 - }, - "emissiveFactor": [ - 0, - 0, - 0 - ], - "alphaMode": "OPAQUE", - "name": "metal" - }, - { - "pbrMetallicRoughness": { - "baseColorFactor": [ - 1, - 1, - 1, - 1 - ], - "baseColorTexture": { - "index": 6, - "texCoord": 0 - }, - "metallicFactor": 0, - "roughnessFactor": 1 - }, - "occlusionTexture": { - "index": 1, - "texCoord": 1 - }, - "emissiveFactor": [ - 0, - 0, - 0 - ], - "alphaMode": "OPAQUE", - "name": "label" - } - ], - "textures": [ - { - "sampler": 0, - "source": 0, - "name": "chair_damask_normal.jpg" - }, - { - "sampler": 0, - "source": 1, - "name": "chair_occlusion.jpg" - }, - { - "sampler": 0, - "source": 2, - "name": "chair_damask_albedo.jpg" - }, - { - "sampler": 0, - "source": 3, - "name": "chair_wood_albedo.jpg" - }, - { - "sampler": 0, - "source": 4, - "name": "chair_wood_roughness0.jpg" - }, - { - "sampler": 0, - "source": 5, - "name": "chair_metal_roughness255.jpg" - }, - { - "sampler": 0, - "source": 6, - "name": "chair_label.jpg" - } - ], - "images": [ - { - "uri": "chair_damask_normal.jpg" - }, - { - "uri": "chair_occlusion.jpg" - }, - { - "uri": "chair_damask_albedo.jpg" - }, - { - "uri": "chair_wood_albedo.jpg" - }, - { - "uri": "chair_wood_roughness0.jpg" - }, - { - "uri": "chair_metal_roughness255.jpg" - }, - { - "uri": "chair_label.jpg" - } - ], - "samplers": [ - { - "magFilter": 9729, - "minFilter": 9987, - "wrapS": 10497, - "wrapT": 10497 - } - ] -} \ No newline at end of file diff --git a/2.0/SheenChair/screenshot/mango_reference.jpg b/2.0/SheenChair/screenshot/mango_reference.jpg new file mode 100644 index 00000000..15f54e17 Binary files /dev/null and b/2.0/SheenChair/screenshot/mango_reference.jpg differ diff --git a/2.0/SheenChair/screenshot/peacock_reference.jpg b/2.0/SheenChair/screenshot/peacock_reference.jpg new file mode 100644 index 00000000..e75c40f9 Binary files /dev/null and b/2.0/SheenChair/screenshot/peacock_reference.jpg differ diff --git a/2.0/SheenChair/screenshot/screenshot.jpg b/2.0/SheenChair/screenshot/screenshot.jpg new file mode 100644 index 00000000..8e898141 Binary files /dev/null and b/2.0/SheenChair/screenshot/screenshot.jpg differ