Revision control
++ {
++ "asset": {
++ "version": "2.0"
++ },
++ "extensionsUsed": [
++ "KHR_materials_variants"
++ ],
++ "extensions": {
++ "KHR_materials_variants": {
++ "variants": [
++ {
++ "name": "Red"
++ },
++ {
++ "name": "Blue"
++ }
++ ]
++ }
++ },
++ "scene": 0,
++ "scenes": [
++ {
++ "nodes": [
++ 0
++ ]
++ }
++ ],
++ "nodes": [
++ {
++ "name": "shoe",
++ "mesh": 0
++ }
++ ],
++ "meshes": [
++ {
++ "primitives": [
++ {
++ "attributes": {
++ "POSITION": 0,
++ "NORMAL": 1,
++ "TEXCOORD_0": 2
++ },
++ "material": 0,
++ "extensions": {
++ "KHR_materials_variants": {
++ "mappings": [
++ {
++ "material": 1,
++ "variants": [
++ 0
++ ]
++ },
++ {
++ "material": 2,
++ "variants": [
++ 1
++ ]
++ }
++ ]
++ }
++ }
++ }
++ ]
++ }
++ ],
++ "materials": [
++ {
++ "name": "defaultMaterial"
++ },
++ {
++ "name": "redMaterial"
++ },
++ {
++ "name": "blueMaterial",
++ "normalTexture": {
++ "index": 0
++ }
++ }
++ ],
++ "textures": [
++ {
++ "source": 0
++ }
++ ],
++ "images": [
++ {
++ "uri": "normal.png"
++ }
++ ],
++ "buffers": [
++ {
++ "uri": "data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/",
++ "byteLength": 96
++ }
++ ],
++ "bufferViews": [
++ {
++ "buffer": 0,
++ "byteOffset": 0,
++ "byteLength": 36
++ },
++ {
++ "buffer": 0,
++ "byteOffset": 36,
++ "byteLength": 36
++ },
++ {
++ "buffer": 0,
++ "byteOffset": 72,
++ "byteLength": 24
++ }
++ ],
++ "accessors": [
++ {
++ "bufferView": 0,
++ "componentType": 5126,
++ "count": 3,
++ "type": "VEC3",
++ "min": [
++ 0,
++ 0,
++ 0
++ ],
++ "max": [
++ 1,
++ 1,
++ 0
++ ]
++ },
++ {
++ "bufferView": 1,
++ "componentType": 5126,
++ "count": 3,
++ "type": "VEC3"
++ },
++ {
++ "bufferView": 2,
++ "componentType": 5126,
++ "count": 3,
++ "type": "VEC2"
++ }
++ ]
++ }