Single-object viewer POC (#14)

This commit implements a Sketchfab-style single-object viewer as a minimal
proof-of-concept.

### `@storyteller/studio-web`
This is a new package to house web components for interfacing with the
`@storyteller/studio` WASM library. It currently includes a single component,
`<sts-viewer />`, which is exported from `@storyteller/studio-web/viewer`.

### `react-frontend`
This is a new application intended as a proof-of-concept and testbed for React
interop with `@storyteller/studio-web`.

Web components are currently a little bit fiddly to use in a React application.
`react-frontend/src/app/studio-viewer.tsx` demonstrates how a React-idiomatic
component can be written as a thin wrapper around a web component, and
`react-frontend/src/app/app.tsx` demonstrates that wrapper component in use.
This commit is contained in:
Danny McGee
2023-12-07 15:46:32 -05:00
committed by GitHub
parent 155272a5ba
commit cba70a62ae
70 changed files with 71793 additions and 1157 deletions
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+172
View File
@@ -0,0 +1,172 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v3.6.27",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0
]
}
],
"nodes":[
{
"mesh":0,
"name":"Couch"
}
],
"materials":[
{
"name":"Archisketch_122724_Frame_Yellow",
"normalTexture":{
"index":0
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicRoughnessTexture":{
"index":2
}
}
}
],
"meshes":[
{
"name":"Couch",
"primitives":[
{
"attributes":{
"COLOR_0":0,
"POSITION":1,
"NORMAL":2,
"TEXCOORD_0":3
},
"indices":4,
"material":0
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
}
],
"images":[
{
"mimeType":"image/png",
"name":"archisketch_122724_frame_yellow_normal",
"uri":"../textures/archisketch_122724_frame_yellow_normal.png"
},
{
"mimeType":"image/png",
"name":"archisketch_122724_frame_yellow_basecolor",
"uri":"../textures/archisketch_122724_frame_yellow_basecolor.png"
},
{
"mimeType":"image/png",
"name":"archisketch_122724_frame_yellow_occlusionroughnessmetallic",
"uri":"../textures/archisketch_122724_frame_yellow_occlusionroughnessmetallic.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5123,
"count":9285,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":1,
"componentType":5126,
"count":9285,
"max":[
0.5208197832107544,
0.8453625440597534,
0.4746153652667999
],
"min":[
-0.5208197832107544,
0,
-0.4746153652667999
],
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":9285,
"type":"VEC3"
},
{
"bufferView":3,
"componentType":5126,
"count":9285,
"type":"VEC2"
},
{
"bufferView":4,
"componentType":5123,
"count":37824,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":74280,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":111420,
"byteOffset":74280,
"target":34962
},
{
"buffer":0,
"byteLength":111420,
"byteOffset":185700,
"target":34962
},
{
"buffer":0,
"byteLength":74280,
"byteOffset":297120,
"target":34962
},
{
"buffer":0,
"byteLength":75648,
"byteOffset":371400,
"target":34963
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":447048,
"uri":"couch.bin"
}
]
}
File diff suppressed because one or more lines are too long
+172
View File
@@ -0,0 +1,172 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v3.6.27",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0
]
}
],
"nodes":[
{
"mesh":0,
"name":"DeskChair"
}
],
"materials":[
{
"name":"_Chair1_101___Default",
"normalTexture":{
"index":0
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicRoughnessTexture":{
"index":2
}
}
}
],
"meshes":[
{
"name":"DeskChair",
"primitives":[
{
"attributes":{
"COLOR_0":0,
"POSITION":1,
"NORMAL":2,
"TEXCOORD_0":3
},
"indices":4,
"material":0
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
}
],
"images":[
{
"mimeType":"image/png",
"name":"archisketch_285734_frame_black_normal",
"uri":"../textures/archisketch_285734_frame_black_normal.png"
},
{
"mimeType":"image/png",
"name":"archisketch_285734_frame_black_basecolor",
"uri":"../textures/archisketch_285734_frame_black_basecolor.png"
},
{
"mimeType":"image/png",
"name":"archisketch_285734_frame_black_occlusionroughnessmetallic",
"uri":"../textures/archisketch_285734_frame_black_occlusionroughnessmetallic.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5123,
"count":26100,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":1,
"componentType":5126,
"count":26100,
"max":[
0.30823463201522827,
1.2001636028289795,
0.33275049924850464
],
"min":[
-0.30823463201522827,
0,
-0.33275049924850464
],
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":26100,
"type":"VEC3"
},
{
"bufferView":3,
"componentType":5126,
"count":26100,
"type":"VEC2"
},
{
"bufferView":4,
"componentType":5123,
"count":127638,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":208800,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":313200,
"byteOffset":208800,
"target":34962
},
{
"buffer":0,
"byteLength":313200,
"byteOffset":522000,
"target":34962
},
{
"buffer":0,
"byteLength":208800,
"byteOffset":835200,
"target":34962
},
{
"buffer":0,
"byteLength":255276,
"byteOffset":1044000,
"target":34963
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":1299276,
"uri":"desk-chair.bin"
}
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+172
View File
@@ -0,0 +1,172 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v3.6.27",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0
]
}
],
"nodes":[
{
"mesh":0,
"name":"FileCabinet"
}
],
"materials":[
{
"name":"Archisketch_13135_Frame_Silver",
"normalTexture":{
"index":0
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicRoughnessTexture":{
"index":2
}
}
}
],
"meshes":[
{
"name":"FileCabinet",
"primitives":[
{
"attributes":{
"COLOR_0":0,
"POSITION":1,
"NORMAL":2,
"TEXCOORD_0":3
},
"indices":4,
"material":0
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
}
],
"images":[
{
"mimeType":"image/png",
"name":"archisketch_13135_frame_silver_normal",
"uri":"../textures/archisketch_13135_frame_silver_normal.png"
},
{
"mimeType":"image/png",
"name":"archisketch_13135_frame_silver_basecolor",
"uri":"../textures/archisketch_13135_frame_silver_basecolor.png"
},
{
"mimeType":"image/png",
"name":"archisketch_13135_frame_silver_occlusionroughnessmetallic",
"uri":"../textures/archisketch_13135_frame_silver_occlusionroughnessmetallic.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5123,
"count":1381,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":1,
"componentType":5126,
"count":1381,
"max":[
0.17499776184558868,
0.5099859237670898,
0.18015122413635254
],
"min":[
-0.17499776184558868,
0,
-0.18015122413635254
],
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":1381,
"type":"VEC3"
},
{
"bufferView":3,
"componentType":5126,
"count":1381,
"type":"VEC2"
},
{
"bufferView":4,
"componentType":5123,
"count":5706,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":11048,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":16572,
"byteOffset":11048,
"target":34962
},
{
"buffer":0,
"byteLength":16572,
"byteOffset":27620,
"target":34962
},
{
"buffer":0,
"byteLength":11048,
"byteOffset":44192,
"target":34962
},
{
"buffer":0,
"byteLength":11412,
"byteOffset":55240,
"target":34963
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":66652,
"uri":"file-cabinet.bin"
}
]
}
Binary file not shown.
+560
View File
@@ -0,0 +1,560 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v3.6.27",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0
]
}
],
"nodes":[
{
"mesh":0,
"name":"PottedPlant1",
"scale":[
0.7147455811500549,
0.7147455811500549,
0.7147455811500549
]
}
],
"materials":[
{
"doubleSided":true,
"name":"05___Defaultwww1",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":0
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"02___Defaultwe1",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"17___Defaultweweqw1.001",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":2
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"01___Default1",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":3
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"16___Default1",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":4
},
"metallicFactor":0,
"roughnessFactor":0.5
}
}
],
"meshes":[
{
"name":"PottedPlant1",
"primitives":[
{
"attributes":{
"COLOR_0":0,
"POSITION":1,
"NORMAL":2,
"TEXCOORD_0":3
},
"indices":4,
"material":0
},
{
"attributes":{
"COLOR_0":5,
"POSITION":6,
"NORMAL":7,
"TEXCOORD_0":8
},
"indices":9,
"material":1
},
{
"attributes":{
"COLOR_0":10,
"POSITION":11,
"NORMAL":12,
"TEXCOORD_0":13
},
"indices":14,
"material":2
},
{
"attributes":{
"COLOR_0":15,
"POSITION":16,
"NORMAL":17,
"TEXCOORD_0":18
},
"indices":19,
"material":3
},
{
"attributes":{
"COLOR_0":20,
"POSITION":21,
"NORMAL":22,
"TEXCOORD_0":23
},
"indices":24,
"material":4
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
},
{
"sampler":0,
"source":3
},
{
"sampler":0,
"source":4
}
],
"images":[
{
"mimeType":"image/png",
"name":"map__4727_mix",
"uri":"../textures/map__4727_mix.png"
},
{
"mimeType":"image/png",
"name":"map__3_gradient_ramp_0",
"uri":"../textures/map__3_gradient_ramp_0.png"
},
{
"mimeType":"image/png",
"name":"sh__014e_0",
"uri":"../textures/sh__014e_0.png"
},
{
"mimeType":"image/png",
"name":"map__2138274789_falloff",
"uri":"../textures/map__2138274789_falloff.png"
},
{
"mimeType":"image/png",
"name":"sh__049",
"uri":"../textures/sh__049.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5123,
"count":373,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":1,
"componentType":5126,
"count":373,
"max":[
0.19935017824172974,
0.34052181243896484,
0.19498242437839508
],
"min":[
-0.2017928957939148,
0.10245688259601593,
-0.205869659781456
],
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":373,
"type":"VEC3"
},
{
"bufferView":3,
"componentType":5126,
"count":373,
"type":"VEC2"
},
{
"bufferView":4,
"componentType":5123,
"count":864,
"type":"SCALAR"
},
{
"bufferView":5,
"componentType":5123,
"count":2881,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":6,
"componentType":5126,
"count":2881,
"max":[
0.20022684335708618,
0.7127547264099121,
0.3447090983390808
],
"min":[
-0.25123924016952515,
0.2595646381378174,
-0.23161326348781586
],
"type":"VEC3"
},
{
"bufferView":7,
"componentType":5126,
"count":2881,
"type":"VEC3"
},
{
"bufferView":8,
"componentType":5126,
"count":2881,
"type":"VEC2"
},
{
"bufferView":9,
"componentType":5123,
"count":5253,
"type":"SCALAR"
},
{
"bufferView":10,
"componentType":5123,
"count":953,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":11,
"componentType":5126,
"count":953,
"max":[
0.19372159242630005,
0.36101800203323364,
0.17712844908237457
],
"min":[
-0.17357796430587769,
0.3098647892475128,
-0.1897440403699875
],
"type":"VEC3"
},
{
"bufferView":12,
"componentType":5126,
"count":953,
"type":"VEC3"
},
{
"bufferView":13,
"componentType":5126,
"count":953,
"type":"VEC2"
},
{
"bufferView":14,
"componentType":5123,
"count":2124,
"type":"SCALAR"
},
{
"bufferView":15,
"componentType":5123,
"count":14616,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":16,
"componentType":5126,
"count":14616,
"max":[
0.23089128732681274,
0.7691824436187744,
0.37735289335250854
],
"min":[
-0.2857348322868347,
0.3321642279624939,
-0.2779516577720642
],
"type":"VEC3"
},
{
"bufferView":17,
"componentType":5126,
"count":14616,
"type":"VEC3"
},
{
"bufferView":18,
"componentType":5126,
"count":14616,
"type":"VEC2"
},
{
"bufferView":19,
"componentType":5123,
"count":35076,
"type":"SCALAR"
},
{
"bufferView":20,
"componentType":5123,
"count":465,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":21,
"componentType":5126,
"count":465,
"max":[
0.1985645890235901,
0.1372201144695282,
0.19498242437839508
],
"min":[
-0.2017926573753357,
0,
-0.2054220288991928
],
"type":"VEC3"
},
{
"bufferView":22,
"componentType":5126,
"count":465,
"type":"VEC3"
},
{
"bufferView":23,
"componentType":5126,
"count":465,
"type":"VEC2"
},
{
"bufferView":24,
"componentType":5123,
"count":1896,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":2984,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":4476,
"byteOffset":2984,
"target":34962
},
{
"buffer":0,
"byteLength":4476,
"byteOffset":7460,
"target":34962
},
{
"buffer":0,
"byteLength":2984,
"byteOffset":11936,
"target":34962
},
{
"buffer":0,
"byteLength":1728,
"byteOffset":14920,
"target":34963
},
{
"buffer":0,
"byteLength":23048,
"byteOffset":16648,
"target":34962
},
{
"buffer":0,
"byteLength":34572,
"byteOffset":39696,
"target":34962
},
{
"buffer":0,
"byteLength":34572,
"byteOffset":74268,
"target":34962
},
{
"buffer":0,
"byteLength":23048,
"byteOffset":108840,
"target":34962
},
{
"buffer":0,
"byteLength":10506,
"byteOffset":131888,
"target":34963
},
{
"buffer":0,
"byteLength":7624,
"byteOffset":142396,
"target":34962
},
{
"buffer":0,
"byteLength":11436,
"byteOffset":150020,
"target":34962
},
{
"buffer":0,
"byteLength":11436,
"byteOffset":161456,
"target":34962
},
{
"buffer":0,
"byteLength":7624,
"byteOffset":172892,
"target":34962
},
{
"buffer":0,
"byteLength":4248,
"byteOffset":180516,
"target":34963
},
{
"buffer":0,
"byteLength":116928,
"byteOffset":184764,
"target":34962
},
{
"buffer":0,
"byteLength":175392,
"byteOffset":301692,
"target":34962
},
{
"buffer":0,
"byteLength":175392,
"byteOffset":477084,
"target":34962
},
{
"buffer":0,
"byteLength":116928,
"byteOffset":652476,
"target":34962
},
{
"buffer":0,
"byteLength":70152,
"byteOffset":769404,
"target":34963
},
{
"buffer":0,
"byteLength":3720,
"byteOffset":839556,
"target":34962
},
{
"buffer":0,
"byteLength":5580,
"byteOffset":843276,
"target":34962
},
{
"buffer":0,
"byteLength":5580,
"byteOffset":848856,
"target":34962
},
{
"buffer":0,
"byteLength":3720,
"byteOffset":854436,
"target":34962
},
{
"buffer":0,
"byteLength":3792,
"byteOffset":858156,
"target":34963
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":861948,
"uri":"potted-plant-1.bin"
}
]
}
File diff suppressed because one or more lines are too long
+297
View File
@@ -0,0 +1,297 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v3.6.27",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0
]
}
],
"nodes":[
{
"mesh":0,
"name":"PottedPlant3"
}
],
"materials":[
{
"name":"230510_b",
"normalTexture":{
"index":0
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicRoughnessTexture":{
"index":2
}
}
},
{
"alphaCutoff":0.5,
"alphaMode":"MASK",
"doubleSided":true,
"name":"None.001",
"normalTexture":{
"index":3
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":4
},
"metallicRoughnessTexture":{
"index":5
}
}
}
],
"meshes":[
{
"name":"PottedPlant3",
"primitives":[
{
"attributes":{
"COLOR_0":0,
"POSITION":1,
"NORMAL":2,
"TEXCOORD_0":3
},
"indices":4,
"material":0
},
{
"attributes":{
"COLOR_0":5,
"POSITION":6,
"NORMAL":7,
"TEXCOORD_0":8
},
"indices":9,
"material":1
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
},
{
"sampler":0,
"source":3
},
{
"sampler":0,
"source":4
},
{
"sampler":0,
"source":5
}
],
"images":[
{
"mimeType":"image/png",
"name":"230510_b_normal",
"uri":"../textures/230510_b_normal.png"
},
{
"mimeType":"image/png",
"name":"230510_b_basecolor",
"uri":"../textures/230510_b_basecolor.png"
},
{
"mimeType":"image/png",
"name":"230510_b_occlusionroughnessmetallic",
"uri":"../textures/230510_b_occlusionroughnessmetallic.png"
},
{
"mimeType":"image/png",
"name":"none_normal",
"uri":"../textures/none_normal.png"
},
{
"mimeType":"image/png",
"name":"none_basecolor",
"uri":"../textures/none_basecolor.png"
},
{
"mimeType":"image/png",
"name":"none_occlusionroughnessmetallic",
"uri":"../textures/none_occlusionroughnessmetallic.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5123,
"count":27947,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":1,
"componentType":5126,
"count":27947,
"max":[
0.20527732372283936,
1.1365097761154175,
0.1583448350429535
],
"min":[
-0.14585593342781067,
0,
-0.2576342821121216
],
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":27947,
"type":"VEC3"
},
{
"bufferView":3,
"componentType":5126,
"count":27947,
"type":"VEC2"
},
{
"bufferView":4,
"componentType":5123,
"count":143556,
"type":"SCALAR"
},
{
"bufferView":5,
"componentType":5123,
"count":1239,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":6,
"componentType":5126,
"count":1239,
"max":[
0.30904287099838257,
1.2173328399658203,
0.35934215784072876
],
"min":[
-0.30904287099838257,
0.6203020811080933,
-0.35934215784072876
],
"type":"VEC3"
},
{
"bufferView":7,
"componentType":5126,
"count":1239,
"type":"VEC3"
},
{
"bufferView":8,
"componentType":5126,
"count":1239,
"type":"VEC2"
},
{
"bufferView":9,
"componentType":5123,
"count":5796,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":223576,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":335364,
"byteOffset":223576,
"target":34962
},
{
"buffer":0,
"byteLength":335364,
"byteOffset":558940,
"target":34962
},
{
"buffer":0,
"byteLength":223576,
"byteOffset":894304,
"target":34962
},
{
"buffer":0,
"byteLength":287112,
"byteOffset":1117880,
"target":34963
},
{
"buffer":0,
"byteLength":9912,
"byteOffset":1404992,
"target":34962
},
{
"buffer":0,
"byteLength":14868,
"byteOffset":1414904,
"target":34962
},
{
"buffer":0,
"byteLength":14868,
"byteOffset":1429772,
"target":34962
},
{
"buffer":0,
"byteLength":9912,
"byteOffset":1444640,
"target":34962
},
{
"buffer":0,
"byteLength":11592,
"byteOffset":1454552,
"target":34963
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":1466144,
"uri":"potted-plant-3.bin"
}
]
}
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+177
View File
@@ -0,0 +1,177 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v3.6.27",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0
]
}
],
"nodes":[
{
"mesh":0,
"name":"Rug",
"scale":[
1.3000000715255737,
1.3000000715255737,
1.3000000715255737
]
}
],
"materials":[
{
"name":"initialShadingGroup.002",
"normalTexture":{
"index":0
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicRoughnessTexture":{
"index":2
}
}
}
],
"meshes":[
{
"name":"Rug",
"primitives":[
{
"attributes":{
"COLOR_0":0,
"POSITION":1,
"NORMAL":2,
"TEXCOORD_0":3
},
"indices":4,
"material":0
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
}
],
"images":[
{
"mimeType":"image/png",
"name":"archisketch_15261_frame_cocoa_normal",
"uri":"../textures/archisketch_15261_frame_cocoa_normal.png"
},
{
"mimeType":"image/png",
"name":"archisketch_15261_frame_cocoa_basecolor",
"uri":"../textures/archisketch_15261_frame_cocoa_basecolor.png"
},
{
"mimeType":"image/png",
"name":"archisketch_15261_frame_cocoa_occlusionroughnessmetallic",
"uri":"../textures/archisketch_15261_frame_cocoa_occlusionroughnessmetallic.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5123,
"count":2196,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":1,
"componentType":5126,
"count":2196,
"max":[
0.7471415996551514,
0.01999974437057972,
0.7471414804458618
],
"min":[
-0.7471415996551514,
0,
-0.7471414804458618
],
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":2196,
"type":"VEC3"
},
{
"bufferView":3,
"componentType":5126,
"count":2196,
"type":"VEC2"
},
{
"bufferView":4,
"componentType":5123,
"count":12528,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":17568,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":26352,
"byteOffset":17568,
"target":34962
},
{
"buffer":0,
"byteLength":26352,
"byteOffset":43920,
"target":34962
},
{
"buffer":0,
"byteLength":17568,
"byteOffset":70272,
"target":34962
},
{
"buffer":0,
"byteLength":25056,
"byteOffset":87840,
"target":34963
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":112896,
"uri":"rug.bin"
}
]
}
File diff suppressed because one or more lines are too long
+172
View File
@@ -0,0 +1,172 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v3.6.27",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0
]
}
],
"nodes":[
{
"mesh":0,
"name":"WickerBasket"
}
],
"materials":[
{
"name":"DefaultMaterial.002",
"normalTexture":{
"index":0
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicRoughnessTexture":{
"index":2
}
}
}
],
"meshes":[
{
"name":"WickerBasket",
"primitives":[
{
"attributes":{
"COLOR_0":0,
"POSITION":1,
"NORMAL":2,
"TEXCOORD_0":3
},
"indices":4,
"material":0
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
}
],
"images":[
{
"mimeType":"image/png",
"name":"archisketch_302398_frame-_brown__normal",
"uri":"../textures/archisketch_302398_frame-_brown__normal.png"
},
{
"mimeType":"image/png",
"name":"archisketch_302398_frame-_brown__basecolor",
"uri":"../textures/archisketch_302398_frame-_brown__basecolor.png"
},
{
"mimeType":"image/png",
"name":"archisketch_302398_frame-_brown__occlusionroughnessmetallic",
"uri":"../textures/archisketch_302398_frame-_brown__occlusionroughnessmetallic.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5123,
"count":4003,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":1,
"componentType":5126,
"count":4003,
"max":[
0.299081951379776,
0.2872571349143982,
0.2306119054555893
],
"min":[
-0.299081951379776,
0,
-0.2306119054555893
],
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":4003,
"type":"VEC3"
},
{
"bufferView":3,
"componentType":5126,
"count":4003,
"type":"VEC2"
},
{
"bufferView":4,
"componentType":5123,
"count":19680,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":32024,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":48036,
"byteOffset":32024,
"target":34962
},
{
"buffer":0,
"byteLength":48036,
"byteOffset":80060,
"target":34962
},
{
"buffer":0,
"byteLength":32024,
"byteOffset":128096,
"target":34962
},
{
"buffer":0,
"byteLength":39360,
"byteOffset":160120,
"target":34963
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":199480,
"uri":"wicker-basket.bin"
}
]
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 13 KiB