Browse Source

Merge branch 'dev' of https://github.com/mrdoob/three.js into dev

Mr.doob 7 years ago
parent
commit
6b38f40f93
83 changed files with 1222 additions and 19009 deletions
  1. 136 35
      build/three.js
  2. 300 300
      build/three.min.js
  3. 136 35
      build/three.module.js
  4. 0 2
      docs/api/constants/Renderer.html
  5. 2 0
      docs/api/deprecated/DeprecatedList.html
  6. 12 7
      docs/api/extras/core/Path.html
  7. 2 2
      docs/api/geometries/TorusBufferGeometry.html
  8. 2 2
      docs/api/geometries/TorusGeometry.html
  9. 2 2
      docs/api/geometries/TorusKnotBufferGeometry.html
  10. 2 2
      docs/api/geometries/TorusKnotGeometry.html
  11. 2 3
      docs/api/math/Matrix4.html
  12. 12 1
      docs/api/objects/Sprite.html
  13. 1 1
      docs/api/renderers/WebGLRenderTarget.html
  14. 5 17
      docs/api/renderers/WebGLRenderer.html
  15. 1 7
      docs/examples/loaders/GLTFLoader.html
  16. 12 12
      docs/manual/introduction/Drawing-lines.html
  17. 1 0
      editor/index.html
  18. 1 1
      editor/js/Editor.js
  19. 41 0
      editor/js/Sidebar.Settings.Viewport.js
  20. 2 0
      editor/js/Sidebar.Settings.js
  21. 0 23
      editor/js/Toolbar.js
  22. 3 3
      editor/js/Viewport.Info.js
  23. 13 22
      editor/js/Viewport.js
  24. 0 4
      editor/js/libs/tern-threejs/threejs.js
  25. 20 20
      examples/js/GPUParticleSystem.js
  26. 5 0
      examples/js/exporters/GLTFExporter.js
  27. 22 22
      examples/js/geometries/ConvexGeometry.js
  28. 196 196
      examples/js/geometries/DecalGeometry.js
  29. 1 1
      examples/js/loaders/FBXLoader.js
  30. 2 116
      examples/js/loaders/GLTFLoader.js
  31. 3 3
      examples/js/postprocessing/EffectComposer.js
  32. 6 0
      examples/js/vr/WebVR.js
  33. 1 1
      examples/misc_animation_authoring.html
  34. 1 1
      examples/misc_controls_transform.html
  35. 1 1
      examples/misc_fps.html
  36. 0 2801
      examples/models/gltf/CesiumMan/glTF-MaterialsCommon/CesiumMan.gltf
  37. BIN
      examples/models/gltf/CesiumMan/glTF-MaterialsCommon/CesiumMan.jpg
  38. BIN
      examples/models/gltf/CesiumMan/glTF-MaterialsCommon/CesiumMan0.bin
  39. 0 2902
      examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan.gltf
  40. BIN
      examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan.jpg
  41. BIN
      examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan0.bin
  42. 0 24
      examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan0.vert
  43. 0 33
      examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan1.frag
  44. BIN
      examples/models/gltf/Duck/glTF-MaterialsCommon/Duck.bin
  45. 0 419
      examples/models/gltf/Duck/glTF-MaterialsCommon/Duck.gltf
  46. BIN
      examples/models/gltf/Duck/glTF-MaterialsCommon/DuckCM.png
  47. 0 371
      examples/models/gltf/Duck/glTF-techniqueWebGL/Duck.gltf
  48. BIN
      examples/models/gltf/Duck/glTF-techniqueWebGL/Duck0.bin
  49. 0 20
      examples/models/gltf/Duck/glTF-techniqueWebGL/Duck0.vert
  50. 0 38
      examples/models/gltf/Duck/glTF-techniqueWebGL/Duck1.frag
  51. BIN
      examples/models/gltf/Duck/glTF-techniqueWebGL/DuckCM.png
  52. 0 4512
      examples/models/gltf/Monster/glTF-MaterialsCommon/Monster.gltf
  53. BIN
      examples/models/gltf/Monster/glTF-MaterialsCommon/Monster.jpg
  54. BIN
      examples/models/gltf/Monster/glTF-MaterialsCommon/Monster0.bin
  55. 0 4613
      examples/models/gltf/Monster/glTF-techniqueWebGL/Monster.gltf
  56. BIN
      examples/models/gltf/Monster/glTF-techniqueWebGL/Monster.jpg
  57. BIN
      examples/models/gltf/Monster/glTF-techniqueWebGL/Monster0.bin
  58. 0 24
      examples/models/gltf/Monster/glTF-techniqueWebGL/Monster0.vert
  59. 0 33
      examples/models/gltf/Monster/glTF-techniqueWebGL/Monster1.frag
  60. 0 572
      examples/models/gltf/RiggedSimple/glTF-MaterialsCommon/RiggedSimple.gltf
  61. BIN
      examples/models/gltf/RiggedSimple/glTF-MaterialsCommon/RiggedSimple0.bin
  62. 0 667
      examples/models/gltf/RiggedSimple/glTF-techniqueWebGL/RiggedSimple.gltf
  63. BIN
      examples/models/gltf/RiggedSimple/glTF-techniqueWebGL/RiggedSimple0.bin
  64. 0 21
      examples/models/gltf/RiggedSimple/glTF-techniqueWebGL/RiggedSimple0.vert
  65. 0 32
      examples/models/gltf/RiggedSimple/glTF-techniqueWebGL/RiggedSimple1.frag
  66. 1 1
      examples/webgl_buffergeometry_instancing_interleaved_dynamic.html
  67. 1 1
      examples/webgl_lights_rectarealight.html
  68. 1 6
      examples/webgl_loader_gltf_extensions.html
  69. 1 1
      examples/webgl_materials_texture_anisotropy.html
  70. 5 8
      examples/webgl_points_dynamic.html
  71. 10 10
      examples/webgl_sprites.html
  72. 217 166
      examples/webgl_tiled_forward.html
  73. 4 4
      package.json
  74. 4 3
      rollup.config.js
  75. 5 0
      src/Three.Legacy.js
  76. 1 37
      src/extras/core/Font.js
  77. 14 0
      src/objects/Sprite.js
  78. 3 11
      src/renderers/WebGLRenderer.js
  79. 8 1
      src/renderers/webgl/WebGLSpriteRenderer.js
  80. 1 1
      utils/build/externs.js
  81. 0 58
      utils/exporters/maya/README.md
  82. 0 668
      utils/exporters/maya/plug-ins/threeJsFileTranslator.py
  83. 0 109
      utils/exporters/maya/scripts/ThreeJsExportScript.mel

+ 136 - 35
build/three.js

@@ -6716,6 +6716,7 @@
 				uvScale: gl.getUniformLocation( program, 'uvScale' ),
 
 				rotation: gl.getUniformLocation( program, 'rotation' ),
+				center: gl.getUniformLocation( program, 'center' ),
 				scale: gl.getUniformLocation( program, 'scale' ),
 
 				color: gl.getUniformLocation( program, 'color' ),
@@ -6832,6 +6833,7 @@
 			// render all sprites
 
 			var scale = [];
+			var center = [];
 
 			for ( var i = 0, l = sprites.length; i < l; i ++ ) {
 
@@ -6850,6 +6852,9 @@
 				scale[ 0 ] = spriteScale.x;
 				scale[ 1 ] = spriteScale.y;
 
+				center[ 0 ] = sprite.center.x - 0.5;
+				center[ 1 ] = sprite.center.y - 0.5;
+
 				var fogType = 0;
 
 				if ( scene.fog && material.fog ) {
@@ -6881,6 +6886,7 @@
 				gl.uniform3f( uniforms.color, material.color.r, material.color.g, material.color.b );
 
 				gl.uniform1f( uniforms.rotation, material.rotation );
+				gl.uniform2fv( uniforms.center, center );
 				gl.uniform2fv( uniforms.scale, scale );
 
 				state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha );
@@ -6920,6 +6926,7 @@
 				'uniform mat4 modelViewMatrix;',
 				'uniform mat4 projectionMatrix;',
 				'uniform float rotation;',
+				'uniform vec2 center;',
 				'uniform vec2 scale;',
 				'uniform vec2 uvOffset;',
 				'uniform vec2 uvScale;',
@@ -6934,7 +6941,7 @@
 
 				'	vUV = uvOffset + uv * uvScale;',
 
-				'	vec2 alignedPosition = position * scale;',
+				'	vec2 alignedPosition = ( position - center ) * scale;',
 
 				'	vec2 rotatedPosition;',
 				'	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;',
@@ -7932,6 +7939,107 @@
 
 		},
 
+		intersectsTriangle: ( function () {
+
+			// triangle centered vertices
+			var v0 = new Vector3();
+			var v1 = new Vector3();
+			var v2 = new Vector3();
+
+			// triangle edge vectors
+			var f0 = new Vector3();
+			var f1 = new Vector3();
+			var f2 = new Vector3();
+
+			var testAxis = new Vector3();
+
+			var center = new Vector3();
+			var extents = new Vector3();
+
+			var triangleNormal = new Vector3();
+
+			function satForAxes( axes ) {
+
+				var i, j;
+
+				for ( i = 0, j = axes.length - 3; i <= j; i += 3 ) {
+
+					testAxis.fromArray( axes, i );
+					// project the aabb onto the seperating axis
+					var r = extents.x * Math.abs( testAxis.x ) + extents.y * Math.abs( testAxis.y ) + extents.z * Math.abs( testAxis.z );
+					// project all 3 vertices of the triangle onto the seperating axis
+					var p0 = v0.dot( testAxis );
+					var p1 = v1.dot( testAxis );
+					var p2 = v2.dot( testAxis );
+					// actual test, basically see if either of the most extreme of the triangle points intersects r
+					if ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {
+
+						// points of the projected triangle are outside the projected half-length of the aabb
+						// the axis is seperating and we can exit
+						return false;
+
+					}
+
+				}
+
+				return true;
+
+			}
+
+			return function intersectsTriangle( triangle ) {
+
+				if ( this.isEmpty() ) {
+
+					return false;
+
+				}
+
+				// compute box center and extents
+				this.getCenter( center );
+				extents.subVectors( this.max, center );
+
+				// translate triangle to aabb origin
+				v0.subVectors( triangle.a, center );
+				v1.subVectors( triangle.b, center );
+				v2.subVectors( triangle.c, center );
+
+				// compute edge vectors for triangle
+				f0.subVectors( v1, v0 );
+				f1.subVectors( v2, v1 );
+				f2.subVectors( v0, v2 );
+
+				// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb
+				// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation
+				// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)
+				var axes = [
+					0, - f0.z, f0.y, 0, - f1.z, f1.y, 0, - f2.z, f2.y,
+					f0.z, 0, - f0.x, f1.z, 0, - f1.x, f2.z, 0, - f2.x,
+					- f0.y, f0.x, 0, - f1.y, f1.x, 0, - f2.y, f2.x, 0
+				];
+				if ( ! satForAxes( axes ) ) {
+
+					return false;
+
+				}
+
+				// test 3 face normals from the aabb
+				axes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];
+				if ( ! satForAxes( axes ) ) {
+
+					return false;
+
+				}
+
+				// finally testing the face normal of the triangle
+				// use already existing triangle edge vectors here
+				triangleNormal.crossVectors( f0, f1 );
+				axes = [ triangleNormal.x, triangleNormal.y, triangleNormal.z ];
+				return satForAxes( axes );
+
+			};
+
+		} )(),
+
 		clampPoint: function ( point, optionalTarget ) {
 
 			var result = optionalTarget || new Vector3();
@@ -15321,6 +15429,12 @@
 
 		},
 
+		intersectsBox: function ( box ) {
+
+			return box.intersectsTriangle( this );
+
+		},
+
 		closestPointToPoint: function () {
 
 			var plane = new Plane();
@@ -21815,7 +21929,7 @@
 
 			state.setPolygonOffset( false );
 
-			scene.onAfterRender( _this, scene, camera, renderTarget );
+			scene.onAfterRender( _this, scene, camera );
 
 			if ( vr.enabled ) {
 
@@ -22380,6 +22494,7 @@
 							boneMatrices.set( skeleton.boneMatrices ); // copy current values
 
 							var boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );
+							boneTexture.needsUpdate = true;
 
 							skeleton.boneMatrices = boneMatrices;
 							skeleton.boneTexture = boneTexture;
@@ -22909,15 +23024,6 @@
 
 		}
 
-		// GL state setting
-
-		this.setFaceCulling = function ( cullFace, frontFaceDirection ) {
-
-			state.setCullFace( cullFace );
-			state.setFlipSided( frontFaceDirection === FrontFaceDirectionCW );
-
-		};
-
 		// Textures
 
 		function allocTextureUnit() {
@@ -23359,6 +23465,8 @@
 
 		this.material = ( material !== undefined ) ? material : new SpriteMaterial();
 
+		this.center = new Vector2( 0.5, 0.5 );
+
 	}
 
 	Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
@@ -23404,8 +23512,19 @@
 
 			return new this.constructor( this.material ).copy( this );
 
+		},
+
+		copy: function ( source ) {
+
+			Object3D.prototype.copy.call( this, source );
+
+			if ( source.center !== undefined ) this.center.copy( source.center );
+
+			return this;
+
 		}
 
+
 	} );
 
 	/**
@@ -37364,8 +37483,7 @@
 
 		var path = new ShapePath();
 
-		var pts = [];
-		var x, y, cpx, cpy, cpx0, cpy0, cpx1, cpy1, cpx2, cpy2, laste;
+		var x, y, cpx, cpy, cpx1, cpy1, cpx2, cpy2;
 
 		if ( glyph.o ) {
 
@@ -37404,17 +37522,6 @@
 
 						path.quadraticCurveTo( cpx1, cpy1, cpx, cpy );
 
-						laste = pts[ pts.length - 1 ];
-
-						if ( laste ) {
-
-							cpx0 = laste.x;
-							cpy0 = laste.y;
-
-							
-
-						}
-
 						break;
 
 					case 'b': // bezierCurveTo
@@ -37428,17 +37535,6 @@
 
 						path.bezierCurveTo( cpx1, cpy1, cpx2, cpy2, cpx, cpy );
 
-						laste = pts[ pts.length - 1 ];
-
-						if ( laste ) {
-
-							cpx0 = laste.x;
-							cpy0 = laste.y;
-
-							
-
-						}
-
 						break;
 
 				}
@@ -44710,6 +44806,11 @@
 
 			console.warn( 'THREE.WebGLRenderer: .updateShadowMap() has been removed.' );
 
+		},
+		setFaceCulling: function () {
+
+			console.warn( 'THREE.WebGLRenderer: .setFaceCulling() has been removed.' );
+
 		}
 
 	} );

File diff suppressed because it is too large
+ 300 - 300
build/three.min.js


+ 136 - 35
build/three.module.js

@@ -6710,6 +6710,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			uvScale: gl.getUniformLocation( program, 'uvScale' ),
 
 			rotation: gl.getUniformLocation( program, 'rotation' ),
+			center: gl.getUniformLocation( program, 'center' ),
 			scale: gl.getUniformLocation( program, 'scale' ),
 
 			color: gl.getUniformLocation( program, 'color' ),
@@ -6826,6 +6827,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 		// render all sprites
 
 		var scale = [];
+		var center = [];
 
 		for ( var i = 0, l = sprites.length; i < l; i ++ ) {
 
@@ -6844,6 +6846,9 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			scale[ 0 ] = spriteScale.x;
 			scale[ 1 ] = spriteScale.y;
 
+			center[ 0 ] = sprite.center.x - 0.5;
+			center[ 1 ] = sprite.center.y - 0.5;
+
 			var fogType = 0;
 
 			if ( scene.fog && material.fog ) {
@@ -6875,6 +6880,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			gl.uniform3f( uniforms.color, material.color.r, material.color.g, material.color.b );
 
 			gl.uniform1f( uniforms.rotation, material.rotation );
+			gl.uniform2fv( uniforms.center, center );
 			gl.uniform2fv( uniforms.scale, scale );
 
 			state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha );
@@ -6914,6 +6920,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			'uniform mat4 modelViewMatrix;',
 			'uniform mat4 projectionMatrix;',
 			'uniform float rotation;',
+			'uniform vec2 center;',
 			'uniform vec2 scale;',
 			'uniform vec2 uvOffset;',
 			'uniform vec2 uvScale;',
@@ -6928,7 +6935,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 
 			'	vUV = uvOffset + uv * uvScale;',
 
-			'	vec2 alignedPosition = position * scale;',
+			'	vec2 alignedPosition = ( position - center ) * scale;',
 
 			'	vec2 rotatedPosition;',
 			'	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;',
@@ -7926,6 +7933,107 @@ Object.assign( Box3.prototype, {
 
 	},
 
+	intersectsTriangle: ( function () {
+
+		// triangle centered vertices
+		var v0 = new Vector3();
+		var v1 = new Vector3();
+		var v2 = new Vector3();
+
+		// triangle edge vectors
+		var f0 = new Vector3();
+		var f1 = new Vector3();
+		var f2 = new Vector3();
+
+		var testAxis = new Vector3();
+
+		var center = new Vector3();
+		var extents = new Vector3();
+
+		var triangleNormal = new Vector3();
+
+		function satForAxes( axes ) {
+
+			var i, j;
+
+			for ( i = 0, j = axes.length - 3; i <= j; i += 3 ) {
+
+				testAxis.fromArray( axes, i );
+				// project the aabb onto the seperating axis
+				var r = extents.x * Math.abs( testAxis.x ) + extents.y * Math.abs( testAxis.y ) + extents.z * Math.abs( testAxis.z );
+				// project all 3 vertices of the triangle onto the seperating axis
+				var p0 = v0.dot( testAxis );
+				var p1 = v1.dot( testAxis );
+				var p2 = v2.dot( testAxis );
+				// actual test, basically see if either of the most extreme of the triangle points intersects r
+				if ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {
+
+					// points of the projected triangle are outside the projected half-length of the aabb
+					// the axis is seperating and we can exit
+					return false;
+
+				}
+
+			}
+
+			return true;
+
+		}
+
+		return function intersectsTriangle( triangle ) {
+
+			if ( this.isEmpty() ) {
+
+				return false;
+
+			}
+
+			// compute box center and extents
+			this.getCenter( center );
+			extents.subVectors( this.max, center );
+
+			// translate triangle to aabb origin
+			v0.subVectors( triangle.a, center );
+			v1.subVectors( triangle.b, center );
+			v2.subVectors( triangle.c, center );
+
+			// compute edge vectors for triangle
+			f0.subVectors( v1, v0 );
+			f1.subVectors( v2, v1 );
+			f2.subVectors( v0, v2 );
+
+			// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb
+			// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation
+			// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)
+			var axes = [
+				0, - f0.z, f0.y, 0, - f1.z, f1.y, 0, - f2.z, f2.y,
+				f0.z, 0, - f0.x, f1.z, 0, - f1.x, f2.z, 0, - f2.x,
+				- f0.y, f0.x, 0, - f1.y, f1.x, 0, - f2.y, f2.x, 0
+			];
+			if ( ! satForAxes( axes ) ) {
+
+				return false;
+
+			}
+
+			// test 3 face normals from the aabb
+			axes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];
+			if ( ! satForAxes( axes ) ) {
+
+				return false;
+
+			}
+
+			// finally testing the face normal of the triangle
+			// use already existing triangle edge vectors here
+			triangleNormal.crossVectors( f0, f1 );
+			axes = [ triangleNormal.x, triangleNormal.y, triangleNormal.z ];
+			return satForAxes( axes );
+
+		};
+
+	} )(),
+
 	clampPoint: function ( point, optionalTarget ) {
 
 		var result = optionalTarget || new Vector3();
@@ -15315,6 +15423,12 @@ Object.assign( Triangle.prototype, {
 
 	},
 
+	intersectsBox: function ( box ) {
+
+		return box.intersectsTriangle( this );
+
+	},
+
 	closestPointToPoint: function () {
 
 		var plane = new Plane();
@@ -21809,7 +21923,7 @@ function WebGLRenderer( parameters ) {
 
 		state.setPolygonOffset( false );
 
-		scene.onAfterRender( _this, scene, camera, renderTarget );
+		scene.onAfterRender( _this, scene, camera );
 
 		if ( vr.enabled ) {
 
@@ -22374,6 +22488,7 @@ function WebGLRenderer( parameters ) {
 						boneMatrices.set( skeleton.boneMatrices ); // copy current values
 
 						var boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );
+						boneTexture.needsUpdate = true;
 
 						skeleton.boneMatrices = boneMatrices;
 						skeleton.boneTexture = boneTexture;
@@ -22903,15 +23018,6 @@ function WebGLRenderer( parameters ) {
 
 	}
 
-	// GL state setting
-
-	this.setFaceCulling = function ( cullFace, frontFaceDirection ) {
-
-		state.setCullFace( cullFace );
-		state.setFlipSided( frontFaceDirection === FrontFaceDirectionCW );
-
-	};
-
 	// Textures
 
 	function allocTextureUnit() {
@@ -23353,6 +23459,8 @@ function Sprite( material ) {
 
 	this.material = ( material !== undefined ) ? material : new SpriteMaterial();
 
+	this.center = new Vector2( 0.5, 0.5 );
+
 }
 
 Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
@@ -23398,8 +23506,19 @@ Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
 
 		return new this.constructor( this.material ).copy( this );
 
+	},
+
+	copy: function ( source ) {
+
+		Object3D.prototype.copy.call( this, source );
+
+		if ( source.center !== undefined ) this.center.copy( source.center );
+
+		return this;
+
 	}
 
+
 } );
 
 /**
@@ -37358,8 +37477,7 @@ function createPath( char, divisions, scale, offsetX, offsetY, data ) {
 
 	var path = new ShapePath();
 
-	var pts = [];
-	var x, y, cpx, cpy, cpx0, cpy0, cpx1, cpy1, cpx2, cpy2, laste;
+	var x, y, cpx, cpy, cpx1, cpy1, cpx2, cpy2;
 
 	if ( glyph.o ) {
 
@@ -37398,17 +37516,6 @@ function createPath( char, divisions, scale, offsetX, offsetY, data ) {
 
 					path.quadraticCurveTo( cpx1, cpy1, cpx, cpy );
 
-					laste = pts[ pts.length - 1 ];
-
-					if ( laste ) {
-
-						cpx0 = laste.x;
-						cpy0 = laste.y;
-
-						
-
-					}
-
 					break;
 
 				case 'b': // bezierCurveTo
@@ -37422,17 +37529,6 @@ function createPath( char, divisions, scale, offsetX, offsetY, data ) {
 
 					path.bezierCurveTo( cpx1, cpy1, cpx2, cpy2, cpx, cpy );
 
-					laste = pts[ pts.length - 1 ];
-
-					if ( laste ) {
-
-						cpx0 = laste.x;
-						cpy0 = laste.y;
-
-						
-
-					}
-
 					break;
 
 			}
@@ -44704,6 +44800,11 @@ Object.assign( WebGLRenderer.prototype, {
 
 		console.warn( 'THREE.WebGLRenderer: .updateShadowMap() has been removed.' );
 
+	},
+	setFaceCulling: function () {
+
+		console.warn( 'THREE.WebGLRenderer: .setFaceCulling() has been removed.' );
+
 	}
 
 } );

+ 0 - 2
docs/api/constants/Renderer.html

@@ -18,7 +18,6 @@
 		THREE.CullFaceFrontBack
 		</code>
 		<div>
-		These are used by the WebGLRenderer's [page:WebGLRenderer.setFaceCulling setFaceCulling] method.<br /><br />
 		[page:constant CullFaceNone] disables face culling.<br />
 		[page:constant CullFaceBack] culls back faces (default).<br />
 		[page:constant CullFaceFront] culls front faces.<br />
@@ -31,7 +30,6 @@
 		THREE.FrontFaceDirectionCCW
 		</code>
 		<div>
-		These are used by the WebGLRenderer's [page:WebGLRenderer.setFaceCulling setFaceCulling] method.<br /><br />
 		[page:constant FrontFaceDirectionCW] sets the winding order for polygons to clockwise.<br />
 		[page:constant FrontFaceDirectionCCW] sets the winding order for polygons to counter-clockwise (default).
 		</div>

+ 2 - 0
docs/api/deprecated/DeprecatedList.html

@@ -539,6 +539,8 @@
 
 			WebGLRenderer.updateShadowMap() has been removed.<br /><br />
 
+			WebGLRenderer.setFaceCulling() has been removed.<br /><br />
+
 			WebGLRenderer.setTexture is deprecated, use [page:WebGLRenderer.setTexture2D]() instead.<br /><br />
 
 			WebGLRenderer.shadowMapEnabled is now [page:WebGLRenderer.shadowMap.enabled].<br /><br />

+ 12 - 7
docs/api/extras/core/Path.html

@@ -13,20 +13,25 @@
 		<h1>[name]</h1>
 
 		<div class="desc">
-		A 2d path representation, comprising of points, lines, and cubes, similar to the 2D Canvas API.
-		It extends [page:CurvePath].
+		A 2D path representation. The class provides methods for creating paths and contours of 2D shapes similar to the 2D Canvas API.
 		</div>
 
 		<h2>Example</h2>
 
 		<code>
-var v1 = new THREE.Vector2();
-var v2 = new THREE.Vector2(1, 45);
-var v3 = new THREE.Vector2(34, 34);
+			var path = new THREE.Path();
 
-var vectors = [v1, v2, v3];
+			path.lineTo( 0, 0.8 );
+			path.quadraticCurveTo( 0, 1, 0.2, 1 );
+			path.lineTo( 1, 1 );
 
-var path = new THREE.Path(vectors);
+			var points = path.getPoints();
+
+			var geometry = new THREE.BufferGeometry().setFromPoints( points );
+			var material = new THREE.LineBasicMaterial( { color: 0xffffff } );
+
+			var line = new THREE.Line( geometry, material );
+			scene.add( line );
 		</code>
 
 

+ 2 - 2
docs/api/geometries/TorusBufferGeometry.html

@@ -44,8 +44,8 @@
 
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer radialSegments], [page:Integer tubularSegments], [page:Float arc])</h3>
 		<div>
-		radius  Default is 1. <br />
-		tube — Diameter of the tube.  Default is 0.4. <br />
+		radius - Radius of the torus, from the center of the torus to the center of the tube. Default is 1. <br />
+		tube — Radius of the tube.  Default is 0.4. <br />
 		radialSegments — Default is 8 <br />
 		tubularSegments — Default is 6. <br />
 		arc — Central angle.  Default is Math.PI * 2.

+ 2 - 2
docs/api/geometries/TorusGeometry.html

@@ -44,8 +44,8 @@
 
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer radialSegments], [page:Integer tubularSegments], [page:Float arc])</h3>
 		<div>
-		radius  Default is 1. <br />
-		tube — Diameter of the tube.  Default is 0.4. <br />
+		radius - Radius of the torus, from the center of the torus to the center of the tube. Default is 1. <br />
+		tube — Radius of the tube.  Default is 0.4. <br />
 		radialSegments — Default is 8 <br />
 		tubularSegments — Default is 6. <br />
 		arc — Central angle.  Default is Math.PI * 2.

+ 2 - 2
docs/api/geometries/TorusKnotBufferGeometry.html

@@ -45,8 +45,8 @@
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer tubularSegments], [page:Integer radialSegments], [page:Integer p], [page:Integer q])</h3>
 		<div>
 			<ul>
-				<li>radius  Default is 1.</li>
-				<li>tube — Diameter of the tube. Default is 0.4.</li>
+				<li>radius - Radius of the torus. Default is 1.</li>
+				<li>tube — Radius of the tube. Default is 0.4.</li>
 				<li>tubularSegments — Default is 64.</li>
 				<li>radialSegments — Default is 8.</li>
 				<li>p — This value determines, how many times the geometry winds around its axis of rotational symmetry. Default is 2.</li>

+ 2 - 2
docs/api/geometries/TorusKnotGeometry.html

@@ -45,8 +45,8 @@
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer tubularSegments], [page:Integer radialSegments], [page:Integer p], [page:Integer q])</h3>
 		<div>
 			<ul>
-				<li>radius  Default is 1.</li>
-				<li>tube — Diameter of the tube. Default is 0.4.</li>
+				<li>radius - Radius of the torus. Default is 1.</li>
+				<li>tube — Radius of the tube. Default is 0.4.</li>
 				<li>tubularSegments — Default is 64.</li>
 				<li>radialSegments — Default is 8.</li>
 				<li>p — This value determines, how many times the geometry winds around its axis of rotational symmetry. Default is 2.</li>

+ 2 - 3
docs/api/math/Matrix4.html

@@ -26,11 +26,10 @@
 			Every [page:Object3D] has three associated Matrix4s:
 			<ul>
 				<li>
-					[page:Object3D.matrix]: This stores the local transform of the object.
+					[page:Object3D.matrix]: This stores the local transform of the object. This is the object's transformation relative to its parent.
 				</li>
 				<li>
-					[page:Object3D.matrixWorld]: The global or world transform of the object. This is the object's transformation relative to its parent.
-					If the object has no parent, then this is identical to the local transform.
+					[page:Object3D.matrixWorld]: The global or world transform of the object. If the object has no parent, then this is identical to the local transform stored in [page:Object3D.matrix matrix].
 				</li>
 				<li>
 					[page:Object3D.modelViewMatrix]: This represents the object's transformation relative to the camera's coordinate system.

+ 12 - 1
docs/api/objects/Sprite.html

@@ -57,7 +57,13 @@ scene.add( sprite );
 		</div>
 
 
- 		<h2>Methods</h2>
+		<h3>[property:Vector2 center]</h3>
+		<div>
+		The sprite's anchor point, and the point around which the sprite rotates. A value of (0.5, 0.5) corresponds to the midpoint of the sprite.
+		A value of (0, 0) corresponds to the lower left corner of the sprite. The default is (0.5, 0.5).
+		</div>
+
+		<h2>Methods</h2>
 		<div>See the base [page:Object3D] class for common methods.</div>
 
 		<h3>[method:Sprite clone]()</h3>
@@ -65,6 +71,11 @@ scene.add( sprite );
 		Returns a clone of this Sprite object and any descendants.
 		</div>
 
+		<h3>[method:Sprite copy]( [page:Sprite sprite] )</h3>
+		<div>
+		Copies the properties of the passed sprite to this one.
+		</div>
+
 		<h3>[method:Array raycast]( [page:Raycaster raycaster], [page:Array intersects] )</h3>
 		<div>
 		Get intersections between a casted ray and this sprite.

+ 1 - 1
docs/api/renderers/WebGLRenderTarget.html

@@ -11,7 +11,7 @@
 		<h1>[name]</h1>
 
 		<div class="desc">
-			A [link:https://msdn.microsoft.com/en-us/library/bb976073.aspx render target] is a buffer
+			A [link:https://msdn.microsoft.com/en-us/library/ff604997.aspx render target] is a buffer
 			where the video card draws pixels for a scene that	is being rendered in the background.
 			It is used in different effects, such as applying postprocessing to a rendered image
 			before displaying it on the screen.

+ 5 - 17
docs/api/renderers/WebGLRenderer.html

@@ -54,7 +54,8 @@
 		or overwritten. Default is *false*.<br />
 
 		[page:String powerPreference] - Provides a hint to the user agent indicating what configuration
-		of GPU is suitable for this WebGL context. Can be *"high-performance"*, *"low-power"* or *"default"*. Default is *"default"*.<br />
+		of GPU is suitable for this WebGL context. Can be *"high-performance"*, *"low-power"* or *"default"*. Default is *"default"*.
+		See the [link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2 WebGL spec] for more information.<br />
 
 		[page:Boolean depth] - whether the drawing buffer has a
 		[link:https://en.wikipedia.org/wiki/Z-buffering depth buffer] of at least 16 bits.
@@ -98,8 +99,8 @@
 		- [property:Boolean floatFragmentTextures]: whether the context supports the [link:https://developer.mozilla.org/en-US/docs/Web/API/OES_texture_float OES_texture_float] extension.
 			According to [link:https://webglstats.com/ WebGLStats], as of February 2016 over 95% of WebGL enabled devices support this.<br />
 		- [property:Boolean floatVertexTextures]: *true* if [property:Boolean floatFragmentTextures] and [property:Boolean vertexTextures] are both true.<br />
-		- [property:Method getMaxAnisotropy](): see [page:WebGLRenderer.getMaxAnisotropy getMaxAnisotropy] below. <br />
-		- [property:Method getMaxPrecision](): see [page:WebGLRenderer.getMaxPrecision getMaxPrecision] below. <br />
+		- [property:Method getMaxAnisotropy](): Returns the maximum available anisotropy.<br />
+		- [property:Method getMaxPrecision](): Returns the maximum available precision for vertex and fragment shaders. <br />
 		- [property:Boolean logarithmicDepthBuffer]: *true* if the [property:parameter logarithmicDepthBuffer] was set to true in the constructor and
 		the context supports the [link:https://developer.mozilla.org/en-US/docs/Web/API/EXT_frag_depth EXT_frag_depth] extension.
 			According to [link:https://webglstats.com/ WebGLStats], as of February 2016 around 66% of WebGL enabled devices support this.<br />
@@ -358,18 +359,12 @@
 		<h3>[method:RenderTarget getCurrentViewport]()</h3>
 		<div>Returns the current viewport.</div>
 
-		<h3>[method:Number getMaxAnisotropy]()</h3>
-		<div>This returns the anisotropy level of the textures.</div>
-
 		<h3>[method:Object getDrawingBufferSize]()</h3>
 		<div>Returns an object containing the width and height of the renderer's drawing buffer, in pixels.</div>
 
 		<h3>[method:number getPixelRatio]()</h3>
 		<div>Returns current device pixel ratio used.</div>
 
-		<h3>[method:string getPrecision]()</h3>
-		<div>This gets the precision used by the shaders. It returns "highp","mediump" or "lowp".</div>
-
 		<h3>[method:Object getSize]()</h3>
 		<div>Returns an object containing the width and height of the renderer's output canvas, in pixels.</div>
 
@@ -414,13 +409,6 @@
 		<h3>[method:null setClearColor]( [page:Color color], [page:Float alpha] )</h3>
 		<div>Sets the clear color and opacity.</div>
 
-		<h3>[method:null setFaceCulling]( [page:Renderer cullFace], [page:Renderer frontFace] )</h3>
-		<div>
-		See [page:Renderer WebGLRenderer constants] for all possible values for [page:Renderer cullFace] and [page:Renderer frontFace].<br />
-		Used for setting the gl.frontFace and gl.cullFace states in the GPU, thus enabling/disabling face culling when rendering.<br />
-		If cullFace is set to [page:Renderer CullFaceNone], culling will be disabled.<br />
-		</div>
-
 		<h3>[method:null setPixelRatio]( [page:number value] )</h3>
 		<div>Sets device pixel ratio. This is usually used for HiDPI device to prevent bluring output canvas.</div>
 
@@ -451,7 +439,7 @@
 		<div>
 		Resizes the output canvas to (width, height) with device pixel ratio taken into account,
 			and also sets the viewport to fit that size, starting in (0, 0).
-			Setting [page:Boolean updateStyle] to true adds explicit pixel units to the output canvas style.
+			Setting [page:Boolean updateStyle] to false prevents any style changes to the output canvas.
 		</div>
 
 		<h3>[method:null setTexture2D]( [page:Texture texture], [page:number slot] )</h3>

+ 1 - 7
docs/examples/loaders/GLTFLoader.html

@@ -28,16 +28,10 @@
 
 		<ul>
 			<li>
-				<a target="_blank" href="https://github.com/KhronosGroup/glTF/tree/master/extensions/Khronos/KHR_materials_pbrSpecularGlossiness">
+				<a target="_blank" href="https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness">
 					KHR_materials_pbrSpecularGlossiness
 				</a>
 			</li>
-			<li>
-				<a target="_blank" href="https://github.com/KhronosGroup/glTF/tree/master/extensions/Khronos/KHR_materials_common">
-					KHR_materials_common
-				</a>
-				(experimental)
-			</li>
 			<li>
 				KHR_lights (experimental)
 			</li>

+ 12 - 12
docs/manual/introduction/Drawing-lines.html

@@ -18,19 +18,19 @@
 			<p>Here is the code that we will use:</p>
 			<code>
 var renderer = new THREE.WebGLRenderer();
-renderer.setSize(window.innerWidth, window.innerHeight);
-document.body.appendChild(renderer.domElement);
+renderer.setSize( window.innerWidth, window.innerHeight );
+document.body.appendChild( renderer.domElement );
 
-var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 500);
-camera.position.set(0, 0, 100);
-camera.lookAt(new THREE.Vector3(0, 0, 0));
+var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 500 );
+camera.position.set( 0, 0, 100 );
+camera.lookAt( new THREE.Vector3( 0, 0, 0 ) );
 
 var scene = new THREE.Scene();
 			</code>
 			<p>Next thing we will do is define a material. For lines we have to use [page:LineBasicMaterial] or [page:LineDashedMaterial].</p>
 			<code>
 //create a blue LineBasicMaterial
-var material = new THREE.LineBasicMaterial({ color: 0x0000ff });
+var material = new THREE.LineBasicMaterial( { color: 0x0000ff } );
 			</code>
 
 			<p>
@@ -40,22 +40,22 @@ var material = new THREE.LineBasicMaterial({ color: 0x0000ff });
 
 			<code>
 var geometry = new THREE.Geometry();
-geometry.vertices.push(new THREE.Vector3(-10, 0, 0));
-geometry.vertices.push(new THREE.Vector3(0, 10, 0));
-geometry.vertices.push(new THREE.Vector3(10, 0, 0));
+geometry.vertices.push(new THREE.Vector3( -10, 0, 0) );
+geometry.vertices.push(new THREE.Vector3( 0, 10, 0) );
+geometry.vertices.push(new THREE.Vector3( 10, 0, 0) );
 			</code>
 
 			<p>Note that lines are drawn between each consecutive pair of vertices, but not between the first and last (the line is not closed.)</p>
 
 			<p>Now that we have points for two lines and a material, we can put them together to form a line.</p>
 			<code>
-var line = new THREE.Line(geometry, material);
+var line = new THREE.Line( geometry, material );
 			</code>
 			<p>All that's left is to add it to the scene and call [page:WebGLRenderer.render render].</p>
 
 			<code>
-scene.add(line);
-renderer.render(scene, camera);
+scene.add( line );
+renderer.render( scene, camera );
 			</code>
 
 			<p>You should now be seeing an arrow pointing upwards, made from two blue lines.</p>

+ 1 - 0
editor/index.html

@@ -107,6 +107,7 @@
 		<script src="js/Sidebar.Project.js"></script>
 		<script src="js/Sidebar.Settings.js"></script>
 		<script src="js/Sidebar.Settings.Shortcuts.js"></script>
+		<script src="js/Sidebar.Settings.Viewport.js"></script>
 		<script src="js/Sidebar.Properties.js"></script>
 		<script src="js/Sidebar.Object.js"></script>
 		<script src="js/Sidebar.Geometry.js"></script>

+ 1 - 1
editor/js/Editor.js

@@ -6,7 +6,7 @@ var Editor = function () {
 
 	this.DEFAULT_CAMERA = new THREE.PerspectiveCamera( 50, 1, 0.01, 1000 );
 	this.DEFAULT_CAMERA.name = 'Camera';
-	this.DEFAULT_CAMERA.position.set( 20, 10, 20 );
+	this.DEFAULT_CAMERA.position.set( 0, 5, 10 );
 	this.DEFAULT_CAMERA.lookAt( new THREE.Vector3() );
 
 	var Signal = signals.Signal;

+ 41 - 0
editor/js/Sidebar.Settings.Viewport.js

@@ -0,0 +1,41 @@
+/**
+ * @author mrdoob / http://mrdoob.com/
+ */
+
+Sidebar.Settings.Viewport = function ( editor ) {
+
+	var signals = editor.signals;
+
+	var container = new UI.Div();
+	container.add( new UI.Break() );
+
+	container.add( new UI.Text( 'Grid' ).setWidth( '90px' ) );
+
+	var show = new UI.THREE.Boolean( true ).onChange( update );
+	container.add( show );
+
+	/*
+	var snapSize = new UI.Number( 25 ).setWidth( '40px' ).onChange( update );
+	container.add( snapSize );
+
+	var snap = new UI.THREE.Boolean( false, 'snap' ).onChange( update );
+	container.add( snap );
+
+	var local = new UI.THREE.Boolean( false, 'local' ).onChange( update );
+	container.add( local );
+	*/
+
+	function update() {
+
+		signals.showGridChanged.dispatch( show.getValue() );
+
+		/*
+		signals.snapChanged.dispatch( snap.getValue() === true ? snapSize.getValue() : null );
+		signals.spaceChanged.dispatch( local.getValue() === true ? "local" : "world" );
+		*/
+
+	}
+
+	return container;
+
+};

+ 2 - 0
editor/js/Sidebar.Settings.js

@@ -10,6 +10,7 @@ Sidebar.Settings = function ( editor ) {
 	var container = new UI.Panel();
 	container.setBorderTop( '0' );
 	container.setPaddingTop( '20px' );
+	container.setPaddingBottom( '20px' );
 
 	// class
 
@@ -43,6 +44,7 @@ Sidebar.Settings = function ( editor ) {
 	container.add( themeRow );
 
 	container.add( new Sidebar.Settings.Shortcuts( editor ) );
+	container.add( new Sidebar.Settings.Viewport( editor ) );
 
 	return container;
 

+ 0 - 23
editor/js/Toolbar.js

@@ -58,29 +58,6 @@ var Toolbar = function ( editor ) {
 
 	} );
 
-	// grid
-
-	var grid = new UI.Number( 25 ).setWidth( '40px' ).onChange( update );
-	buttons.add( new UI.Text( 'grid: ' ) );
-	buttons.add( grid );
-
-	var snap = new UI.THREE.Boolean( false, 'snap' ).onChange( update );
-	buttons.add( snap );
-
-	var local = new UI.THREE.Boolean( false, 'local' ).onChange( update );
-	buttons.add( local );
-
-	var showGrid = new UI.THREE.Boolean( true, 'show' ).onChange( update );
-	buttons.add( showGrid );
-
-	function update() {
-
-		signals.snapChanged.dispatch( snap.getValue() === true ? grid.getValue() : null );
-		signals.spaceChanged.dispatch( local.getValue() === true ? "local" : "world" );
-		signals.showGridChanged.dispatch( showGrid.getValue() );
-
-	}
-
 	return container;
 
 };

+ 3 - 3
editor/js/Viewport.Info.js

@@ -53,14 +53,14 @@ Viewport.Info = function ( editor ) {
 
 					} else if ( geometry instanceof THREE.BufferGeometry ) {
 
+						vertices += geometry.attributes.position.count;
+
 						if ( geometry.index !== null ) {
 
-							vertices += geometry.index.count * 3;
-							triangles += geometry.index.count;
+							triangles += geometry.index.count / 3;
 
 						} else {
 
-							vertices += geometry.attributes.position.count;
 							triangles += geometry.attributes.position.count / 3;
 
 						}

+ 13 - 22
editor/js/Viewport.js

@@ -24,9 +24,21 @@ var Viewport = function ( editor ) {
 
 	// helpers
 
-	var grid = new THREE.GridHelper( 60, 60 );
+	var grid = new THREE.GridHelper( 30, 30, 0x444444, 0x888888 );
 	sceneHelpers.add( grid );
 
+	var array = grid.geometry.attributes.color.array;
+
+	for ( var i = 0; i < array.length; i += 60 ) {
+
+		for ( var j = 0; j < 12; j ++ ) {
+
+			array[ i + j ] = 0.26;
+
+		}
+
+	}
+
 	//
 
 	var box = new THREE.Box3();
@@ -271,27 +283,6 @@ var Viewport = function ( editor ) {
 
 	} );
 
-	signals.themeChanged.add( function ( value ) {
-
-		switch ( value ) {
-
-			case 'css/light.css':
-				sceneHelpers.remove( grid );
-				grid = new THREE.GridHelper( 60, 60, 0x444444, 0x888888 );
-				sceneHelpers.add( grid );
-				break;
-			case 'css/dark.css':
-				sceneHelpers.remove( grid );
-				grid = new THREE.GridHelper( 60, 60, 0xbbbbbb, 0x888888 );
-				sceneHelpers.add( grid );
-				break;
-
-		}
-
-		render();
-
-	} );
-
 	signals.transformModeChanged.add( function ( mode ) {
 
 		transformControls.setMode( mode );

+ 0 - 4
editor/js/libs/tern-threejs/threejs.js

@@ -4821,10 +4821,6 @@
           "!type": "fn(camera, lights, fog, material, object)",
           "!doc": "Renders an immediate Object using a camera."
         },
-        "setFaceCulling": {
-          "!type": "fn(cullFace, frontFace)",
-          "!doc": "If cullFace is false, culling will be disabled."
-        },
         "setDepthTest": {
           "!type": "fn(depthTest: boolean)",
           "!doc": "This sets, based on depthTest, whether or not the depth data needs to be tested against the depth buffer."

+ 20 - 20
examples/js/GPUParticleSystem.js

@@ -15,7 +15,7 @@
  *
  */
 
-THREE.GPUParticleSystem = function( options ) {
+THREE.GPUParticleSystem = function ( options ) {
 
 	THREE.Object3D.apply( this, arguments );
 
@@ -158,13 +158,13 @@ THREE.GPUParticleSystem = function( options ) {
 
 	var i;
 
-	for ( i = 1e5; i > 0; i-- ) {
+	for ( i = 1e5; i > 0; i -- ) {
 
 		this.rand.push( Math.random() - 0.5 );
 
 	}
 
-	this.random = function() {
+	this.random = function () {
 
 		return ++ i >= this.rand.length ? this.rand[ i = 1 ] : this.rand[ i ];
 
@@ -205,7 +205,7 @@ THREE.GPUParticleSystem = function( options ) {
 	this.particleShaderMat.defaultAttributeValues.particlePositionsStartTime = [ 0, 0, 0, 0 ];
 	this.particleShaderMat.defaultAttributeValues.particleVelColSizeLife = [ 0, 0, 0, 0 ];
 
-	this.init = function() {
+	this.init = function () {
 
 		for ( var i = 0; i < this.PARTICLE_CONTAINERS; i ++ ) {
 
@@ -217,7 +217,7 @@ THREE.GPUParticleSystem = function( options ) {
 
 	};
 
-	this.spawnParticle = function( options ) {
+	this.spawnParticle = function ( options ) {
 
 		this.PARTICLE_CURSOR ++;
 
@@ -233,7 +233,7 @@ THREE.GPUParticleSystem = function( options ) {
 
 	};
 
-	this.update = function( time ) {
+	this.update = function ( time ) {
 
 		for ( var i = 0; i < this.PARTICLE_CONTAINERS; i ++ ) {
 
@@ -243,7 +243,7 @@ THREE.GPUParticleSystem = function( options ) {
 
 	};
 
-	this.dispose = function() {
+	this.dispose = function () {
 
 		this.particleShaderMat.dispose();
 		this.particleNoiseTex.dispose();
@@ -267,7 +267,7 @@ THREE.GPUParticleSystem.prototype.constructor = THREE.GPUParticleSystem;
 
 // Subclass for particle containers, allows for very large arrays to be spread out
 
-THREE.GPUParticleContainer = function( maxParticles, particleSystem ) {
+THREE.GPUParticleContainer = function ( maxParticles, particleSystem ) {
 
 	THREE.Object3D.apply( this, arguments );
 
@@ -301,7 +301,7 @@ THREE.GPUParticleContainer = function( maxParticles, particleSystem ) {
 	var velocity = new THREE.Vector3();
 	var color = new THREE.Color();
 
-	this.spawnParticle = function( options ) {
+	this.spawnParticle = function ( options ) {
 
 		var positionStartAttribute = this.particleShaderGeo.getAttribute( 'positionStart' );
 		var startTimeAttribute = this.particleShaderGeo.getAttribute( 'startTime' );
@@ -402,7 +402,7 @@ THREE.GPUParticleContainer = function( maxParticles, particleSystem ) {
 
 	};
 
-	this.init = function() {
+	this.init = function () {
 
 		this.particleSystem = new THREE.Points( this.particleShaderGeo, this.particleShaderMat );
 		this.particleSystem.frustumCulled = false;
@@ -410,7 +410,7 @@ THREE.GPUParticleContainer = function( maxParticles, particleSystem ) {
 
 	};
 
-	this.update = function( time ) {
+	this.update = function ( time ) {
 
 		this.time = time;
 		this.particleShaderMat.uniforms.uTime.value = time;
@@ -419,7 +419,7 @@ THREE.GPUParticleContainer = function( maxParticles, particleSystem ) {
 
 	};
 
-	this.geometryUpdate = function() {
+	this.geometryUpdate = function () {
 
 		if ( this.particleUpdate === true ) {
 
@@ -462,13 +462,13 @@ THREE.GPUParticleContainer = function( maxParticles, particleSystem ) {
 				lifeTimeAttribute.updateRange.offset = 0;
 
 				// Use -1 to update the entire buffer, see #11476
-				positionStartAttribute.updateRange.count = -1;
-				startTimeAttribute.updateRange.count = -1;
-				velocityAttribute.updateRange.count = -1;
-				turbulenceAttribute.updateRange.count = -1;
-				colorAttribute.updateRange.count = -1;
-				sizeAttribute.updateRange.count = -1;
-				lifeTimeAttribute.updateRange.count = -1;
+				positionStartAttribute.updateRange.count = - 1;
+				startTimeAttribute.updateRange.count = - 1;
+				velocityAttribute.updateRange.count = - 1;
+				turbulenceAttribute.updateRange.count = - 1;
+				colorAttribute.updateRange.count = - 1;
+				sizeAttribute.updateRange.count = - 1;
+				lifeTimeAttribute.updateRange.count = - 1;
 
 			}
 
@@ -487,7 +487,7 @@ THREE.GPUParticleContainer = function( maxParticles, particleSystem ) {
 
 	};
 
-	this.dispose = function() {
+	this.dispose = function () {
 
 		this.particleShaderGeo.dispose();
 

+ 5 - 0
examples/js/exporters/GLTFExporter.js

@@ -792,6 +792,7 @@ THREE.GLTFExporter.prototype = {
 			// Morph targets
 			if ( mesh.morphTargetInfluences !== undefined && mesh.morphTargetInfluences.length > 0 ) {
 
+				var weights = [];
 				gltfMesh.primitives[ 0 ].targets = [];
 
 				for ( var i = 0; i < mesh.morphTargetInfluences.length; ++ i ) {
@@ -808,8 +809,12 @@ THREE.GLTFExporter.prototype = {
 
 					gltfMesh.primitives[ 0 ].targets.push( target );
 
+					weights.push( mesh.morphTargetInfluences[ i ] );
+
 				}
 
+				gltfMesh.weights = weights;
+
 			}
 
 			outputJSON.meshes.push( gltfMesh );

+ 22 - 22
examples/js/geometries/ConvexGeometry.js

@@ -24,16 +24,16 @@
 
 	function ConvexBufferGeometry( points ) {
 
-	  THREE.BufferGeometry.call( this );
+		THREE.BufferGeometry.call( this );
 
 		this.type = 'ConvexBufferGeometry';
 
-	  // buffers
+		// buffers
 
-	  var vertices = [];
-	  var normals = [];
+		var vertices = [];
+		var normals = [];
 
-	  // execute QuickHull
+		// execute QuickHull
 
 		if ( THREE.QuickHull === undefined ) {
 
@@ -41,36 +41,36 @@
 
 		}
 
-	  var quickHull = new THREE.QuickHull().setFromPoints( points );
+		var quickHull = new THREE.QuickHull().setFromPoints( points );
 
-	  // generate vertices and normals
+		// generate vertices and normals
 
-	  var faces = quickHull.faces;
+		var faces = quickHull.faces;
 
-	  for ( var i = 0; i < faces.length; i ++ ) {
+		for ( var i = 0; i < faces.length; i ++ ) {
 
-	    var face = faces[ i ];
-	    var edge = face.edge;
+			var face = faces[ i ];
+			var edge = face.edge;
 
-	    // we move along a doubly-connected edge list to access all face points (see HalfEdge docs)
+			// we move along a doubly-connected edge list to access all face points (see HalfEdge docs)
 
-	    do {
+			do {
 
-	      var point = edge.head().point;
+				var point = edge.head().point;
 
-	      vertices.push( point.x, point.y, point.z );
-	      normals.push( face.normal.x, face.normal.y, face.normal.z );
+				vertices.push( point.x, point.y, point.z );
+				normals.push( face.normal.x, face.normal.y, face.normal.z );
 
-	      edge = edge.next;
+				edge = edge.next;
 
-	    } while ( edge !== face.edge );
+			} while ( edge !== face.edge );
 
-	  }
+		}
 
-	  // build geometry
+		// build geometry
 
-	  this.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
-	  this.addAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );
+		this.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
+		this.addAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );
 
 	}
 

+ 196 - 196
examples/js/geometries/DecalGeometry.js

@@ -20,317 +20,317 @@
 
 	function DecalGeometry( mesh, position, orientation, size ) {
 
-  	THREE.BufferGeometry.call( this );
+		THREE.BufferGeometry.call( this );
 
-  	this.type = 'DecalGeometry';
+		this.type = 'DecalGeometry';
 
-  	// buffers
+		// buffers
 
-  	var vertices = [];
-  	var normals = [];
-  	var uvs = [];
+		var vertices = [];
+		var normals = [];
+		var uvs = [];
 
-  	// helpers
+		// helpers
 
-  	var plane = new THREE.Vector3();
+		var plane = new THREE.Vector3();
 
-  	// this matrix represents the transformation of the decal projector
+		// this matrix represents the transformation of the decal projector
 
-  	var projectorMatrix = new THREE.Matrix4();
-  	projectorMatrix.makeRotationFromEuler( orientation );
-  	projectorMatrix.setPosition( position );
+		var projectorMatrix = new THREE.Matrix4();
+		projectorMatrix.makeRotationFromEuler( orientation );
+		projectorMatrix.setPosition( position );
 
-  	var projectorMatrixInverse = new THREE.Matrix4().getInverse( projectorMatrix );
+		var projectorMatrixInverse = new THREE.Matrix4().getInverse( projectorMatrix );
 
-  	// generate buffers
+		// generate buffers
 
-  	generate();
+		generate();
 
-  	// build geometry
+		// build geometry
 
-  	this.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
-  	this.addAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );
-  	this.addAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) );
+		this.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
+		this.addAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );
+		this.addAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) );
 
-  	function generate() {
+		function generate() {
 
-  		var i;
-  		var geometry = new THREE.BufferGeometry();
-  		var decalVertices = [];
+			var i;
+			var geometry = new THREE.BufferGeometry();
+			var decalVertices = [];
 
-  		var vertex = new THREE.Vector3();
-  		var normal = new THREE.Vector3();
+			var vertex = new THREE.Vector3();
+			var normal = new THREE.Vector3();
 
-  		// handle different geometry types
+			// handle different geometry types
 
-  		if ( mesh.geometry.isGeometry ) {
+			if ( mesh.geometry.isGeometry ) {
 
-  			geometry.fromGeometry( mesh.geometry );
+				geometry.fromGeometry( mesh.geometry );
 
-  		} else {
+			} else {
 
-  			geometry.copy( mesh.geometry );
+				geometry.copy( mesh.geometry );
 
-  		}
+			}
 
-  		var positionAttribute = geometry.attributes.position;
-  		var normalAttribute = geometry.attributes.normal;
+			var positionAttribute = geometry.attributes.position;
+			var normalAttribute = geometry.attributes.normal;
 
-  		// first, create an array of 'DecalVertex' objects
-  		// three consecutive 'DecalVertex' objects represent a single face
-  		//
-  		// this data structure will be later used to perform the clipping
+			// first, create an array of 'DecalVertex' objects
+			// three consecutive 'DecalVertex' objects represent a single face
+			//
+			// this data structure will be later used to perform the clipping
 
-  		if ( geometry.index !== null ) {
+			if ( geometry.index !== null ) {
 
-  			// indexed BufferGeometry
+				// indexed BufferGeometry
 
-  			var index = geometry.index;
+				var index = geometry.index;
 
-  			for ( i = 0; i < index.count; i ++ ) {
+				for ( i = 0; i < index.count; i ++ ) {
 
-  				vertex.fromBufferAttribute( positionAttribute, index.getX( i ) );
-  				normal.fromBufferAttribute( normalAttribute, index.getX( i ) );
+					vertex.fromBufferAttribute( positionAttribute, index.getX( i ) );
+					normal.fromBufferAttribute( normalAttribute, index.getX( i ) );
 
-  				pushDecalVertex( decalVertices, vertex, normal );
+					pushDecalVertex( decalVertices, vertex, normal );
 
-  			}
+				}
 
-  		} else {
+			} else {
 
-  			// non-indexed BufferGeometry
+				// non-indexed BufferGeometry
 
-  			for ( i = 0; i < positionAttribute.count; i ++ ) {
+				for ( i = 0; i < positionAttribute.count; i ++ ) {
 
-  				vertex.fromBufferAttribute( positionAttribute, i );
-  				normal.fromBufferAttribute( normalAttribute, i );
+					vertex.fromBufferAttribute( positionAttribute, i );
+					normal.fromBufferAttribute( normalAttribute, i );
 
-  				pushDecalVertex( decalVertices, vertex, normal );
+					pushDecalVertex( decalVertices, vertex, normal );
 
-  			}
+				}
 
-  		}
+			}
 
-  		// second, clip the geometry so that it doesn't extend out from the projector
+			// second, clip the geometry so that it doesn't extend out from the projector
 
-  		decalVertices = clipGeometry( decalVertices, plane.set( 1, 0, 0 ) );
-  		decalVertices = clipGeometry( decalVertices, plane.set( - 1, 0, 0 ) );
-  		decalVertices = clipGeometry( decalVertices, plane.set( 0, 1, 0 ) );
-  		decalVertices = clipGeometry( decalVertices, plane.set( 0, - 1, 0 ) );
-  		decalVertices = clipGeometry( decalVertices, plane.set( 0, 0, 1 ) );
-  		decalVertices = clipGeometry( decalVertices, plane.set( 0, 0, - 1 ) );
+			decalVertices = clipGeometry( decalVertices, plane.set( 1, 0, 0 ) );
+			decalVertices = clipGeometry( decalVertices, plane.set( - 1, 0, 0 ) );
+			decalVertices = clipGeometry( decalVertices, plane.set( 0, 1, 0 ) );
+			decalVertices = clipGeometry( decalVertices, plane.set( 0, - 1, 0 ) );
+			decalVertices = clipGeometry( decalVertices, plane.set( 0, 0, 1 ) );
+			decalVertices = clipGeometry( decalVertices, plane.set( 0, 0, - 1 ) );
 
-  		// third, generate final vertices, normals and uvs
+			// third, generate final vertices, normals and uvs
 
-  		for ( i = 0; i < decalVertices.length; i ++ ) {
+			for ( i = 0; i < decalVertices.length; i ++ ) {
 
-  			var decalVertex = decalVertices[ i ];
+				var decalVertex = decalVertices[ i ];
 
-  			// create texture coordinates (we are still in projector space)
+				// create texture coordinates (we are still in projector space)
 
-  			uvs.push(
-  				0.5 + ( decalVertex.position.x / size.x ),
-  				0.5 + ( decalVertex.position.y / size.y )
-  			);
+				uvs.push(
+					0.5 + ( decalVertex.position.x / size.x ),
+					0.5 + ( decalVertex.position.y / size.y )
+				);
 
-  			// transform the vertex back to world space
+				// transform the vertex back to world space
 
-  			decalVertex.position.applyMatrix4( projectorMatrix );
+				decalVertex.position.applyMatrix4( projectorMatrix );
 
-  			// now create vertex and normal buffer data
+				// now create vertex and normal buffer data
 
-  			vertices.push( decalVertex.position.x, decalVertex.position.y, decalVertex.position.z );
-  			normals.push( decalVertex.normal.x, decalVertex.normal.y, decalVertex.normal.z );
+				vertices.push( decalVertex.position.x, decalVertex.position.y, decalVertex.position.z );
+				normals.push( decalVertex.normal.x, decalVertex.normal.y, decalVertex.normal.z );
 
-  		}
+			}
 
-  	}
+		}
 
-  	function pushDecalVertex( decalVertices, vertex, normal ) {
+		function pushDecalVertex( decalVertices, vertex, normal ) {
 
-  		// transform the vertex to world space, then to projector space
+			// transform the vertex to world space, then to projector space
 
-  		vertex.applyMatrix4( mesh.matrix );
-  		vertex.applyMatrix4( projectorMatrixInverse );
+			vertex.applyMatrix4( mesh.matrix );
+			vertex.applyMatrix4( projectorMatrixInverse );
 
-  		decalVertices.push( new DecalVertex( vertex.clone(), normal.clone() ) );
+			decalVertices.push( new DecalVertex( vertex.clone(), normal.clone() ) );
 
-  	}
+		}
 
-  	function clipGeometry( inVertices, plane ) {
+		function clipGeometry( inVertices, plane ) {
 
-  		var outVertices = [];
+			var outVertices = [];
 
-  		var s = 0.5 * Math.abs( size.dot( plane ) );
+			var s = 0.5 * Math.abs( size.dot( plane ) );
 
-  		// a single iteration clips one face,
-  		// which consists of three consecutive 'DecalVertex' objects
+			// a single iteration clips one face,
+			// which consists of three consecutive 'DecalVertex' objects
 
-  		for ( var i = 0; i < inVertices.length; i += 3 ) {
+			for ( var i = 0; i < inVertices.length; i += 3 ) {
 
-  			var v1Out, v2Out, v3Out, total = 0;
-  			var nV1, nV2, nV3, nV4;
+				var v1Out, v2Out, v3Out, total = 0;
+				var nV1, nV2, nV3, nV4;
 
-  			var d1 = inVertices[ i + 0 ].position.dot( plane ) - s;
-  			var d2 = inVertices[ i + 1 ].position.dot( plane ) - s;
-  			var d3 = inVertices[ i + 2 ].position.dot( plane ) - s;
+				var d1 = inVertices[ i + 0 ].position.dot( plane ) - s;
+				var d2 = inVertices[ i + 1 ].position.dot( plane ) - s;
+				var d3 = inVertices[ i + 2 ].position.dot( plane ) - s;
 
-  			v1Out = d1 > 0;
-  			v2Out = d2 > 0;
-  			v3Out = d3 > 0;
+				v1Out = d1 > 0;
+				v2Out = d2 > 0;
+				v3Out = d3 > 0;
 
-  			// calculate, how many vertices of the face lie outside of the clipping plane
+				// calculate, how many vertices of the face lie outside of the clipping plane
 
-  			total = ( v1Out ? 1 : 0 ) + ( v2Out ? 1 : 0 ) + ( v3Out ? 1 : 0 );
+				total = ( v1Out ? 1 : 0 ) + ( v2Out ? 1 : 0 ) + ( v3Out ? 1 : 0 );
 
-  			switch ( total ) {
+				switch ( total ) {
 
-  				case 0: {
+					case 0: {
 
-  					// the entire face lies inside of the plane, no clipping needed
+						// the entire face lies inside of the plane, no clipping needed
 
-  					outVertices.push( inVertices[ i ] );
-  					outVertices.push( inVertices[ i + 1 ] );
-  					outVertices.push( inVertices[ i + 2 ] );
-  					break;
+						outVertices.push( inVertices[ i ] );
+						outVertices.push( inVertices[ i + 1 ] );
+						outVertices.push( inVertices[ i + 2 ] );
+						break;
 
-  				}
+					}
 
-  				case 1: {
+					case 1: {
 
-  					// one vertex lies outside of the plane, perform clipping
+						// one vertex lies outside of the plane, perform clipping
 
-  					if ( v1Out ) {
+						if ( v1Out ) {
 
-  						nV1 = inVertices[ i + 1 ];
-  						nV2 = inVertices[ i + 2 ];
-  						nV3 = clip( inVertices[ i ], nV1, plane, s );
-  						nV4 = clip( inVertices[ i ], nV2, plane, s );
+							nV1 = inVertices[ i + 1 ];
+							nV2 = inVertices[ i + 2 ];
+							nV3 = clip( inVertices[ i ], nV1, plane, s );
+							nV4 = clip( inVertices[ i ], nV2, plane, s );
 
-  					}
+						}
 
-  					if ( v2Out ) {
+						if ( v2Out ) {
 
-  						nV1 = inVertices[ i ];
-  						nV2 = inVertices[ i + 2 ];
-  						nV3 = clip( inVertices[ i + 1 ], nV1, plane, s );
-  						nV4 = clip( inVertices[ i + 1 ], nV2, plane, s );
+							nV1 = inVertices[ i ];
+							nV2 = inVertices[ i + 2 ];
+							nV3 = clip( inVertices[ i + 1 ], nV1, plane, s );
+							nV4 = clip( inVertices[ i + 1 ], nV2, plane, s );
 
-  						outVertices.push( nV3 );
-  						outVertices.push( nV2.clone() );
-  						outVertices.push( nV1.clone() );
+							outVertices.push( nV3 );
+							outVertices.push( nV2.clone() );
+							outVertices.push( nV1.clone() );
 
-  						outVertices.push( nV2.clone() );
-  						outVertices.push( nV3.clone() );
-  						outVertices.push( nV4 );
-  						break;
+							outVertices.push( nV2.clone() );
+							outVertices.push( nV3.clone() );
+							outVertices.push( nV4 );
+							break;
 
-  					}
+						}
 
-  					if ( v3Out ) {
+						if ( v3Out ) {
 
-  						nV1 = inVertices[ i ];
-  						nV2 = inVertices[ i + 1 ];
-  						nV3 = clip( inVertices[ i + 2 ], nV1, plane, s );
-  						nV4 = clip( inVertices[ i + 2 ], nV2, plane, s );
+							nV1 = inVertices[ i ];
+							nV2 = inVertices[ i + 1 ];
+							nV3 = clip( inVertices[ i + 2 ], nV1, plane, s );
+							nV4 = clip( inVertices[ i + 2 ], nV2, plane, s );
 
-  					}
+						}
 
-  					outVertices.push( nV1.clone() );
-  					outVertices.push( nV2.clone() );
-  					outVertices.push( nV3 );
+						outVertices.push( nV1.clone() );
+						outVertices.push( nV2.clone() );
+						outVertices.push( nV3 );
 
-  					outVertices.push( nV4 );
-  					outVertices.push( nV3.clone() );
-  					outVertices.push( nV2.clone() );
+						outVertices.push( nV4 );
+						outVertices.push( nV3.clone() );
+						outVertices.push( nV2.clone() );
 
-  					break;
+						break;
 
-  				}
+					}
 
-  				case 2: {
+					case 2: {
 
-  					// two vertices lies outside of the plane, perform clipping
+						// two vertices lies outside of the plane, perform clipping
 
-  					if ( ! v1Out ) {
+						if ( ! v1Out ) {
 
-  						nV1 = inVertices[ i ].clone();
-  						nV2 = clip( nV1, inVertices[ i + 1 ], plane, s );
-  						nV3 = clip( nV1, inVertices[ i + 2 ], plane, s );
-  						outVertices.push( nV1 );
-  						outVertices.push( nV2 );
-  						outVertices.push( nV3 );
+							nV1 = inVertices[ i ].clone();
+							nV2 = clip( nV1, inVertices[ i + 1 ], plane, s );
+							nV3 = clip( nV1, inVertices[ i + 2 ], plane, s );
+							outVertices.push( nV1 );
+							outVertices.push( nV2 );
+							outVertices.push( nV3 );
 
-  					}
+						}
 
-  					if ( ! v2Out ) {
+						if ( ! v2Out ) {
 
-  						nV1 = inVertices[ i + 1 ].clone();
-  						nV2 = clip( nV1, inVertices[ i + 2 ], plane, s );
-  						nV3 = clip( nV1, inVertices[ i ], plane, s );
-  						outVertices.push( nV1 );
-  						outVertices.push( nV2 );
-  						outVertices.push( nV3 );
+							nV1 = inVertices[ i + 1 ].clone();
+							nV2 = clip( nV1, inVertices[ i + 2 ], plane, s );
+							nV3 = clip( nV1, inVertices[ i ], plane, s );
+							outVertices.push( nV1 );
+							outVertices.push( nV2 );
+							outVertices.push( nV3 );
 
-  					}
+						}
 
-  					if ( ! v3Out ) {
+						if ( ! v3Out ) {
 
-  						nV1 = inVertices[ i + 2 ].clone();
-  						nV2 = clip( nV1, inVertices[ i ], plane, s );
-  						nV3 = clip( nV1, inVertices[ i + 1 ], plane, s );
-  						outVertices.push( nV1 );
-  						outVertices.push( nV2 );
-  						outVertices.push( nV3 );
+							nV1 = inVertices[ i + 2 ].clone();
+							nV2 = clip( nV1, inVertices[ i ], plane, s );
+							nV3 = clip( nV1, inVertices[ i + 1 ], plane, s );
+							outVertices.push( nV1 );
+							outVertices.push( nV2 );
+							outVertices.push( nV3 );
 
-  					}
+						}
 
-  					break;
+						break;
 
-  				}
+					}
 
-  				case 3: {
+					case 3: {
 
-  					// the entire face lies outside of the plane, so let's discard the corresponding vertices
+						// the entire face lies outside of the plane, so let's discard the corresponding vertices
 
-  					break;
+						break;
 
-  				}
+					}
 
-  			}
+				}
 
-  		}
+			}
 
-  		return outVertices;
+			return outVertices;
 
-  	}
+		}
 
-  	function clip( v0, v1, p, s ) {
+		function clip( v0, v1, p, s ) {
 
-  		var d0 = v0.position.dot( p ) - s;
-  		var d1 = v1.position.dot( p ) - s;
+			var d0 = v0.position.dot( p ) - s;
+			var d1 = v1.position.dot( p ) - s;
 
-  		var s0 = d0 / ( d0 - d1 );
+			var s0 = d0 / ( d0 - d1 );
 
-  		var v = new DecalVertex(
-  			new THREE.Vector3(
-  				v0.position.x + s0 * ( v1.position.x - v0.position.x ),
-  				v0.position.y + s0 * ( v1.position.y - v0.position.y ),
-  				v0.position.z + s0 * ( v1.position.z - v0.position.z )
-  			),
-  			new THREE.Vector3(
-  				v0.normal.x + s0 * ( v1.normal.x - v0.normal.x ),
-  				v0.normal.y + s0 * ( v1.normal.y - v0.normal.y ),
-  				v0.normal.z + s0 * ( v1.normal.z - v0.normal.z )
-  			)
-  		);
+			var v = new DecalVertex(
+				new THREE.Vector3(
+					v0.position.x + s0 * ( v1.position.x - v0.position.x ),
+					v0.position.y + s0 * ( v1.position.y - v0.position.y ),
+					v0.position.z + s0 * ( v1.position.z - v0.position.z )
+				),
+				new THREE.Vector3(
+					v0.normal.x + s0 * ( v1.normal.x - v0.normal.x ),
+					v0.normal.y + s0 * ( v1.normal.y - v0.normal.y ),
+					v0.normal.z + s0 * ( v1.normal.z - v0.normal.z )
+				)
+			);
 
-  		// need to clip more values (texture coordinates)? do it this way:
-  		// intersectpoint.value = a.value + s * ( b.value - a.value );
+			// need to clip more values (texture coordinates)? do it this way:
+			// intersectpoint.value = a.value + s * ( b.value - a.value );
 
-  		return v;
+			return v;
 
-  	}
+		}
 
 	}
 

+ 1 - 1
examples/js/loaders/FBXLoader.js

@@ -1476,7 +1476,7 @@
 
 		} );
 
-		bindSkeleton( FBXTree, skeletons, geometryMap, modelMap, connections, sceneGraph );
+		bindSkeleton( FBXTree, skeletons, geometryMap, modelMap, connections );
 
 		addAnimations( FBXTree, connections, sceneGraph );
 

+ 2 - 116
examples/js/loaders/GLTFLoader.js

@@ -121,12 +121,6 @@ THREE.GLTFLoader = ( function () {
 
 				}
 
-				if ( json.extensionsUsed.indexOf( EXTENSIONS.KHR_MATERIALS_COMMON ) >= 0 ) {
-
-					extensions[ EXTENSIONS.KHR_MATERIALS_COMMON ] = new GLTFMaterialsCommonExtension( json );
-
-				}
-
 				if ( json.extensionsUsed.indexOf( EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ) >= 0 ) {
 
 					extensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ] = new GLTFMaterialsPbrSpecularGlossinessExtension();
@@ -208,7 +202,6 @@ THREE.GLTFLoader = ( function () {
 	var EXTENSIONS = {
 		KHR_BINARY_GLTF: 'KHR_binary_glTF',
 		KHR_LIGHTS: 'KHR_lights',
-		KHR_MATERIALS_COMMON: 'KHR_materials_common',
 		KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: 'KHR_materials_pbrSpecularGlossiness'
 	};
 
@@ -296,107 +289,6 @@ THREE.GLTFLoader = ( function () {
 
 	}
 
-	/**
-	 * Common Materials Extension
-	 *
-	 * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/Khronos/KHR_materials_common
-	 */
-	function GLTFMaterialsCommonExtension( json ) {
-
-		this.name = EXTENSIONS.KHR_MATERIALS_COMMON;
-
-	}
-
-	GLTFMaterialsCommonExtension.prototype.getMaterialType = function ( material ) {
-
-		var khrMaterial = material.extensions[ this.name ];
-
-		switch ( khrMaterial.type ) {
-
-			case 'commonBlinn' :
-			case 'commonPhong' :
-				return THREE.MeshPhongMaterial;
-
-			case 'commonLambert' :
-				return THREE.MeshLambertMaterial;
-
-			case 'commonConstant' :
-			default :
-				return THREE.MeshBasicMaterial;
-
-		}
-
-	};
-
-	GLTFMaterialsCommonExtension.prototype.extendParams = function ( materialParams, material, parser ) {
-
-		var khrMaterial = material.extensions[ this.name ];
-
-		var pending = [];
-
-		var keys = [];
-
-		// TODO: Currently ignored: 'ambientFactor', 'ambientTexture'
-		switch ( khrMaterial.type ) {
-
-			case 'commonBlinn' :
-			case 'commonPhong' :
-				keys.push( 'diffuseFactor', 'diffuseTexture', 'specularFactor', 'specularTexture', 'shininessFactor' );
-				break;
-
-			case 'commonLambert' :
-				keys.push( 'diffuseFactor', 'diffuseTexture' );
-				break;
-
-			case 'commonConstant' :
-			default :
-				break;
-
-		}
-
-		var materialValues = {};
-
-		keys.forEach( function ( v ) {
-
-			if ( khrMaterial[ v ] !== undefined ) materialValues[ v ] = khrMaterial[ v ];
-
-		} );
-
-		if ( materialValues.diffuseFactor !== undefined ) {
-
-			materialParams.color = new THREE.Color().fromArray( materialValues.diffuseFactor );
-			materialParams.opacity = materialValues.diffuseFactor[ 3 ];
-
-		}
-
-		if ( materialValues.diffuseTexture !== undefined ) {
-
-			pending.push( parser.assignTexture( materialParams, 'map', materialValues.diffuseTexture.index ) );
-
-		}
-
-		if ( materialValues.specularFactor !== undefined ) {
-
-			materialParams.specular = new THREE.Color().fromArray( materialValues.specularFactor );
-
-		}
-
-		if ( materialValues.specularTexture !== undefined ) {
-
-			pending.push( parser.assignTexture( materialParams, 'specularMap', materialValues.specularTexture.index ) );
-
-		}
-
-		if ( materialValues.shininessFactor !== undefined ) {
-
-			materialParams.shininess = materialValues.shininessFactor;
-
-		}
-
-		return Promise.all( pending );
-
-	};
-
 	/* BINARY EXTENSION */
 
 	var BINARY_EXTENSION_BUFFER_NAME = 'binary_glTF';
@@ -468,7 +360,7 @@ THREE.GLTFLoader = ( function () {
 	/**
 	 * Specular-Glossiness Extension
 	 *
-	 * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/Khronos/KHR_materials_pbrSpecularGlossiness
+	 * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness
 	 */
 	function GLTFMaterialsPbrSpecularGlossinessExtension() {
 
@@ -1811,13 +1703,7 @@ THREE.GLTFLoader = ( function () {
 
 		var pending = [];
 
-		if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_COMMON ] ) {
-
-			var khcExtension = extensions[ EXTENSIONS.KHR_MATERIALS_COMMON ];
-			materialType = khcExtension.getMaterialType( materialDef );
-			pending.push( khcExtension.extendParams( materialParams, materialDef, parser ) );
-
-		} else if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ] ) {
+		if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ] ) {
 
 			var sgExtension = extensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ];
 			materialType = sgExtension.getMaterialType( materialDef );

+ 3 - 3
examples/js/postprocessing/EffectComposer.js

@@ -50,7 +50,7 @@ THREE.EffectComposer = function ( renderer, renderTarget ) {
 
 Object.assign( THREE.EffectComposer.prototype, {
 
-	swapBuffers: function() {
+	swapBuffers: function () {
 
 		var tmp = this.readBuffer;
 		this.readBuffer = this.writeBuffer;
@@ -151,7 +151,7 @@ Object.assign( THREE.EffectComposer.prototype, {
 
 		for ( var i = 0; i < this.passes.length; i ++ ) {
 
-			this.passes[i].setSize( width, height );
+			this.passes[ i ].setSize( width, height );
 
 		}
 
@@ -178,7 +178,7 @@ THREE.Pass = function () {
 
 Object.assign( THREE.Pass.prototype, {
 
-	setSize: function( width, height ) {},
+	setSize: function ( width, height ) {},
 
 	render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) {
 

+ 6 - 0
examples/js/vr/WebVR.js

@@ -93,6 +93,12 @@ var WEBVR = {
 
 			}, false );
 
+			window.addEventListener( 'vrdisplayactivate', function ( event ) {
+
+				event.display.requestPresent( [ { source: renderer.domElement } ] );
+
+			}, false );
+
 			navigator.getVRDisplays()
 				.then( function ( displays ) {
 

+ 1 - 1
examples/misc_animation_authoring.html

@@ -65,7 +65,7 @@
 
 				var texture = new THREE.TextureLoader().load( 'textures/crate.gif', render );
 				texture.mapping = THREE.UVMapping;
-				texture.anisotropy = renderer.getMaxAnisotropy();
+				texture.anisotropy = renderer.capabilities.getMaxAnisotropy();
 
 				var geometry = new THREE.BoxGeometry( 200, 200, 200 );
 				var material = new THREE.MeshLambertMaterial( { map: texture } );

+ 1 - 1
examples/misc_controls_transform.html

@@ -62,7 +62,7 @@
 
 				var texture = new THREE.TextureLoader().load( 'textures/crate.gif', render );
 				texture.mapping = THREE.UVMapping;
-				texture.anisotropy = renderer.getMaxAnisotropy();
+				texture.anisotropy = renderer.capabilities.getMaxAnisotropy();
 
 				var geometry = new THREE.BoxGeometry( 200, 200, 200 );
 				var material = new THREE.MeshLambertMaterial( { map: texture } );

+ 1 - 1
examples/misc_fps.html

@@ -276,7 +276,7 @@
 			scene.add( makePlatform(
 				'models/platform/platform.json',
 				'models/platform/platform.jpg',
-				renderer.getMaxAnisotropy()
+				renderer.capabilities.getMaxAnisotropy()
 			));
 
 

+ 0 - 2801
examples/models/gltf/CesiumMan/glTF-MaterialsCommon/CesiumMan.gltf

@@ -1,2801 +0,0 @@
-{
-    "asset": {
-        "generator": "COLLADA2GLTF",
-        "version": "2.0"
-    },
-    "scene": 0,
-    "scenes": [
-        {
-            "nodes": [
-                0
-            ]
-        }
-    ],
-    "nodes": [
-        {
-            "children": [
-                21,
-                1
-            ],
-            "matrix": [
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                -1.0,
-                0.0,
-                0.0,
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                1.0
-            ]
-        },
-        {
-            "mesh": 0,
-            "skin": 0
-        },
-        {
-            "children": [
-                11,
-                7,
-                3
-            ],
-            "translation": [
-                -3.352759847530251e-8,
-                0.00499989278614521,
-                0.6789997816085815
-            ],
-            "rotation": [
-                -0.02679471485316753,
-                -0.026732556521892549,
-                -0.7065614461898804,
-                -0.706638753414154
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999998211860656,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                4
-            ],
-            "translation": [
-                -0.06804201006889343,
-                -0.02857022918760777,
-                -0.06294959783554077
-            ],
-            "rotation": [
-                -0.06642699986696243,
-                -0.6115013957023621,
-                0.7850273251533508,
-                0.073387511074543
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.000000238418579,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                5
-            ],
-            "translation": [
-                0.0,
-                0.2661114931106568,
-                0.0
-            ],
-            "rotation": [
-                0.2162912338972092,
-                0.12430649250745774,
-                0.0015752052422612906,
-                -0.9683818817138672
-            ],
-            "scale": [
-                1.0,
-                0.9999998807907105,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                6
-            ],
-            "translation": [
-                0.0,
-                0.2758249044418335,
-                -1.1175900205273593e-8
-            ],
-            "rotation": [
-                0.8472740650177002,
-                -0.029564039781689645,
-                -0.020868001505732538,
-                -0.5299217700958252
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999998807907105,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                -0.001458480954170227,
-                -0.06619883328676224,
-                0.027856720611453058
-            ],
-            "rotation": [
-                -0.03726436197757721,
-                -0.31931325793266299,
-                0.9460535645484924,
-                -0.040414959192276
-            ],
-            "scale": [
-                1.0,
-                1.0000003576278689,
-                1.0000005960464478
-            ]
-        },
-        {
-            "children": [
-                8
-            ],
-            "translation": [
-                0.06803668290376663,
-                -0.028518669307231904,
-                -0.06296277046203613
-            ],
-            "rotation": [
-                0.2475697100162506,
-                -0.5775680541992188,
-                0.7479144334793091,
-                -0.2138892114162445
-            ],
-            "scale": [
-                1.0,
-                1.000000238418579,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                9
-            ],
-            "translation": [
-                3.725289854372704e-9,
-                0.2661128044128418,
-                1.4901200273698124e-8
-            ],
-            "rotation": [
-                0.20902779698371888,
-                -0.32988959550857546,
-                -0.05559924244880676,
-                -0.9189064502716065
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                10
-            ],
-            "translation": [
-                -7.450579708745408e-9,
-                0.2758241891860962,
-                5.5879398885849708e-9
-            ],
-            "rotation": [
-                0.8477396965026856,
-                -0.004254077095538378,
-                -0.009491981938481333,
-                -0.5303107500076294
-            ],
-            "scale": [
-                0.9999998807907105,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "translation": [
-                -0.002346522873267532,
-                -0.06617332994937897,
-                0.027856789529323576
-            ],
-            "rotation": [
-                0.026573536917567254,
-                -0.3201442956924439,
-                0.9445450901985169,
-                0.06808964908123017
-            ],
-            "scale": [
-                1.0,
-                1.000000238418579,
-                1.000000238418579
-            ]
-        },
-        {
-            "children": [
-                12
-            ],
-            "translation": [
-                -1.024449947095718e-8,
-                1.4901200273698124e-8,
-                0.14541690051555634
-            ],
-            "rotation": [
-                -0.6572523713111877,
-                -0.00017969288455788046,
-                -0.00010428009409224616,
-                -0.7536706328392029
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                19,
-                16,
-                13
-            ],
-            "translation": [
-                4.6566100975198307e-10,
-                0.250516802072525,
-                3.725289854372704e-9
-            ],
-            "rotation": [
-                0.6226037740707398,
-                0.00001678345142863691,
-                -0.0000031824047255213374,
-                -0.7825372219085693
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                14
-            ],
-            "translation": [
-                -0.09098775684833528,
-                0.00006259980000322685,
-                -0.00006532669794978574
-            ],
-            "rotation": [
-                0.2964428961277008,
-                0.031510334461927417,
-                -0.6522551774978638,
-                -0.6969160437583923
-            ],
-            "scale": [
-                1.0000001192092896,
-                0.9999999403953552,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                15
-            ],
-            "translation": [
-                0.0,
-                0.24200820922851566,
-                -5.96045985901128e-8
-            ],
-            "rotation": [
-                -0.1887933611869812,
-                0.9157071709632874,
-                -0.16780903935432438,
-                -0.3125341236591339
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999999403953552,
-                0.9999998807907105
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                0.18779200315475465,
-                0.0
-            ],
-            "rotation": [
-                -0.058613914996385577,
-                0.2637767195701599,
-                0.05226854607462883,
-                -0.9613814353942872
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                17
-            ],
-            "translation": [
-                0.0910135880112648,
-                0.000014185899999574758,
-                -0.000058054902183357629
-            ],
-            "rotation": [
-                0.6797328591346741,
-                0.689685583114624,
-                -0.2269716113805771,
-                -0.10383165627717972
-            ],
-            "scale": [
-                1.0000001192092896,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                18
-            ],
-            "translation": [
-                1.1641500263781524e-10,
-                0.2420089989900589,
-                0.0
-            ],
-            "rotation": [
-                -0.013960935175418854,
-                -0.12937255203723908,
-                -0.2522056996822357,
-                -0.9588848352432252
-            ],
-            "scale": [
-                1.0,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                1.4901200273698124e-8,
-                0.18779149651527408,
-                5.96045985901128e-8
-            ],
-            "rotation": [
-                0.006119169760495424,
-                -0.042325541377067569,
-                -0.07877591997385025,
-                -0.9959746599197388
-            ],
-            "scale": [
-                0.9999998807907105,
-                1.000000238418579,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                20
-            ],
-            "translation": [
-                -8.847560017954948e-9,
-                5.96045985901128e-8,
-                0.06483662128448487
-            ],
-            "rotation": [
-                -0.6606296300888062,
-                0.00008344435627805069,
-                0.0000710925814928487,
-                -0.750711977481842
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                0.0520397387444973,
-                0.0
-            ],
-            "rotation": [
-                0.000002552607384131989,
-                0.9996904730796814,
-                -0.02487966977059841,
-                -4.329927776325349e-7
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                2
-            ]
-        }
-    ],
-    "meshes": [
-        {
-            "primitives": [
-                {
-                    "attributes": {
-                        "JOINTS_0": 1,
-                        "NORMAL": 2,
-                        "POSITION": 3,
-                        "TEXCOORD_0": 4,
-                        "WEIGHTS_0": 5
-                    },
-                    "indices": 0,
-                    "mode": 4,
-                    "material": 0
-                }
-            ],
-            "name": "Cesium_Man"
-        }
-    ],
-    "animations": [
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 2,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 2,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 2,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 7
-                },
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 8
-                },
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 9
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 11,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 11,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 11,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 11
-                },
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 12
-                },
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 13
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 12,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 12,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 12,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 15
-                },
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 16
-                },
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 17
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 19,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 19,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 19,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 19
-                },
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 20
-                },
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 21
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 20,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 20,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 20,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 23
-                },
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 24
-                },
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 25
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 16,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 16,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 16,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 27
-                },
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 28
-                },
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 29
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 17,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 17,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 17,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 31
-                },
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 32
-                },
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 33
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 18,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 18,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 18,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 35
-                },
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 36
-                },
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 37
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 13,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 13,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 13,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 39
-                },
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 40
-                },
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 41
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 14,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 14,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 14,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 43
-                },
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 44
-                },
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 45
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 15,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 15,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 15,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 47
-                },
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 48
-                },
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 49
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 7,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 7,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 7,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 51
-                },
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 52
-                },
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 53
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 8,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 8,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 8,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 55
-                },
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 56
-                },
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 57
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 9,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 9,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 9,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 59
-                },
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 60
-                },
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 61
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 10,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 10,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 10,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 63
-                },
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 64
-                },
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 65
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 3,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 3,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 3,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 67
-                },
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 68
-                },
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 69
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 4,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 4,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 4,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 71
-                },
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 72
-                },
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 73
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 5,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 5,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 5,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 75
-                },
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 76
-                },
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 77
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 6,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 6,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 6,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 79
-                },
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 80
-                },
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 81
-                }
-            ]
-        }
-    ],
-    "skins": [
-        {
-            "inverseBindMatrices": 82,
-            "skeleton": 2,
-            "joints": [
-                2,
-                11,
-                12,
-                19,
-                20,
-                16,
-                13,
-                17,
-                14,
-                18,
-                15,
-                7,
-                3,
-                8,
-                4,
-                9,
-                5,
-                10,
-                6
-            ],
-            "name": "Armature"
-        }
-    ],
-    "accessors": [
-        {
-            "bufferView": 0,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 14016,
-            "max": [
-                3272
-            ],
-            "min": [
-                0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 3273,
-            "max": [
-                18,
-                18,
-                18,
-                18
-            ],
-            "min": [
-                0,
-                0,
-                0,
-                0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3273,
-            "max": [
-                1.0,
-                0.9999808073043824,
-                0.9944446086883544
-            ],
-            "min": [
-                -1.0,
-                -0.9999808073043824,
-                -1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 39276,
-            "componentType": 5126,
-            "count": 3273,
-            "max": [
-                0.1809539943933487,
-                0.569136917591095,
-                1.5065499544143677
-            ],
-            "min": [
-                -0.13100001215934754,
-                -0.5691370964050293,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 26184,
-            "componentType": 5126,
-            "count": 3273,
-            "max": [
-                0.990805983543396,
-                0.9880298972129822
-            ],
-            "min": [
-                0.014079390093684197,
-                0.008445978164672852
-            ],
-            "type": "VEC2"
-        },
-        {
-            "bufferView": 3,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3273,
-            "max": [
-                1.0,
-                0.989919900894165,
-                0.951076328754425,
-                0.8741077184677124
-            ],
-            "min": [
-                0.010080150328576565,
-                0.0,
-                0.0,
-                0.0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.386510011831433e-8,
-                -0.02000010944902897,
-                0.7110069990158081
-            ],
-            "min": [
-                -7.101329746461715e-9,
-                -0.030000120401382448,
-                0.6399999856948853
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.02314124070107937,
-                -0.006974140647798777,
-                -0.7065909504890442,
-                -0.7031946778297424
-            ],
-            "min": [
-                -0.05146743357181549,
-                -0.034400247037410739,
-                -0.7094300389289856,
-                -0.7066542506217957
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 588,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000003576278689,
-                1.0000001192092896
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999998807907105,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 196,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 1176,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0009999829344451428,
-                3.725289943190546e-8,
-                0.1454170048236847
-            ],
-            "min": [
-                0.0009999759495258332,
-                -4.470349779239769e-8,
-                0.14541690051555634
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 784,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.7105135917663574,
-                0.008397356607019902,
-                0.000531485362444073,
-                -0.6789330840110779
-            ],
-            "min": [
-                -0.7337970733642578,
-                -0.011321297846734524,
-                -0.02596380189061165,
-                -0.703567624092102
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 1764,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000003576278689,
-                1.0000004768371585,
-                0.999999701976776
-            ],
-            "min": [
-                1.0,
-                1.0000001192092896,
-                0.9999992847442628
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 392,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 2352,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.25051671266555788,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.25051671266555788,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 1568,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.6358352899551392,
-                0.06165437772870064,
-                -0.00338419945910573,
-                -0.7642753720283508
-            ],
-            "min": [
-                0.6224426627159119,
-                -0.1380288153886795,
-                -0.06534028053283692,
-                -0.782635509967804
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 2940,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000007152557374,
-                0.999999701976776
-            ],
-            "min": [
-                0.9999998211860656,
-                1.0000003576278689,
-                0.9999992847442628
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 588,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 3528,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.1420399676230774e-8,
-                8.940700269022274e-8,
-                0.064838707447052
-            ],
-            "min": [
-                -1.5832499755674694e-8,
-                2.98022992950564e-8,
-                0.06483834981918335
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 2352,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.6325308680534363,
-                0.024829493835568429,
-                0.04200226813554764,
-                -0.7498575448989868
-            ],
-            "min": [
-                -0.6592774987220764,
-                -0.03641732409596443,
-                -0.03000717982649803,
-                -0.7735550999641419
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 4116,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.000000238418579,
-                0.9999998807907105,
-                1.0
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999995231628418,
-                0.999999701976776
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 784,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 4704,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                7.450579708745408e-9,
-                0.0520397387444973,
-                0.0
-            ],
-            "min": [
-                7.450579708745408e-9,
-                0.0520397387444973,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 3136,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.04680429771542549,
-                0.9995073676109314,
-                -0.018450811505317689,
-                0.002033286727964878
-            ],
-            "min": [
-                -0.09362706542015076,
-                0.995067298412323,
-                -0.09058911353349686,
-                -0.0025854958221316339
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 5292,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.000000238418579,
-                1.0000001192092896,
-                1.0000004768371585
-            ],
-            "min": [
-                0.999999701976776,
-                0.9999998211860656,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 980,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 5880,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.08800014853477478,
-                0.000014096500308369288,
-                -0.00005573029920924455
-            ],
-            "min": [
-                0.08799994736909867,
-                0.000013977300113765525,
-                -0.00005596880146185868
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 3920,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.7787204384803772,
-                0.6963526606559753,
-                -0.2913321256637573,
-                -0.12775331735610966
-            ],
-            "min": [
-                0.41440603137016299,
-                0.2682091891765595,
-                -0.6041955351829529,
-                -0.508333683013916
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 6468,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000005960464478,
-                1.0000001192092896,
-                1.0000004768371585
-            ],
-            "min": [
-                1.0,
-                0.9999995827674866,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1176,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 7056,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.24200910329818729,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.24200910329818729,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 4704,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.005276965908706188,
-                -0.10532382130622864,
-                -0.0563904233276844,
-                -0.9007523059844972
-            ],
-            "min": [
-                -0.08755125105381012,
-                -0.15304648876190186,
-                -0.4198120832443238,
-                -0.989989936351776
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 7644,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9999999403953552,
-                0.9999998807907105,
-                0.9999998807907105
-            ],
-            "min": [
-                0.9999994039535524,
-                0.9999992847442628,
-                0.9999995231628418
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1372,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 8232,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -2.98022992950564e-8,
-                0.18779130280017854,
-                0.0
-            ],
-            "min": [
-                -2.98022992950564e-8,
-                0.18779130280017854,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 5488,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.04831664264202118,
-                -0.03682959079742432,
-                0.1515040546655655,
-                -0.9875762462615968
-            ],
-            "min": [
-                -0.01958325318992138,
-                -0.043389420956373218,
-                -0.0806758776307106,
-                -0.9989553689956664
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 8820,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.000000238418579,
-                1.0000009536743165,
-                1.0000005960464478
-            ],
-            "min": [
-                0.999999701976776,
-                1.0000005960464478,
-                1.000000238418579
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1568,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 9408,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.0879998505115509,
-                0.00006264450348680839,
-                -0.00006240609945962206
-            ],
-            "min": [
-                -0.0880001038312912,
-                0.00006249549915082753,
-                -0.00006282330286921933
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 6272,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.6748494505882263,
-                0.3152157068252564,
-                -0.300369679927826,
-                -0.3483264744281769
-            ],
-            "min": [
-                0.3661315143108368,
-                0.09874838590621948,
-                -0.6449660658836365,
-                -0.8451733589172363
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 9996,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000001192092896,
-                1.0
-            ],
-            "min": [
-                0.9999997615814208,
-                0.9999996423721314,
-                0.999999701976776
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1764,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 10584,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.24200810492038728,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.24200810492038728,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 7056,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.003387797623872757,
-                0.9475951790809633,
-                -0.0798693522810936,
-                -0.3012830018997193
-            ],
-            "min": [
-                -0.12710869312286378,
-                0.916045308113098,
-                -0.2270231395959854,
-                -0.3146948218345642
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 11172,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000003576278689,
-                0.9999998807907105,
-                1.0000001192092896
-            ],
-            "min": [
-                0.9999999403953552,
-                0.9999995827674866,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1960,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 11760,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.187792107462883,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.187792107462883,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 7840,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.15000686049461366,
-                0.26206517219543459,
-                0.06808223575353623,
-                -0.9487173557281494
-            ],
-            "min": [
-                -0.0010455237934365869,
-                0.25685790181159975,
-                -0.10152826458215714,
-                -0.9656248688697816
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 12348,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000009536743165,
-                1.0
-            ],
-            "min": [
-                0.9999996423721314,
-                1.0000003576278689,
-                0.9999995231628418
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2156,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 12936,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.06761906296014786,
-                -0.02851865068078041,
-                -0.06296355277299881
-            ],
-            "min": [
-                0.0676189586520195,
-                -0.028518760576844217,
-                -0.06296365708112717
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 8624,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.301033079624176,
-                -0.20796972513198853,
-                0.92630273103714,
-                -0.08994945138692856
-            ],
-            "min": [
-                0.1658332496881485,
-                -0.7997090816497803,
-                0.4959096908569336,
-                -0.3118112981319428
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 13524,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000008344650269,
-                1.0,
-                0.9999999403953552
-            ],
-            "min": [
-                1.0000003576278689,
-                0.9999995231628418,
-                0.9999996423721314
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2352,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 14112,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -1.4901200273698124e-8,
-                0.26611289381980898,
-                0.0
-            ],
-            "min": [
-                -1.4901200273698124e-8,
-                0.26611289381980898,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 9408,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.8112500905990601,
-                -0.1822210103273392,
-                0.032220568507909778,
-                -0.4743982553482056
-            ],
-            "min": [
-                -0.03036016784608364,
-                -0.3419179916381836,
-                -0.289162427186966,
-                -0.9452491998672484
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 14700,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9999994039535524,
-                1.000000238418579,
-                1.000000238418579
-            ],
-            "min": [
-                0.9999989867210388,
-                0.9999996423721314,
-                0.9999994039535524
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2548,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 15288,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.2758241891860962,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.2758241891860962,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 10192,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9907974004745485,
-                -0.0014961245469748974,
-                0.02489613927900791,
-                -0.13506969809532166
-            ],
-            "min": [
-                0.8542653918266296,
-                -0.05430477112531662,
-                -0.00011262076441198587,
-                -0.5192484259605408
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 15876,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000005960464478,
-                1.0000004768371585,
-                1.0000004768371585
-            ],
-            "min": [
-                1.000000238418579,
-                1.0,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2744,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 16464,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.0023464488331228496,
-                -0.06617332249879837,
-                0.02785664983093739
-            ],
-            "min": [
-                -0.002346470952033997,
-                -0.06617333739995957,
-                0.02785659022629261
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 10976,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.02062430046498776,
-                -0.23465925455093385,
-                0.9716955423355104,
-                0.0638260766863823
-            ],
-            "min": [
-                0.003326366888359189,
-                -0.5406339168548584,
-                0.8410344123840332,
-                0.016216862946748738
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 17052,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000009536743165,
-                1.0000005960464478
-            ],
-            "min": [
-                0.9999998211860656,
-                1.000000238418579,
-                0.9999998211860656
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2940,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 17640,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.06845708936452866,
-                -0.028570100665092469,
-                -0.062949538230896
-            ],
-            "min": [
-                -0.06845712661743164,
-                -0.02857035957276821,
-                -0.06294971704483032
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 11760,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.018168065696954728,
-                -0.18232035636901856,
-                0.9812799096107484,
-                0.117560513317585
-            ],
-            "min": [
-                -0.07457219809293747,
-                -0.902503490447998,
-                0.413051187992096,
-                0.03284534439444542
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 18228,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.000000238418579,
-                1.000000238418579,
-                1.0000003576278689
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999995827674866,
-                0.9999996423721314
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3136,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 18816,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -1.1175900205273593e-8,
-                0.2661114931106568,
-                0.0
-            ],
-            "min": [
-                -1.1175900205273593e-8,
-                0.2661114931106568,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 12544,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.8507033586502075,
-                0.14946134388446809,
-                0.04984176158905029,
-                -0.5191445350646973
-            ],
-            "min": [
-                -0.06756377220153809,
-                0.06949601322412491,
-                -0.026268262416124345,
-                -0.9922308921813964
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 19404,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000005960464478,
-                1.0000003576278689,
-                1.0000005960464478
-            ],
-            "min": [
-                1.0000001192092896,
-                0.9999995231628418,
-                0.9999998211860656
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3332,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 19992,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.2758249044418335,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.2758249044418335,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 13328,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.99649316072464,
-                -0.01710231974720955,
-                -0.022676724940538408,
-                -0.07459255307912827
-            ],
-            "min": [
-                0.8792483806610107,
-                -0.04609288275241852,
-                -0.06820148974657059,
-                -0.4750169813632965
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 20580,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9999995827674866,
-                1.0,
-                1.0000003576278689
-            ],
-            "min": [
-                0.999999225139618,
-                0.9999995231628418,
-                1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3528,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 21168,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.0014585109893232585,
-                -0.06619886308908463,
-                0.02785670943558216
-            ],
-            "min": [
-                -0.0014585329918190837,
-                -0.06619889289140701,
-                0.02785668894648552
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 14112,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.00960757862776518,
-                -0.2635453343391419,
-                0.9620476961135864,
-                0.06995902955532074
-            ],
-            "min": [
-                -0.04577624797821045,
-                -0.4899238646030426,
-                0.8689604997634888,
-                -0.06424159556627274
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 21756,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9999996423721314,
-                1.0000003576278689,
-                0.9999998807907105
-            ],
-            "min": [
-                0.9999991655349731,
-                0.9999997615814208,
-                0.9999994039535524
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 7,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 19,
-            "max": [
-                0.780990481376648,
-                0.9918341040611268,
-                0.9992613196372986,
-                0.0,
-                1.0,
-                0.8904604315757752,
-                0.6854007244110107,
-                0.0,
-                0.79917311668396,
-                0.9999359250068665,
-                0.997134804725647,
-                0.0,
-                0.20702040195465089,
-                0.5989438891410828,
-                1.001250982284546,
-                1.0
-            ],
-            "min": [
-                -0.9985063076019288,
-                -0.9971349835395812,
-                -0.9999359250068665,
-                0.0,
-                -1.0,
-                -0.8904621005058289,
-                -0.4517692029476166,
-                0.0,
-                -0.18484599888324736,
-                -0.9853218197822572,
-                -0.997802197933197,
-                0.0,
-                -0.811928927898407,
-                -1.18982994556427,
-                -1.058609962463379,
-                1.0
-            ],
-            "type": "MAT4"
-        }
-    ],
-    "materials": [
-        {
-            "extensions": {
-                "KHR_materials_common": {
-                    "doubleSided": false,
-                    "jointCount": 19,
-                    "technique": "PHONG",
-                    "transparent": false,
-                    "values": {
-                        "ambient": [
-                            0.0,
-                            0.0,
-                            0.0,
-                            1.0
-                        ],
-                        "diffuse": [
-                            0
-                        ],
-                        "emission": [
-                            0.0,
-                            0.0,
-                            0.0,
-                            1.0
-                        ],
-                        "specular": [
-                            0.10000000149011612,
-                            0.10000000149011612,
-                            0.10000000149011612,
-                            1.0
-                        ],
-                        "shininess": [
-                            256.0
-                        ],
-                        "transparency": [
-                            1.0
-                        ]
-                    },
-                    "name": "Cesium_Man-effect"
-                }
-            },
-            "name": "Cesium_Man-effect"
-        }
-    ],
-    "textures": [
-        {
-            "sampler": 0,
-            "source": 0
-        }
-    ],
-    "images": [
-        {
-            "uri": "CesiumMan.jpg"
-        }
-    ],
-    "samplers": [
-        {
-            "magFilter": 9729,
-            "minFilter": 9986,
-            "wrapS": 10497,
-            "wrapT": 10497
-        }
-    ],
-    "bufferViews": [
-        {
-            "buffer": 0,
-            "byteOffset": 225468,
-            "byteLength": 28032,
-            "target": 34963
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 169376,
-            "byteLength": 52368,
-            "byteStride": 8,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 90824,
-            "byteLength": 78552,
-            "byteStride": 12,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 16112,
-            "byteLength": 52368,
-            "byteStride": 16,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 221744,
-            "byteLength": 3724
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 68480,
-            "byteLength": 22344
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 1216,
-            "byteLength": 14896
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 0,
-            "byteLength": 1216
-        }
-    ],
-    "buffers": [
-        {
-            "byteLength": 253500,
-            "uri": "CesiumMan0.bin"
-        }
-    ],
-    "extensionsRequired": [
-        "KHR_materials_common"
-    ],
-    "extensionsUsed": [
-        "KHR_materials_common"
-    ]
-}

BIN
examples/models/gltf/CesiumMan/glTF-MaterialsCommon/CesiumMan.jpg


BIN
examples/models/gltf/CesiumMan/glTF-MaterialsCommon/CesiumMan0.bin


+ 0 - 2902
examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan.gltf

@@ -1,2902 +0,0 @@
-{
-    "asset": {
-        "generator": "COLLADA2GLTF",
-        "version": "2.0"
-    },
-    "scene": 0,
-    "scenes": [
-        {
-            "nodes": [
-                0
-            ]
-        }
-    ],
-    "nodes": [
-        {
-            "children": [
-                21,
-                1
-            ],
-            "matrix": [
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                -1.0,
-                0.0,
-                0.0,
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                1.0
-            ]
-        },
-        {
-            "mesh": 0,
-            "skin": 0
-        },
-        {
-            "children": [
-                11,
-                7,
-                3
-            ],
-            "translation": [
-                -3.352759847530251e-8,
-                0.00499989278614521,
-                0.6789997816085815
-            ],
-            "rotation": [
-                -0.02679471485316753,
-                -0.026732556521892549,
-                -0.7065614461898804,
-                -0.706638753414154
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999998211860656,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                4
-            ],
-            "translation": [
-                -0.06804201006889343,
-                -0.02857022918760777,
-                -0.06294959783554077
-            ],
-            "rotation": [
-                -0.06642699986696243,
-                -0.6115013957023621,
-                0.7850273251533508,
-                0.073387511074543
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.000000238418579,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                5
-            ],
-            "translation": [
-                0.0,
-                0.2661114931106568,
-                0.0
-            ],
-            "rotation": [
-                0.2162912338972092,
-                0.12430649250745774,
-                0.0015752052422612906,
-                -0.9683818817138672
-            ],
-            "scale": [
-                1.0,
-                0.9999998807907105,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                6
-            ],
-            "translation": [
-                0.0,
-                0.2758249044418335,
-                -1.1175900205273593e-8
-            ],
-            "rotation": [
-                0.8472740650177002,
-                -0.029564039781689645,
-                -0.020868001505732538,
-                -0.5299217700958252
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999998807907105,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                -0.001458480954170227,
-                -0.06619883328676224,
-                0.027856720611453058
-            ],
-            "rotation": [
-                -0.03726436197757721,
-                -0.31931325793266299,
-                0.9460535645484924,
-                -0.040414959192276
-            ],
-            "scale": [
-                1.0,
-                1.0000003576278689,
-                1.0000005960464478
-            ]
-        },
-        {
-            "children": [
-                8
-            ],
-            "translation": [
-                0.06803668290376663,
-                -0.028518669307231904,
-                -0.06296277046203613
-            ],
-            "rotation": [
-                0.2475697100162506,
-                -0.5775680541992188,
-                0.7479144334793091,
-                -0.2138892114162445
-            ],
-            "scale": [
-                1.0,
-                1.000000238418579,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                9
-            ],
-            "translation": [
-                3.725289854372704e-9,
-                0.2661128044128418,
-                1.4901200273698124e-8
-            ],
-            "rotation": [
-                0.20902779698371888,
-                -0.32988959550857546,
-                -0.05559924244880676,
-                -0.9189064502716065
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                10
-            ],
-            "translation": [
-                -7.450579708745408e-9,
-                0.2758241891860962,
-                5.5879398885849708e-9
-            ],
-            "rotation": [
-                0.8477396965026856,
-                -0.004254077095538378,
-                -0.009491981938481333,
-                -0.5303107500076294
-            ],
-            "scale": [
-                0.9999998807907105,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "translation": [
-                -0.002346522873267532,
-                -0.06617332994937897,
-                0.027856789529323576
-            ],
-            "rotation": [
-                0.026573536917567254,
-                -0.3201442956924439,
-                0.9445450901985169,
-                0.06808964908123017
-            ],
-            "scale": [
-                1.0,
-                1.000000238418579,
-                1.000000238418579
-            ]
-        },
-        {
-            "children": [
-                12
-            ],
-            "translation": [
-                -1.024449947095718e-8,
-                1.4901200273698124e-8,
-                0.14541690051555634
-            ],
-            "rotation": [
-                -0.6572523713111877,
-                -0.00017969288455788046,
-                -0.00010428009409224616,
-                -0.7536706328392029
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                19,
-                16,
-                13
-            ],
-            "translation": [
-                4.6566100975198307e-10,
-                0.250516802072525,
-                3.725289854372704e-9
-            ],
-            "rotation": [
-                0.6226037740707398,
-                0.00001678345142863691,
-                -0.0000031824047255213374,
-                -0.7825372219085693
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                14
-            ],
-            "translation": [
-                -0.09098775684833528,
-                0.00006259980000322685,
-                -0.00006532669794978574
-            ],
-            "rotation": [
-                0.2964428961277008,
-                0.031510334461927417,
-                -0.6522551774978638,
-                -0.6969160437583923
-            ],
-            "scale": [
-                1.0000001192092896,
-                0.9999999403953552,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                15
-            ],
-            "translation": [
-                0.0,
-                0.24200820922851566,
-                -5.96045985901128e-8
-            ],
-            "rotation": [
-                -0.1887933611869812,
-                0.9157071709632874,
-                -0.16780903935432438,
-                -0.3125341236591339
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999999403953552,
-                0.9999998807907105
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                0.18779200315475465,
-                0.0
-            ],
-            "rotation": [
-                -0.058613914996385577,
-                0.2637767195701599,
-                0.05226854607462883,
-                -0.9613814353942872
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                17
-            ],
-            "translation": [
-                0.0910135880112648,
-                0.000014185899999574758,
-                -0.000058054902183357629
-            ],
-            "rotation": [
-                0.6797328591346741,
-                0.689685583114624,
-                -0.2269716113805771,
-                -0.10383165627717972
-            ],
-            "scale": [
-                1.0000001192092896,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                18
-            ],
-            "translation": [
-                1.1641500263781524e-10,
-                0.2420089989900589,
-                0.0
-            ],
-            "rotation": [
-                -0.013960935175418854,
-                -0.12937255203723908,
-                -0.2522056996822357,
-                -0.9588848352432252
-            ],
-            "scale": [
-                1.0,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                1.4901200273698124e-8,
-                0.18779149651527408,
-                5.96045985901128e-8
-            ],
-            "rotation": [
-                0.006119169760495424,
-                -0.042325541377067569,
-                -0.07877591997385025,
-                -0.9959746599197388
-            ],
-            "scale": [
-                0.9999998807907105,
-                1.000000238418579,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                20
-            ],
-            "translation": [
-                -8.847560017954948e-9,
-                5.96045985901128e-8,
-                0.06483662128448487
-            ],
-            "rotation": [
-                -0.6606296300888062,
-                0.00008344435627805069,
-                0.0000710925814928487,
-                -0.750711977481842
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                0.0520397387444973,
-                0.0
-            ],
-            "rotation": [
-                0.000002552607384131989,
-                0.9996904730796814,
-                -0.02487966977059841,
-                -4.329927776325349e-7
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                2
-            ]
-        }
-    ],
-    "meshes": [
-        {
-            "primitives": [
-                {
-                    "attributes": {
-                        "JOINTS_0": 1,
-                        "NORMAL": 2,
-                        "POSITION": 3,
-                        "TEXCOORD_0": 4,
-                        "WEIGHTS_0": 5
-                    },
-                    "indices": 0,
-                    "mode": 4,
-                    "material": 0
-                }
-            ],
-            "name": "Cesium_Man"
-        }
-    ],
-    "animations": [
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 2,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 2,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 2,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 7
-                },
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 8
-                },
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 9
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 11,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 11,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 11,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 11
-                },
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 12
-                },
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 13
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 12,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 12,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 12,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 15
-                },
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 16
-                },
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 17
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 19,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 19,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 19,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 19
-                },
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 20
-                },
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 21
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 20,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 20,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 20,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 23
-                },
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 24
-                },
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 25
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 16,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 16,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 16,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 27
-                },
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 28
-                },
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 29
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 17,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 17,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 17,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 31
-                },
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 32
-                },
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 33
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 18,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 18,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 18,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 35
-                },
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 36
-                },
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 37
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 13,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 13,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 13,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 39
-                },
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 40
-                },
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 41
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 14,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 14,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 14,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 43
-                },
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 44
-                },
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 45
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 15,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 15,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 15,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 47
-                },
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 48
-                },
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 49
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 7,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 7,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 7,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 51
-                },
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 52
-                },
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 53
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 8,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 8,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 8,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 55
-                },
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 56
-                },
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 57
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 9,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 9,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 9,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 59
-                },
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 60
-                },
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 61
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 10,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 10,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 10,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 63
-                },
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 64
-                },
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 65
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 3,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 3,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 3,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 67
-                },
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 68
-                },
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 69
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 4,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 4,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 4,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 71
-                },
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 72
-                },
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 73
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 5,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 5,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 5,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 75
-                },
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 76
-                },
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 77
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 6,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 6,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 6,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 79
-                },
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 80
-                },
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 81
-                }
-            ]
-        }
-    ],
-    "skins": [
-        {
-            "inverseBindMatrices": 82,
-            "skeleton": 2,
-            "joints": [
-                2,
-                11,
-                12,
-                19,
-                20,
-                16,
-                13,
-                17,
-                14,
-                18,
-                15,
-                7,
-                3,
-                8,
-                4,
-                9,
-                5,
-                10,
-                6
-            ],
-            "name": "Armature"
-        }
-    ],
-    "accessors": [
-        {
-            "bufferView": 0,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 14016,
-            "max": [
-                3272
-            ],
-            "min": [
-                0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 3273,
-            "max": [
-                18,
-                18,
-                18,
-                18
-            ],
-            "min": [
-                0,
-                0,
-                0,
-                0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3273,
-            "max": [
-                1.0,
-                0.9999808073043824,
-                0.9944446086883544
-            ],
-            "min": [
-                -1.0,
-                -0.9999808073043824,
-                -1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 39276,
-            "componentType": 5126,
-            "count": 3273,
-            "max": [
-                0.1809539943933487,
-                0.569136917591095,
-                1.5065499544143677
-            ],
-            "min": [
-                -0.13100001215934754,
-                -0.5691370964050293,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 26184,
-            "componentType": 5126,
-            "count": 3273,
-            "max": [
-                0.990805983543396,
-                0.9880298972129822
-            ],
-            "min": [
-                0.014079390093684197,
-                0.008445978164672852
-            ],
-            "type": "VEC2"
-        },
-        {
-            "bufferView": 3,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3273,
-            "max": [
-                1.0,
-                0.989919900894165,
-                0.951076328754425,
-                0.8741077184677124
-            ],
-            "min": [
-                0.010080150328576565,
-                0.0,
-                0.0,
-                0.0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.386510011831433e-8,
-                -0.02000010944902897,
-                0.7110069990158081
-            ],
-            "min": [
-                -7.101329746461715e-9,
-                -0.030000120401382448,
-                0.6399999856948853
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.02314124070107937,
-                -0.006974140647798777,
-                -0.7065909504890442,
-                -0.7031946778297424
-            ],
-            "min": [
-                -0.05146743357181549,
-                -0.034400247037410739,
-                -0.7094300389289856,
-                -0.7066542506217957
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 588,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000003576278689,
-                1.0000001192092896
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999998807907105,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 196,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 1176,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0009999829344451428,
-                3.725289943190546e-8,
-                0.1454170048236847
-            ],
-            "min": [
-                0.0009999759495258332,
-                -4.470349779239769e-8,
-                0.14541690051555634
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 784,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.7105135917663574,
-                0.008397356607019902,
-                0.000531485362444073,
-                -0.6789330840110779
-            ],
-            "min": [
-                -0.7337970733642578,
-                -0.011321297846734524,
-                -0.02596380189061165,
-                -0.703567624092102
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 1764,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000003576278689,
-                1.0000004768371585,
-                0.999999701976776
-            ],
-            "min": [
-                1.0,
-                1.0000001192092896,
-                0.9999992847442628
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 392,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 2352,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.25051671266555788,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.25051671266555788,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 1568,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.6358352899551392,
-                0.06165437772870064,
-                -0.00338419945910573,
-                -0.7642753720283508
-            ],
-            "min": [
-                0.6224426627159119,
-                -0.1380288153886795,
-                -0.06534028053283692,
-                -0.782635509967804
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 2940,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000007152557374,
-                0.999999701976776
-            ],
-            "min": [
-                0.9999998211860656,
-                1.0000003576278689,
-                0.9999992847442628
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 588,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 3528,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.1420399676230774e-8,
-                8.940700269022274e-8,
-                0.064838707447052
-            ],
-            "min": [
-                -1.5832499755674694e-8,
-                2.98022992950564e-8,
-                0.06483834981918335
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 2352,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.6325308680534363,
-                0.024829493835568429,
-                0.04200226813554764,
-                -0.7498575448989868
-            ],
-            "min": [
-                -0.6592774987220764,
-                -0.03641732409596443,
-                -0.03000717982649803,
-                -0.7735550999641419
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 4116,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.000000238418579,
-                0.9999998807907105,
-                1.0
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999995231628418,
-                0.999999701976776
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 784,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 4704,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                7.450579708745408e-9,
-                0.0520397387444973,
-                0.0
-            ],
-            "min": [
-                7.450579708745408e-9,
-                0.0520397387444973,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 3136,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.04680429771542549,
-                0.9995073676109314,
-                -0.018450811505317689,
-                0.002033286727964878
-            ],
-            "min": [
-                -0.09362706542015076,
-                0.995067298412323,
-                -0.09058911353349686,
-                -0.0025854958221316339
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 5292,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.000000238418579,
-                1.0000001192092896,
-                1.0000004768371585
-            ],
-            "min": [
-                0.999999701976776,
-                0.9999998211860656,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 980,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 5880,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.08800014853477478,
-                0.000014096500308369288,
-                -0.00005573029920924455
-            ],
-            "min": [
-                0.08799994736909867,
-                0.000013977300113765525,
-                -0.00005596880146185868
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 3920,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.7787204384803772,
-                0.6963526606559753,
-                -0.2913321256637573,
-                -0.12775331735610966
-            ],
-            "min": [
-                0.41440603137016299,
-                0.2682091891765595,
-                -0.6041955351829529,
-                -0.508333683013916
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 6468,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000005960464478,
-                1.0000001192092896,
-                1.0000004768371585
-            ],
-            "min": [
-                1.0,
-                0.9999995827674866,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1176,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 7056,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.24200910329818729,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.24200910329818729,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 4704,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.005276965908706188,
-                -0.10532382130622864,
-                -0.0563904233276844,
-                -0.9007523059844972
-            ],
-            "min": [
-                -0.08755125105381012,
-                -0.15304648876190186,
-                -0.4198120832443238,
-                -0.989989936351776
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 7644,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9999999403953552,
-                0.9999998807907105,
-                0.9999998807907105
-            ],
-            "min": [
-                0.9999994039535524,
-                0.9999992847442628,
-                0.9999995231628418
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1372,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 8232,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -2.98022992950564e-8,
-                0.18779130280017854,
-                0.0
-            ],
-            "min": [
-                -2.98022992950564e-8,
-                0.18779130280017854,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 5488,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.04831664264202118,
-                -0.03682959079742432,
-                0.1515040546655655,
-                -0.9875762462615968
-            ],
-            "min": [
-                -0.01958325318992138,
-                -0.043389420956373218,
-                -0.0806758776307106,
-                -0.9989553689956664
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 8820,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.000000238418579,
-                1.0000009536743165,
-                1.0000005960464478
-            ],
-            "min": [
-                0.999999701976776,
-                1.0000005960464478,
-                1.000000238418579
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1568,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 9408,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.0879998505115509,
-                0.00006264450348680839,
-                -0.00006240609945962206
-            ],
-            "min": [
-                -0.0880001038312912,
-                0.00006249549915082753,
-                -0.00006282330286921933
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 6272,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.6748494505882263,
-                0.3152157068252564,
-                -0.300369679927826,
-                -0.3483264744281769
-            ],
-            "min": [
-                0.3661315143108368,
-                0.09874838590621948,
-                -0.6449660658836365,
-                -0.8451733589172363
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 9996,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000001192092896,
-                1.0
-            ],
-            "min": [
-                0.9999997615814208,
-                0.9999996423721314,
-                0.999999701976776
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1764,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 10584,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.24200810492038728,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.24200810492038728,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 7056,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.003387797623872757,
-                0.9475951790809633,
-                -0.0798693522810936,
-                -0.3012830018997193
-            ],
-            "min": [
-                -0.12710869312286378,
-                0.916045308113098,
-                -0.2270231395959854,
-                -0.3146948218345642
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 11172,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000003576278689,
-                0.9999998807907105,
-                1.0000001192092896
-            ],
-            "min": [
-                0.9999999403953552,
-                0.9999995827674866,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1960,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 11760,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.187792107462883,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.187792107462883,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 7840,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.15000686049461366,
-                0.26206517219543459,
-                0.06808223575353623,
-                -0.9487173557281494
-            ],
-            "min": [
-                -0.0010455237934365869,
-                0.25685790181159975,
-                -0.10152826458215714,
-                -0.9656248688697816
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 12348,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000009536743165,
-                1.0
-            ],
-            "min": [
-                0.9999996423721314,
-                1.0000003576278689,
-                0.9999995231628418
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2156,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 12936,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.06761906296014786,
-                -0.02851865068078041,
-                -0.06296355277299881
-            ],
-            "min": [
-                0.0676189586520195,
-                -0.028518760576844217,
-                -0.06296365708112717
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 8624,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.301033079624176,
-                -0.20796972513198853,
-                0.92630273103714,
-                -0.08994945138692856
-            ],
-            "min": [
-                0.1658332496881485,
-                -0.7997090816497803,
-                0.4959096908569336,
-                -0.3118112981319428
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 13524,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000008344650269,
-                1.0,
-                0.9999999403953552
-            ],
-            "min": [
-                1.0000003576278689,
-                0.9999995231628418,
-                0.9999996423721314
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2352,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 14112,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -1.4901200273698124e-8,
-                0.26611289381980898,
-                0.0
-            ],
-            "min": [
-                -1.4901200273698124e-8,
-                0.26611289381980898,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 9408,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.8112500905990601,
-                -0.1822210103273392,
-                0.032220568507909778,
-                -0.4743982553482056
-            ],
-            "min": [
-                -0.03036016784608364,
-                -0.3419179916381836,
-                -0.289162427186966,
-                -0.9452491998672484
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 14700,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9999994039535524,
-                1.000000238418579,
-                1.000000238418579
-            ],
-            "min": [
-                0.9999989867210388,
-                0.9999996423721314,
-                0.9999994039535524
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2548,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 15288,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.2758241891860962,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.2758241891860962,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 10192,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9907974004745485,
-                -0.0014961245469748974,
-                0.02489613927900791,
-                -0.13506969809532166
-            ],
-            "min": [
-                0.8542653918266296,
-                -0.05430477112531662,
-                -0.00011262076441198587,
-                -0.5192484259605408
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 15876,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000005960464478,
-                1.0000004768371585,
-                1.0000004768371585
-            ],
-            "min": [
-                1.000000238418579,
-                1.0,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2744,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 16464,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.0023464488331228496,
-                -0.06617332249879837,
-                0.02785664983093739
-            ],
-            "min": [
-                -0.002346470952033997,
-                -0.06617333739995957,
-                0.02785659022629261
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 10976,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.02062430046498776,
-                -0.23465925455093385,
-                0.9716955423355104,
-                0.0638260766863823
-            ],
-            "min": [
-                0.003326366888359189,
-                -0.5406339168548584,
-                0.8410344123840332,
-                0.016216862946748738
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 17052,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000001192092896,
-                1.0000009536743165,
-                1.0000005960464478
-            ],
-            "min": [
-                0.9999998211860656,
-                1.000000238418579,
-                0.9999998211860656
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2940,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 17640,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.06845708936452866,
-                -0.028570100665092469,
-                -0.062949538230896
-            ],
-            "min": [
-                -0.06845712661743164,
-                -0.02857035957276821,
-                -0.06294971704483032
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 11760,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.018168065696954728,
-                -0.18232035636901856,
-                0.9812799096107484,
-                0.117560513317585
-            ],
-            "min": [
-                -0.07457219809293747,
-                -0.902503490447998,
-                0.413051187992096,
-                0.03284534439444542
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 18228,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.000000238418579,
-                1.000000238418579,
-                1.0000003576278689
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999995827674866,
-                0.9999996423721314
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3136,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 18816,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -1.1175900205273593e-8,
-                0.2661114931106568,
-                0.0
-            ],
-            "min": [
-                -1.1175900205273593e-8,
-                0.2661114931106568,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 12544,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.8507033586502075,
-                0.14946134388446809,
-                0.04984176158905029,
-                -0.5191445350646973
-            ],
-            "min": [
-                -0.06756377220153809,
-                0.06949601322412491,
-                -0.026268262416124345,
-                -0.9922308921813964
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 19404,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                1.0000005960464478,
-                1.0000003576278689,
-                1.0000005960464478
-            ],
-            "min": [
-                1.0000001192092896,
-                0.9999995231628418,
-                0.9999998211860656
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3332,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 19992,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.0,
-                0.2758249044418335,
-                0.0
-            ],
-            "min": [
-                0.0,
-                0.2758249044418335,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 13328,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.99649316072464,
-                -0.01710231974720955,
-                -0.022676724940538408,
-                -0.07459255307912827
-            ],
-            "min": [
-                0.8792483806610107,
-                -0.04609288275241852,
-                -0.06820148974657059,
-                -0.4750169813632965
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 20580,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9999995827674866,
-                1.0,
-                1.0000003576278689
-            ],
-            "min": [
-                0.999999225139618,
-                0.9999995231628418,
-                1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3528,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                2.0
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 21168,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.0014585109893232585,
-                -0.06619886308908463,
-                0.02785670943558216
-            ],
-            "min": [
-                -0.0014585329918190837,
-                -0.06619889289140701,
-                0.02785668894648552
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 14112,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                -0.00960757862776518,
-                -0.2635453343391419,
-                0.9620476961135864,
-                0.06995902955532074
-            ],
-            "min": [
-                -0.04577624797821045,
-                -0.4899238646030426,
-                0.8689604997634888,
-                -0.06424159556627274
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 21756,
-            "componentType": 5126,
-            "count": 49,
-            "max": [
-                0.9999996423721314,
-                1.0000003576278689,
-                0.9999998807907105
-            ],
-            "min": [
-                0.9999991655349731,
-                0.9999997615814208,
-                0.9999994039535524
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 7,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 19,
-            "max": [
-                0.780990481376648,
-                0.9918341040611268,
-                0.9992613196372986,
-                0.0,
-                1.0,
-                0.8904604315757752,
-                0.6854007244110107,
-                0.0,
-                0.79917311668396,
-                0.9999359250068665,
-                0.997134804725647,
-                0.0,
-                0.20702040195465089,
-                0.5989438891410828,
-                1.001250982284546,
-                1.0
-            ],
-            "min": [
-                -0.9985063076019288,
-                -0.9971349835395812,
-                -0.9999359250068665,
-                0.0,
-                -1.0,
-                -0.8904621005058289,
-                -0.4517692029476166,
-                0.0,
-                -0.18484599888324736,
-                -0.9853218197822572,
-                -0.997802197933197,
-                0.0,
-                -0.811928927898407,
-                -1.18982994556427,
-                -1.058609962463379,
-                1.0
-            ],
-            "type": "MAT4"
-        }
-    ],
-    "materials": [
-        {
-            "values": {
-                "ambient": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "diffuse": [
-                    0
-                ],
-                "emission": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "specular": [
-                    0.10000000149011612,
-                    0.10000000149011612,
-                    0.10000000149011612,
-                    1.0
-                ],
-                "shininess": [
-                    256.0
-                ],
-                "transparency": [
-                    1.0
-                ]
-            },
-            "technique": 0
-        }
-    ],
-    "textures": [
-        {
-            "sampler": 0,
-            "source": 0
-        }
-    ],
-    "images": [
-        {
-            "uri": "CesiumMan.jpg"
-        }
-    ],
-    "samplers": [
-        {
-            "magFilter": 9729,
-            "minFilter": 9986,
-            "wrapS": 10497,
-            "wrapT": 10497
-        }
-    ],
-    "techniques": [
-        {
-            "attributes": {
-                "a_joint": "joint",
-                "a_normal": "normal",
-                "a_position": "position",
-                "a_texcoord0": "texcoord0",
-                "a_weight": "weight"
-            },
-            "parameters": {
-                "ambient": {
-                    "type": 35666
-                },
-                "diffuse": {
-                    "type": 35678
-                },
-                "emission": {
-                    "type": 35666
-                },
-                "joint": {
-                    "semantic": "JOINT",
-                    "type": 35666
-                },
-                "jointMatrix": {
-                    "semantic": "JOINTMATRIX",
-                    "count": 19,
-                    "type": 35676
-                },
-                "modelViewMatrix": {
-                    "semantic": "MODELVIEW",
-                    "type": 35676
-                },
-                "normal": {
-                    "semantic": "NORMAL",
-                    "type": 35665
-                },
-                "normalMatrix": {
-                    "semantic": "MODELVIEWINVERSETRANSPOSE",
-                    "type": 35675
-                },
-                "position": {
-                    "semantic": "POSITION",
-                    "type": 35665
-                },
-                "projectionMatrix": {
-                    "semantic": "PROJECTION",
-                    "type": 35676
-                },
-                "shininess": {
-                    "type": 5126
-                },
-                "specular": {
-                    "type": 35666
-                },
-                "texcoord0": {
-                    "semantic": "TEXCOORD_0",
-                    "type": 35665
-                },
-                "transparency": {
-                    "type": 5126
-                },
-                "weight": {
-                    "semantic": "WEIGHT",
-                    "type": 35666
-                }
-            },
-            "program": 0,
-            "states": {
-                "enable": [
-                    2884,
-                    2929
-                ]
-            },
-            "uniforms": {
-                "u_ambient": "ambient",
-                "u_diffuse": "diffuse",
-                "u_emission": "emission",
-                "u_jointMatrix": "jointMatrix",
-                "u_modelViewMatrix": "modelViewMatrix",
-                "u_normalMatrix": "normalMatrix",
-                "u_projectionMatrix": "projectionMatrix",
-                "u_shininess": "shininess",
-                "u_specular": "specular",
-                "u_transparency": "transparency"
-            }
-        }
-    ],
-    "programs": [
-        {
-            "attributes": [
-                "a_joint",
-                "a_normal",
-                "a_position",
-                "a_texcoord0",
-                "a_weight"
-            ],
-            "fragmentShader": 1,
-            "vertexShader": 0
-        }
-    ],
-    "shaders": [
-        {
-            "type": 35633,
-            "uri": "CesiumMan0.vert"
-        },
-        {
-            "type": 35632,
-            "uri": "CesiumMan1.frag"
-        }
-    ],
-    "bufferViews": [
-        {
-            "buffer": 0,
-            "byteOffset": 225468,
-            "byteLength": 28032,
-            "target": 34963
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 169376,
-            "byteLength": 52368,
-            "byteStride": 8,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 90824,
-            "byteLength": 78552,
-            "byteStride": 12,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 16112,
-            "byteLength": 52368,
-            "byteStride": 16,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 221744,
-            "byteLength": 3724
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 68480,
-            "byteLength": 22344
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 1216,
-            "byteLength": 14896
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 0,
-            "byteLength": 1216
-        }
-    ],
-    "buffers": [
-        {
-            "byteLength": 253500,
-            "uri": "CesiumMan0.bin"
-        }
-    ],
-    "extensionsRequired": [
-        "KHR_technique_webgl"
-    ],
-    "extensionsUsed": [
-        "KHR_technique_webgl"
-    ]
-}

BIN
examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan.jpg


BIN
examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan0.bin


+ 0 - 24
examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan0.vert

@@ -1,24 +0,0 @@
-precision highp float;
-uniform mat4 u_modelViewMatrix;
-uniform mat4 u_projectionMatrix;
-uniform mat3 u_normalMatrix;
-uniform mat4 u_jointMatrix[19];
-attribute vec3 a_position;
-varying vec3 v_position;
-attribute vec3 a_normal;
-varying vec3 v_normal;
-attribute vec2 a_texcoord0;
-varying vec2 v_texcoord0;
-attribute vec4 a_joint;
-attribute vec4 a_weight;
-void main(void) {
-    mat4 skinMat = a_weight.x * u_jointMatrix[int(a_joint.x)];
-    skinMat += a_weight.y * u_jointMatrix[int(a_joint.y)];
-    skinMat += a_weight.z * u_jointMatrix[int(a_joint.z)];
-    skinMat += a_weight.w * u_jointMatrix[int(a_joint.w)];
-    vec4 pos = u_modelViewMatrix * skinMat * vec4(a_position,1.0);
-    v_position = pos.xyz;
-    gl_Position = u_projectionMatrix * pos;
-    v_normal = u_normalMatrix * mat3(skinMat) * a_normal;
-    v_texcoord0 = a_texcoord0;
-}

+ 0 - 33
examples/models/gltf/CesiumMan/glTF-techniqueWebGL/CesiumMan1.frag

@@ -1,33 +0,0 @@
-precision highp float;
-uniform vec4 u_ambient;
-uniform sampler2D u_diffuse;
-uniform vec4 u_emission;
-uniform vec4 u_specular;
-uniform float u_shininess;
-uniform float u_transparency;
-varying vec3 v_position;
-varying vec3 v_normal;
-varying vec2 v_texcoord0;
-void main(void) {
-    vec3 normal = normalize(v_normal);
-    vec4 diffuse = texture2D(u_diffuse, v_texcoord0);
-    vec3 diffuseLight = vec3(0.0, 0.0, 0.0);
-    vec3 specular = u_specular.rgb;
-    vec3 specularLight = vec3(0.0, 0.0, 0.0);
-    vec3 emission = u_emission.rgb;
-    vec3 ambient = u_ambient.rgb;
-    vec3 viewDir = -normalize(v_position);
-    vec3 ambientLight = vec3(0.0, 0.0, 0.0);
-    ambientLight += vec3(0.2, 0.2, 0.2);
-    vec3 l = vec3(0.0, 0.0, 1.0);
-    diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal, l), 0.); 
-    vec3 reflectDir = reflect(-l, normal);
-    float specularIntensity = max(0., pow(max(dot(reflectDir, viewDir), 0.), u_shininess));
-    specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity;
-    vec3 color = vec3(0.0, 0.0, 0.0);
-    color += diffuse.rgb * diffuseLight;
-    color += specular * specularLight;
-    color += emission;
-    color += ambient * ambientLight;
-    gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency);
-}

BIN
examples/models/gltf/Duck/glTF-MaterialsCommon/Duck.bin


+ 0 - 419
examples/models/gltf/Duck/glTF-MaterialsCommon/Duck.gltf

@@ -1,419 +0,0 @@
-{
-    "accessors" : [
-        {
-            "bufferView" : 0, 
-            "componentType" : 5123, 
-            "count" : 12636, 
-            "max" : [
-                2297
-            ], 
-            "min" : [
-                0
-            ], 
-            "type" : "SCALAR"
-        }, 
-        {
-            "bufferView" : 1, 
-            "componentType" : 5126, 
-            "count" : 2298, 
-            "max" : [
-                96.17990112304688, 
-                53.925201416015625, 
-                -9.929369926452637
-            ], 
-            "min" : [
-                -69.29850006103516, 
-                -61.32820129394531, 
-                -163.97000122070312
-            ], 
-            "type" : "VEC3"
-        }, 
-        {
-            "bufferView" : 2, 
-            "componentType" : 5126, 
-            "count" : 2298, 
-            "max" : [
-                0.9971618056297302, 
-                0.9985961318016052, 
-                1.0
-            ], 
-            "min" : [
-                -0.99993896484375, 
-                -0.999847412109375, 
-                -0.99957275390625
-            ], 
-            "type" : "VEC3"
-        }, 
-        {
-            "bufferView" : 3, 
-            "componentType" : 5126, 
-            "count" : 2298, 
-            "max" : [
-                0.9999999403953552, 
-                0.9984003901481628, 
-                0.8631033897399902, 
-                1.0
-            ], 
-            "min" : [
-                -0.6876732707023621, 
-                -0.99998939037323, 
-                -0.9818168878555298, 
-                1.0
-            ], 
-            "type" : "VEC4"
-        }, 
-        {
-            "bufferView" : 4, 
-            "componentType" : 5126, 
-            "count" : 2298, 
-            "max" : [
-                0.9833459854125977, 
-                0.9800370000302792
-            ], 
-            "min" : [
-                0.026409000158309937, 
-                0.01996302604675293
-            ], 
-            "type" : "VEC2"
-        }
-    ], 
-    "asset" : {
-        "generator" : "Khronos Blender glTF 2.0 exporter", 
-        "version" : "2.0"
-    }, 
-    "bufferViews" : [
-        {
-            "buffer" : 0, 
-            "byteLength" : 25272, 
-            "byteOffset" : 0, 
-            "target" : 34963
-        }, 
-        {
-            "buffer" : 0, 
-            "byteLength" : 27576, 
-            "byteOffset" : 25272, 
-            "target" : 34962
-        }, 
-        {
-            "buffer" : 0, 
-            "byteLength" : 27576, 
-            "byteOffset" : 52848, 
-            "target" : 34962
-        }, 
-        {
-            "buffer" : 0, 
-            "byteLength" : 36768, 
-            "byteOffset" : 80424, 
-            "target" : 34962
-        }, 
-        {
-            "buffer" : 0, 
-            "byteLength" : 18384, 
-            "byteOffset" : 117192, 
-            "target" : 34962
-        }
-    ], 
-    "buffers" : [
-        {
-            "byteLength" : 135576, 
-            "uri" : "Duck.bin"
-        }
-    ], 
-    "cameras" : [
-        {
-            "name" : "Camera", 
-            "perspective" : {
-                "aspectRatio" : 1.703595982340029, 
-                "yfov" : 0.5033799409866333, 
-                "zfar" : 100.0, 
-                "znear" : 0.10000000149011612
-            }, 
-            "type" : "perspective"
-        }, 
-        {
-            "name" : "cameraShape1", 
-            "perspective" : {
-                "aspectRatio" : 1.6868377569213957, 
-                "yfov" : 0.563195526599884, 
-                "zfar" : 10000.0, 
-                "znear" : 1.0
-            }, 
-            "type" : "perspective"
-        }
-    ], 
-    "extensions" : {
-        "KHR_lights" : {
-            "lights" : [
-                {
-                    "color" : [
-                        1.0, 
-                        1.0, 
-                        1.0
-                    ], 
-                    "name" : "directionalLightShape1", 
-                    "type" : "directional"
-                }, 
-                {
-                    "color" : [
-                        1.0, 
-                        1.0, 
-                        1.0
-                    ], 
-                    "name" : "Lamp", 
-                    "quadraticAttenuation" : 0.03333335240683057, 
-                    "type" : "point"
-                }, 
-                {
-                    "color" : [
-                        0.0, 
-                        0.0, 
-                        0.0
-                    ], 
-                    "name" : "Ambient_Scene", 
-                    "type" : "ambient"
-                }
-            ]
-        }
-    }, 
-    "extensionsRequired" : [
-        "KHR_materials_common", 
-        "KHR_lights"
-    ], 
-    "extensionsUsed" : [
-        "KHR_materials_common", 
-        "KHR_lights"
-    ], 
-    "images" : [
-        {
-            "uri" : "DuckCM.png"
-        }
-    ], 
-    "materials" : [
-        {
-            "alphaMode" : "BLEND", 
-            "emissiveFactor" : [
-                0.0, 
-                0.0, 
-                0.0
-            ], 
-            "extensions" : {
-                "KHR_materials_common" : {
-                    "ambientFactor" : [
-                        1.0, 
-                        1.0, 
-                        1.0
-                    ], 
-                    "diffuseFactor" : [
-                        0.6400000190734865, 
-                        0.6400000190734865, 
-                        0.6400000190734865, 
-                        1.0
-                    ], 
-                    "diffuseTexture" : {
-                        "index" : 0
-                    }, 
-                    "shininessFactor" : 12.298039215686275, 
-                    "specularFactor" : [
-                        0.0, 
-                        0.0, 
-                        0.0
-                    ], 
-                    "type" : "commonPhong"
-                }
-            }, 
-            "name" : "blinn3"
-        }
-    ], 
-    "meshes" : [
-        {
-            "name" : "LOD3spShape", 
-            "primitives" : [
-                {
-                    "attributes" : {
-                        "NORMAL" : 2, 
-                        "POSITION" : 1, 
-                        "TANGENT" : 3, 
-                        "TEXCOORD_0" : 4
-                    }, 
-                    "indices" : 0, 
-                    "material" : 0
-                }
-            ]
-        }
-    ], 
-    "nodes" : [
-        {
-            "camera" : 0, 
-            "name" : "Correction_Camera", 
-            "rotation" : [
-                -0.7071067690849304, 
-                -0.0, 
-                0.0, 
-                0.7071067690849304
-            ]
-        }, 
-        {
-            "children" : [
-                0
-            ], 
-            "name" : "Camera", 
-            "rotation" : [
-                0.483536034822464, 
-                0.33687159419059753, 
-                -0.20870360732078552, 
-                0.7804827094078064
-            ], 
-            "translation" : [
-                7.481131553649902, 
-                5.34366512298584, 
-                6.5076398849487305
-            ]
-        }, 
-        {
-            "camera" : 1, 
-            "name" : "Correction_camera1", 
-            "rotation" : [
-                -0.7071067690849304, 
-                -0.0, 
-                0.0, 
-                0.7071067690849304
-            ]
-        }, 
-        {
-            "children" : [
-                2
-            ], 
-            "name" : "camera1", 
-            "rotation" : [
-                0.1602192521095276, 
-                0.8370952010154724, 
-                -0.4046676754951477, 
-                0.33142927289009094
-            ], 
-            "scale" : [
-                0.009999999776482582, 
-                0.009999999776482582, 
-                0.009999999776482582
-            ], 
-            "translation" : [
-                4.001130104064941, 
-                4.6326398849487305, 
-                -4.310780048370361
-            ]
-        }, 
-        {
-            "extensions" : {
-                "KHR_lights" : {
-                    "light" : 0
-                }
-            }, 
-            "name" : "Correction_directionalLight1", 
-            "rotation" : [
-                -0.7071067690849304, 
-                -0.0, 
-                0.0, 
-                0.7071067690849304
-            ]
-        }, 
-        {
-            "children" : [
-                4
-            ], 
-            "name" : "directionalLight1", 
-            "rotation" : [
-                0.14142043888568878, 
-                0.9110735058784485, 
-                -0.3837852478027344, 
-                0.051520030945539474
-            ], 
-            "scale" : [
-                0.009999998845160007, 
-                0.009999999776482582, 
-                0.009999999776482582
-            ], 
-            "translation" : [
-                1.4865400791168213, 
-                1.8367199897766113, 
-                -2.9217898845672607
-            ]
-        }, 
-        {
-            "extensions" : {
-                "KHR_lights" : {
-                    "light" : 1
-                }
-            }, 
-            "name" : "Correction_Lamp", 
-            "rotation" : [
-                -0.7071067690849304, 
-                -0.0, 
-                0.0, 
-                0.7071067690849304
-            ]
-        }, 
-        {
-            "children" : [
-                6
-            ], 
-            "name" : "Lamp", 
-            "rotation" : [
-                0.16907575726509094, 
-                0.7558802962303162, 
-                -0.27217137813568115, 
-                0.570947527885437
-            ], 
-            "scale" : [
-                1.0, 
-                1.0, 
-                0.9999999403953552
-            ], 
-            "translation" : [
-                4.076245307922363, 
-                5.903861999511719, 
-                -1.0054539442062378
-            ]
-        }, 
-        {
-            "mesh" : 0, 
-            "name" : "LOD3sp", 
-            "rotation" : [
-                0.7071068286895752, 
-                0.0, 
-                -0.0, 
-                0.7071067094802856
-            ], 
-            "scale" : [
-                0.009999999776482582, 
-                0.009999999776482582, 
-                0.009999999776482582
-            ]
-        }
-    ], 
-    "samplers" : [
-        {}
-    ], 
-    "scene" : 0, 
-    "scenes" : [
-        {
-            "extensions" : {
-                "KHR_lights" : {
-                    "light" : 2
-                }
-            }, 
-            "name" : "Scene", 
-            "nodes" : [
-                5, 
-                3, 
-                8, 
-                7, 
-                1
-            ]
-        }
-    ], 
-    "textures" : [
-        {
-            "sampler" : 0, 
-            "source" : 0
-        }
-    ]
-}

BIN
examples/models/gltf/Duck/glTF-MaterialsCommon/DuckCM.png


+ 0 - 371
examples/models/gltf/Duck/glTF-techniqueWebGL/Duck.gltf

@@ -1,371 +0,0 @@
-{
-    "asset": {
-        "generator": "COLLADA2GLTF",
-        "version": "2.0"
-    },
-    "scene": 0,
-    "scenes": [
-        {
-            "nodes": [
-                0
-            ]
-        }
-    ],
-    "nodes": [
-        {
-            "children": [
-                3,
-                2,
-                1
-            ],
-            "matrix": [
-                0.009999999776482582,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.009999999776482582,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.009999999776482582,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                1.0
-            ]
-        },
-        {
-            "matrix": [
-                -0.9546916484832764,
-                0.2181433141231537,
-                -0.2024286538362503,
-                0.0,
-                0.014671952463686468,
-                0.7138853073120117,
-                0.7001089453697205,
-                0.0,
-                0.2972349226474762,
-                0.6654181480407715,
-                -0.6847409009933472,
-                0.0,
-                148.6540069580078,
-                183.6720123291016,
-                -292.1790161132813,
-                1.0
-            ]
-        },
-        {
-            "matrix": [
-                -0.7289686799049377,
-                0.0,
-                -0.6845470666885376,
-                0.0,
-                -0.4252049028873444,
-                0.7836934328079224,
-                0.4527972936630249,
-                0.0,
-                0.5364750623703003,
-                0.6211478114128113,
-                -0.571287989616394,
-                0.0,
-                400.1130065917969,
-                463.2640075683594,
-                -431.0780334472656,
-                1.0
-            ],
-            "camera": 0
-        },
-        {
-            "mesh": 0
-        }
-    ],
-    "cameras": [
-        {
-            "perspective": {
-                "aspectRatio": 1.5,
-                "yfov": 0.6605925559997559,
-                "zfar": 10000.0,
-                "znear": 1.0
-            },
-            "type": "perspective"
-        }
-    ],
-    "meshes": [
-        {
-            "primitives": [
-                {
-                    "attributes": {
-                        "NORMAL": 1,
-                        "POSITION": 2,
-                        "TEXCOORD_0": 3
-                    },
-                    "indices": 0,
-                    "mode": 4,
-                    "material": 0
-                }
-            ],
-            "name": "LOD3spShape"
-        }
-    ],
-    "accessors": [
-        {
-            "bufferView": 0,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 12636,
-            "max": [
-                2398
-            ],
-            "min": [
-                0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 2399,
-            "max": [
-                0.9995989799499512,
-                0.999580979347229,
-                0.9984359741210938
-            ],
-            "min": [
-                -0.9990839958190918,
-                -1.0,
-                -0.9998319745063782
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 28788,
-            "componentType": 5126,
-            "count": 2399,
-            "max": [
-                96.17990112304688,
-                163.97000122070313,
-                53.92519760131836
-            ],
-            "min": [
-                -69.29850006103516,
-                9.929369926452637,
-                -61.32819747924805
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 2399,
-            "max": [
-                0.9833459854125976,
-                0.9800369739532472
-            ],
-            "min": [
-                0.026409000158309938,
-                0.01996302604675293
-            ],
-            "type": "VEC2"
-        }
-    ],
-    "materials": [
-        {
-            "values": {
-                "ambient": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "diffuse": [
-                    0
-                ],
-                "emission": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "specular": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "shininess": [
-                    0.30000001192092898
-                ],
-                "transparency": [
-                    1.0
-                ]
-            },
-            "technique": 0
-        }
-    ],
-    "textures": [
-        {
-            "sampler": 0,
-            "source": 0
-        }
-    ],
-    "images": [
-        {
-            "uri": "DuckCM.png"
-        }
-    ],
-    "samplers": [
-        {
-            "magFilter": 9729,
-            "minFilter": 9986,
-            "wrapS": 10497,
-            "wrapT": 10497
-        }
-    ],
-    "techniques": [
-        {
-            "attributes": {
-                "a_normal": "normal",
-                "a_position": "position",
-                "a_texcoord0": "texcoord0"
-            },
-            "parameters": {
-                "ambient": {
-                    "type": 35666
-                },
-                "diffuse": {
-                    "type": 35678
-                },
-                "emission": {
-                    "type": 35666
-                },
-                "light0Color": {
-                    "value": [
-                        1.0,
-                        1.0,
-                        1.0
-                    ],
-                    "type": 35665
-                },
-                "light0Transform": {
-                    "semantic": "MODELVIEW",
-                    "node": 1,
-                    "type": 35676
-                },
-                "modelViewMatrix": {
-                    "semantic": "MODELVIEW",
-                    "type": 35676
-                },
-                "normal": {
-                    "semantic": "NORMAL",
-                    "type": 35665
-                },
-                "normalMatrix": {
-                    "semantic": "MODELVIEWINVERSETRANSPOSE",
-                    "type": 35675
-                },
-                "position": {
-                    "semantic": "POSITION",
-                    "type": 35665
-                },
-                "projectionMatrix": {
-                    "semantic": "PROJECTION",
-                    "type": 35676
-                },
-                "shininess": {
-                    "type": 5126
-                },
-                "specular": {
-                    "type": 35666
-                },
-                "texcoord0": {
-                    "semantic": "TEXCOORD_0",
-                    "type": 35665
-                },
-                "transparency": {
-                    "type": 5126
-                }
-            },
-            "program": 0,
-            "states": {
-                "enable": [
-                    2884,
-                    2929
-                ]
-            },
-            "uniforms": {
-                "u_ambient": "ambient",
-                "u_diffuse": "diffuse",
-                "u_emission": "emission",
-                "u_light0Color": "light0Color",
-                "u_light0Transform": "light0Transform",
-                "u_modelViewMatrix": "modelViewMatrix",
-                "u_normalMatrix": "normalMatrix",
-                "u_projectionMatrix": "projectionMatrix",
-                "u_shininess": "shininess",
-                "u_specular": "specular",
-                "u_transparency": "transparency"
-            }
-        }
-    ],
-    "programs": [
-        {
-            "attributes": [
-                "a_normal",
-                "a_position",
-                "a_texcoord0"
-            ],
-            "fragmentShader": 1,
-            "vertexShader": 0
-        }
-    ],
-    "shaders": [
-        {
-            "type": 35633,
-            "uri": "Duck0.vert"
-        },
-        {
-            "type": 35632,
-            "uri": "Duck1.frag"
-        }
-    ],
-    "bufferViews": [
-        {
-            "buffer": 0,
-            "byteOffset": 76768,
-            "byteLength": 25272,
-            "target": 34963
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 0,
-            "byteLength": 57576,
-            "byteStride": 12,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 57576,
-            "byteLength": 19192,
-            "byteStride": 8,
-            "target": 34962
-        }
-    ],
-    "buffers": [
-        {
-            "byteLength": 102040,
-            "uri": "Duck0.bin"
-        }
-    ],
-    "extensionsRequired": [
-        "KHR_technique_webgl"
-    ],
-    "extensionsUsed": [
-        "KHR_technique_webgl"
-    ]
-}

BIN
examples/models/gltf/Duck/glTF-techniqueWebGL/Duck0.bin


+ 0 - 20
examples/models/gltf/Duck/glTF-techniqueWebGL/Duck0.vert

@@ -1,20 +0,0 @@
-precision highp float;
-uniform mat4 u_modelViewMatrix;
-uniform mat4 u_projectionMatrix;
-uniform mat3 u_normalMatrix;
-uniform mat4 u_light0Transform;
-attribute vec3 a_position;
-varying vec3 v_position;
-attribute vec3 a_normal;
-varying vec3 v_normal;
-attribute vec2 a_texcoord0;
-varying vec2 v_texcoord0;
-varying vec3 v_light0Direction;
-void main(void) {
-    vec4 pos = u_modelViewMatrix * vec4(a_position,1.0);
-    v_position = pos.xyz;
-    gl_Position = u_projectionMatrix * pos;
-    v_normal = u_normalMatrix * a_normal;
-    v_texcoord0 = a_texcoord0;
-    v_light0Direction = mat3(u_light0Transform) * vec3(0., 0., 1.);
-}

+ 0 - 38
examples/models/gltf/Duck/glTF-techniqueWebGL/Duck1.frag

@@ -1,38 +0,0 @@
-precision highp float;
-uniform vec4 u_ambient;
-uniform sampler2D u_diffuse;
-uniform vec4 u_emission;
-uniform vec4 u_specular;
-uniform float u_shininess;
-uniform float u_transparency;
-uniform vec3 u_light0Color;
-varying vec3 v_position;
-varying vec3 v_normal;
-varying vec2 v_texcoord0;
-varying vec3 v_light0Direction;
-void main(void) {
-    vec3 normal = normalize(v_normal);
-    vec4 diffuse = texture2D(u_diffuse, v_texcoord0);
-    vec3 diffuseLight = vec3(0.0, 0.0, 0.0);
-    vec3 specular = u_specular.rgb;
-    vec3 specularLight = vec3(0.0, 0.0, 0.0);
-    vec3 emission = u_emission.rgb;
-    vec3 ambient = u_ambient.rgb;
-    vec3 viewDir = -normalize(v_position);
-    vec3 ambientLight = vec3(0.0, 0.0, 0.0);
-    {
-    vec3 l = normalize(v_light0Direction);
-    float attenuation = 1.0;
-    diffuseLight += u_light0Color * max(dot(normal, l), 0.) * attenuation;
-    vec3 h = normalize(l + viewDir);
-    float specularIntensity = max(0., pow(max(dot(normal, h), 0.), u_shininess)) * attenuation;
-    specularLight += u_light0Color * specularIntensity;
-    }
-    ambientLight += vec3(0.2, 0.2, 0.2);
-    vec3 color = vec3(0.0, 0.0, 0.0);
-    color += diffuse.rgb * diffuseLight;
-    color += specular * specularLight;
-    color += emission;
-    color += ambient * ambientLight;
-    gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency);
-}

BIN
examples/models/gltf/Duck/glTF-techniqueWebGL/DuckCM.png


+ 0 - 4512
examples/models/gltf/Monster/glTF-MaterialsCommon/Monster.gltf

@@ -1,4512 +0,0 @@
-{
-    "asset": {
-        "generator": "COLLADA2GLTF",
-        "version": "2.0"
-    },
-    "scene": 0,
-    "scenes": [
-        {
-            "nodes": [
-                0
-            ]
-        }
-    ],
-    "nodes": [
-        {
-            "children": [
-                34,
-                1
-            ],
-            "matrix": [
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                -1.0,
-                0.0,
-                0.0,
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                1.0
-            ]
-        },
-        {
-            "mesh": 0,
-            "skin": 0
-        },
-        {
-            "children": [
-                3
-            ],
-            "translation": [
-                -1.1628570556640626,
-                99.4341278076172,
-                -44.13312911987305
-            ],
-            "rotation": [
-                0.6116809844970703,
-                0.354727566242218,
-                0.6117032766342163,
-                0.3547307252883911
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                18,
-                13,
-                8,
-                4
-            ],
-            "translation": [
-                0.0,
-                142.05380249023438,
-                0.0
-            ],
-            "rotation": [
-                0.009599274955689909,
-                -0.0010376531863585117,
-                0.9151230454444884,
-                0.4030591249465943
-            ],
-            "scale": [
-                0.9999998807907105,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                5
-            ],
-            "translation": [
-                -229.2772979736328,
-                51.57170867919922,
-                3.920083999633789
-            ],
-            "rotation": [
-                -0.0037880190648138529,
-                -0.008884812705218792,
-                -0.6532931327819824,
-                -0.7570434212684631
-            ],
-            "scale": [
-                0.9999997615814208,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                6
-            ],
-            "translation": [
-                -0.000007629389983776491,
-                275.1336059570313,
-                2.38419005427204e-7
-            ],
-            "rotation": [
-                -5.957689381830278e-7,
-                -2.2050939207929336e-7,
-                -0.12589137256145478,
-                -0.9920440316200256
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999998807907105,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                7
-            ],
-            "translation": [
-                -0.000022888199964654636,
-                339.0890197753906,
-                0.0
-            ],
-            "rotation": [
-                8.796734505267523e-7,
-                6.967138688196428e-7,
-                -0.11349057406187058,
-                -0.9935390949249268
-            ],
-            "scale": [
-                1.0,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                0.00001525879997643642,
-                374.1900939941406,
-                0.0
-            ],
-            "rotation": [
-                0.0003985897928941995,
-                0.9999998807907105,
-                3.396345107375965e-7,
-                0.000003304860456410097
-            ],
-            "scale": [
-                1.0,
-                0.9999998211860656,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                9
-            ],
-            "translation": [
-                -101.904296875,
-                96.81950378417968,
-                158.1428985595703
-            ],
-            "rotation": [
-                -0.5870404839515686,
-                -0.4025762379169464,
-                0.37822479009628298,
-                -0.5918291211128235
-            ],
-            "scale": [
-                1.0000005960464478,
-                0.9999995827674866,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                10
-            ],
-            "translation": [
-                0.00001525879997643642,
-                547.8187866210938,
-                0.00003051759995287284
-            ],
-            "rotation": [
-                0.8947640061378479,
-                -0.0988358035683632,
-                0.3619275391101837,
-                -0.2421517372131348
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.0,
-                1.0000005960464478
-            ]
-        },
-        {
-            "children": [
-                11
-            ],
-            "translation": [
-                -0.00006103519990574569,
-                532.7478637695313,
-                0.00003814699812210165
-            ],
-            "rotation": [
-                -0.6655603647232056,
-                0.43436089158058169,
-                -0.24011340737342838,
-                -0.5574095845222473
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                0.9999998807907105
-            ]
-        },
-        {
-            "children": [
-                12
-            ],
-            "translation": [
-                -0.00001525879997643642,
-                286.1813049316406,
-                -0.00005340580173651688
-            ],
-            "rotation": [
-                -0.25593262910842898,
-                0.3620181381702423,
-                0.3219507336616516,
-                -0.8365339636802673
-            ],
-            "scale": [
-                0.9999998807907105,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                166.96800231933598,
-                0.000011444099982327316
-            ],
-            "rotation": [
-                0.7009931206703186,
-                -0.700989305973053,
-                0.09279558807611466,
-                -0.0927983820438385
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999999403953552,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                14
-            ],
-            "translation": [
-                -107.67569732666016,
-                94.97681427001952,
-                -155.40679931640626
-            ],
-            "rotation": [
-                0.5973692536354065,
-                0.3938325047492981,
-                0.3649851679801941,
-                -0.5956777334213257
-            ],
-            "scale": [
-                0.9999995827674866,
-                1.0000005960464478,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                15
-            ],
-            "translation": [
-                -0.00001525879997643642,
-                547.819091796875,
-                0.000003814699994109105
-            ],
-            "rotation": [
-                0.8947624564170837,
-                -0.0988353118300438,
-                -0.3619306385517121,
-                0.24215207993984226
-            ],
-            "scale": [
-                1.0000001192092896,
-                0.9999998211860656,
-                0.9999987483024596
-            ]
-        },
-        {
-            "children": [
-                16
-            ],
-            "translation": [
-                0.0,
-                532.7470092773438,
-                0.0
-            ],
-            "rotation": [
-                0.6655597686767578,
-                -0.4343646466732025,
-                -0.24011126160621644,
-                -0.5574080944061279
-            ],
-            "scale": [
-                0.9999998807907105,
-                0.999999701976776,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                17
-            ],
-            "translation": [
-                0.00001525879997643642,
-                286.1807861328125,
-                -0.000022888199964654636
-            ],
-            "rotation": [
-                0.25593167543411257,
-                -0.3620148301124573,
-                0.3219532072544098,
-                -0.8365347385406494
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                -0.00006103519990574569,
-                166.9690093994141,
-                0.000003814699994109105
-            ],
-            "rotation": [
-                0.7009877562522888,
-                0.7009937167167664,
-                -0.09279301762580872,
-                -0.09280823916196825
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.0,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                19
-            ],
-            "translation": [
-                399.1947937011719,
-                -0.31954190135002139,
-                -0.003049075836315751
-            ],
-            "rotation": [
-                -0.004396272823214531,
-                -0.0025365734472870828,
-                -0.05076199769973755,
-                -0.9986979365348816
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.0,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                32,
-                26,
-                20
-            ],
-            "translation": [
-                402.5515747070313,
-                -0.10438539832830428,
-                -0.002846478950232268
-            ],
-            "rotation": [
-                -0.000004574490503728157,
-                -0.000010040300367109012,
-                0.35299697518348696,
-                -0.9356244802474976
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                21
-            ],
-            "translation": [
-                0.003967284690588713,
-                0.14590449631214146,
-                -43.16883850097656
-            ],
-            "rotation": [
-                0.629516065120697,
-                0.328596293926239,
-                -0.1958152800798416,
-                -0.6763061881065369
-            ],
-            "scale": [
-                0.999999701976776,
-                1.0000003576278689,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                22
-            ],
-            "translation": [
-                -0.0003051759849768132,
-                175.07150268554688,
-                0.00007629390165675431
-            ],
-            "rotation": [
-                -0.5734227895736694,
-                0.18226787447929386,
-                -0.23226681351661686,
-                -0.7642098665237427
-            ],
-            "scale": [
-                1.0000001192092896,
-                1.0000003576278689,
-                0.999999701976776
-            ]
-        },
-        {
-            "children": [
-                23
-            ],
-            "translation": [
-                0.0,
-                370.0174865722656,
-                0.0
-            ],
-            "rotation": [
-                -0.27098795771598818,
-                -0.08019046485424042,
-                0.25969398021698,
-                -0.923414409160614
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                24
-            ],
-            "translation": [
-                0.00006103519990574569,
-                370.0173034667969,
-                0.0
-            ],
-            "rotation": [
-                0.3159535229206085,
-                0.3460785150527954,
-                0.361482322216034,
-                -0.8060604929924011
-            ],
-            "scale": [
-                0.9999998807907105,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                25
-            ],
-            "translation": [
-                0.00005340580173651688,
-                186.69309997558598,
-                0.00003051759995287284
-            ],
-            "rotation": [
-                -0.061906907707452777,
-                -0.6184580326080322,
-                0.322037935256958,
-                -0.7141210436820984
-            ],
-            "scale": [
-                1.000000238418579,
-                1.0000001192092896,
-                0.9999999403953552
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                167.76010131835938,
-                0.0
-            ],
-            "rotation": [
-                -0.18707998096942905,
-                0.18709905445575718,
-                0.6818875074386597,
-                -0.6819269061088562
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999998211860656,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                27
-            ],
-            "translation": [
-                0.0004882809880655259,
-                0.1427001953125,
-                43.16946029663086
-            ],
-            "rotation": [
-                -0.6269798874855042,
-                -0.3371228575706482,
-                -0.20376521348953248,
-                -0.6721045970916748
-            ],
-            "scale": [
-                1.0000003576278689,
-                0.9999996423721314,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                28
-            ],
-            "translation": [
-                0.0,
-                175.07080078125,
-                -0.00006103519990574569
-            ],
-            "rotation": [
-                0.5832023620605469,
-                -0.18192623555660249,
-                -0.20986202359199525,
-                -0.7633713483810425
-            ],
-            "scale": [
-                0.9999997615814208,
-                1.0000001192092896,
-                0.9999998807907105
-            ]
-        },
-        {
-            "children": [
-                29
-            ],
-            "translation": [
-                -0.00006103519990574569,
-                370.0173034667969,
-                -0.00006103519990574569
-            ],
-            "rotation": [
-                0.2709869146347046,
-                0.0801902487874031,
-                0.2596951127052307,
-                -0.923414409160614
-            ],
-            "scale": [
-                1.0000001192092896,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                30
-            ],
-            "translation": [
-                0.00006103519990574569,
-                370.01708984375,
-                0.0
-            ],
-            "rotation": [
-                -0.315950095653534,
-                -0.3460729122161865,
-                0.3614855408668518,
-                -0.8060628175735474
-            ],
-            "scale": [
-                0.9999998807907105,
-                1.0,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                31
-            ],
-            "translation": [
-                -0.000022888199964654636,
-                186.6940155029297,
-                0.000007629389983776491
-            ],
-            "rotation": [
-                0.0619109645485878,
-                0.6184656620025635,
-                0.32203570008277895,
-                -0.7141150236129761
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                167.7620086669922,
-                -0.00006103519990574569
-            ],
-            "rotation": [
-                -0.18710123002529145,
-                -0.1870883852243424,
-                -0.6819262504577637,
-                -0.6818854212760925
-            ],
-            "scale": [
-                1.0,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                33
-            ],
-            "translation": [
-                181.73239135742188,
-                -0.0008544919546693564,
-                0.0025956628378480679
-            ],
-            "rotation": [
-                0.00926738977432251,
-                0.002782774157822132,
-                0.3884811699390412,
-                -0.9214058518409728
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ]
-        },
-        {
-            "translation": [
-                -0.00003051759995287284,
-                345.1398010253906,
-                0.0
-            ],
-            "rotation": [
-                -0.000010299070709152148,
-                -0.000018406668459647336,
-                -0.7070866823196411,
-                -0.7071268558502197
-            ],
-            "scale": [
-                1.0,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                2
-            ],
-            "matrix": [
-                0.02539999969303608,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.02539999969303608,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.02539999969303608,
-                0.0,
-                0.0,
-                0.0,
-                11.732219696044922,
-                1.0
-            ]
-        }
-    ],
-    "meshes": [
-        {
-            "primitives": [
-                {
-                    "attributes": {
-                        "JOINTS_0": 1,
-                        "NORMAL": 2,
-                        "POSITION": 3,
-                        "TEXCOORD_0": 4,
-                        "WEIGHTS_0": 5
-                    },
-                    "indices": 0,
-                    "mode": 4,
-                    "material": 0
-                }
-            ],
-            "name": "monster"
-        }
-    ],
-    "animations": [
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 2,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 2,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 2,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 7
-                },
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 8
-                },
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 9
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 3,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 3,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 3,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 11
-                },
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 12
-                },
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 13
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 18,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 18,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 18,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 15
-                },
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 16
-                },
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 17
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 19,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 19,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 19,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 19
-                },
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 20
-                },
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 21
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 32,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 32,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 32,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 23
-                },
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 24
-                },
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 25
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 33,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 33,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 33,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 27
-                },
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 28
-                },
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 29
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 26,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 26,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 26,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 31
-                },
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 32
-                },
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 33
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 27,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 27,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 27,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 35
-                },
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 36
-                },
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 37
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 28,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 28,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 28,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 39
-                },
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 40
-                },
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 41
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 29,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 29,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 29,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 43
-                },
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 44
-                },
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 45
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 30,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 30,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 30,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 47
-                },
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 48
-                },
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 49
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 31,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 31,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 31,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 51
-                },
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 52
-                },
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 53
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 20,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 20,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 20,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 55
-                },
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 56
-                },
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 57
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 21,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 21,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 21,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 59
-                },
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 60
-                },
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 61
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 22,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 22,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 22,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 63
-                },
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 64
-                },
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 65
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 23,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 23,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 23,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 67
-                },
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 68
-                },
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 69
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 24,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 24,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 24,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 71
-                },
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 72
-                },
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 73
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 25,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 25,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 25,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 75
-                },
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 76
-                },
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 77
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 13,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 13,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 13,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 79
-                },
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 80
-                },
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 81
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 14,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 14,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 14,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 82,
-                    "interpolation": "LINEAR",
-                    "output": 83
-                },
-                {
-                    "input": 82,
-                    "interpolation": "LINEAR",
-                    "output": 84
-                },
-                {
-                    "input": 82,
-                    "interpolation": "LINEAR",
-                    "output": 85
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 15,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 15,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 15,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 86,
-                    "interpolation": "LINEAR",
-                    "output": 87
-                },
-                {
-                    "input": 86,
-                    "interpolation": "LINEAR",
-                    "output": 88
-                },
-                {
-                    "input": 86,
-                    "interpolation": "LINEAR",
-                    "output": 89
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 16,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 16,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 16,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 90,
-                    "interpolation": "LINEAR",
-                    "output": 91
-                },
-                {
-                    "input": 90,
-                    "interpolation": "LINEAR",
-                    "output": 92
-                },
-                {
-                    "input": 90,
-                    "interpolation": "LINEAR",
-                    "output": 93
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 17,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 17,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 17,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 94,
-                    "interpolation": "LINEAR",
-                    "output": 95
-                },
-                {
-                    "input": 94,
-                    "interpolation": "LINEAR",
-                    "output": 96
-                },
-                {
-                    "input": 94,
-                    "interpolation": "LINEAR",
-                    "output": 97
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 8,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 8,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 8,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 98,
-                    "interpolation": "LINEAR",
-                    "output": 99
-                },
-                {
-                    "input": 98,
-                    "interpolation": "LINEAR",
-                    "output": 100
-                },
-                {
-                    "input": 98,
-                    "interpolation": "LINEAR",
-                    "output": 101
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 9,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 9,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 9,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 102,
-                    "interpolation": "LINEAR",
-                    "output": 103
-                },
-                {
-                    "input": 102,
-                    "interpolation": "LINEAR",
-                    "output": 104
-                },
-                {
-                    "input": 102,
-                    "interpolation": "LINEAR",
-                    "output": 105
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 10,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 10,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 10,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 106,
-                    "interpolation": "LINEAR",
-                    "output": 107
-                },
-                {
-                    "input": 106,
-                    "interpolation": "LINEAR",
-                    "output": 108
-                },
-                {
-                    "input": 106,
-                    "interpolation": "LINEAR",
-                    "output": 109
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 11,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 11,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 11,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 110,
-                    "interpolation": "LINEAR",
-                    "output": 111
-                },
-                {
-                    "input": 110,
-                    "interpolation": "LINEAR",
-                    "output": 112
-                },
-                {
-                    "input": 110,
-                    "interpolation": "LINEAR",
-                    "output": 113
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 12,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 12,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 12,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 114,
-                    "interpolation": "LINEAR",
-                    "output": 115
-                },
-                {
-                    "input": 114,
-                    "interpolation": "LINEAR",
-                    "output": 116
-                },
-                {
-                    "input": 114,
-                    "interpolation": "LINEAR",
-                    "output": 117
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 4,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 4,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 4,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 118,
-                    "interpolation": "LINEAR",
-                    "output": 119
-                },
-                {
-                    "input": 118,
-                    "interpolation": "LINEAR",
-                    "output": 120
-                },
-                {
-                    "input": 118,
-                    "interpolation": "LINEAR",
-                    "output": 121
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 5,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 5,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 5,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 122,
-                    "interpolation": "LINEAR",
-                    "output": 123
-                },
-                {
-                    "input": 122,
-                    "interpolation": "LINEAR",
-                    "output": 124
-                },
-                {
-                    "input": 122,
-                    "interpolation": "LINEAR",
-                    "output": 125
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 6,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 6,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 6,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 126,
-                    "interpolation": "LINEAR",
-                    "output": 127
-                },
-                {
-                    "input": 126,
-                    "interpolation": "LINEAR",
-                    "output": 128
-                },
-                {
-                    "input": 126,
-                    "interpolation": "LINEAR",
-                    "output": 129
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 7,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 7,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 7,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 130,
-                    "interpolation": "LINEAR",
-                    "output": 131
-                },
-                {
-                    "input": 130,
-                    "interpolation": "LINEAR",
-                    "output": 132
-                },
-                {
-                    "input": 130,
-                    "interpolation": "LINEAR",
-                    "output": 133
-                }
-            ]
-        }
-    ],
-    "skins": [
-        {
-            "inverseBindMatrices": 134,
-            "skeleton": 2,
-            "joints": [
-                2,
-                3,
-                18,
-                19,
-                32,
-                33,
-                26,
-                27,
-                28,
-                29,
-                30,
-                31,
-                20,
-                21,
-                22,
-                23,
-                24,
-                25,
-                8,
-                9,
-                10,
-                11,
-                12,
-                13,
-                14,
-                15,
-                16,
-                17,
-                4,
-                5,
-                6,
-                7
-            ],
-            "name": "Armature"
-        }
-    ],
-    "accessors": [
-        {
-            "bufferView": 0,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 2652,
-            "max": [
-                779
-            ],
-            "min": [
-                0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 780,
-            "max": [
-                30,
-                30,
-                29,
-                24
-            ],
-            "min": [
-                0,
-                0,
-                0,
-                0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 780,
-            "max": [
-                0.9988760948181152,
-                0.9998818039894104,
-                0.9998157024383544
-            ],
-            "min": [
-                -0.9988760948181152,
-                -0.9980314373970032,
-                -0.9998273253440856
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 9360,
-            "componentType": 5126,
-            "count": 780,
-            "max": [
-                7.313104152679443,
-                25.414928436279298,
-                33.43614959716797
-            ],
-            "min": [
-                -15.450709342956545,
-                -33.22121047973633,
-                -1.280419945716858
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 6240,
-            "componentType": 5126,
-            "count": 780,
-            "max": [
-                1.009609937667847,
-                0.9916410446166992
-            ],
-            "min": [
-                0.005085944663733244,
-                -0.07434999942779541
-            ],
-            "type": "VEC2"
-        },
-        {
-            "bufferView": 3,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 780,
-            "max": [
-                1.0,
-                0.9999979734420776,
-                0.9997379779815674,
-                0.9927020072937012
-            ],
-            "min": [
-                0.0000019999999949504856,
-                0.0,
-                0.0,
-                0.0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                688.0628662109375,
-                119.62960052490236,
-                436.8376770019531
-            ],
-            "min": [
-                688.0628662109375,
-                119.62960052490236,
-                436.8376770019531
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.3873895406723023,
-                0.5915361642837524,
-                0.5915565490722656,
-                -0.3873957097530365
-            ],
-            "min": [
-                0.3873895406723023,
-                0.5915361642837524,
-                0.5915565490722656,
-                -0.3873957097530365
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 1212,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000003576278689,
-                1.0000003576278689,
-                1.0
-            ],
-            "min": [
-                1.0000003576278689,
-                1.0000003576278689,
-                1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 404,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 2424,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00003051759995287284,
-                142.05380249023438,
-                0.00001525879997643642
-            ],
-            "min": [
-                -0.00003051759995287284,
-                142.05380249023438,
-                0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 1616,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.07529418170452118,
-                0.08668317645788193,
-                0.932952642440796,
-                0.4080679714679718
-            ],
-            "min": [
-                -0.05637124180793762,
-                -0.08988404273986817,
-                0.9125778675079346,
-                0.3448300063610077
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 3636,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000001311302185,
-                1.000001072883606,
-                1.0000008344650269
-            ],
-            "min": [
-                0.9999995827674866,
-                0.9999996423721314,
-                0.999998927116394
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 808,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 4848,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                399.22900390625,
-                -0.3109740912914276,
-                0.033753398805856708
-            ],
-            "min": [
-                399.1907958984375,
-                -0.3193970024585724,
-                -0.04251528158783913
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 3232,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.04481140151619911,
-                0.09621308743953704,
-                -0.045223526656627658,
-                -0.9873183369636536
-            ],
-            "min": [
-                -0.05383916571736336,
-                -0.10072088986635208,
-                -0.1102677807211876,
-                -0.99887216091156
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 6060,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000004768371585,
-                1.0000009536743165,
-                1.000001072883606
-            ],
-            "min": [
-                0.9999988675117492,
-                0.9999990463256836,
-                0.9999992847442628
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1212,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 7272,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                402.6142883300781,
-                -0.1111449971795082,
-                0.005645751953125
-            ],
-            "min": [
-                402.5600891113281,
-                -0.13861079514026646,
-                -0.010498049668967724
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 4848,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.02916480414569378,
-                0.13094337284564973,
-                0.3312646150588989,
-                -0.9394612908363342
-            ],
-            "min": [
-                -0.029069917276501657,
-                -0.1322847604751587,
-                0.12861666083335877,
-                -0.9855769276618958
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 8484,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000014305114749,
-                1.0000007152557374,
-                1.0000009536743165
-            ],
-            "min": [
-                0.9999995231628418,
-                0.999998927116394,
-                0.9999986886978148
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1616,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 9696,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                181.7324981689453,
-                0.001678466913290322,
-                0.0021362300030887129
-            ],
-            "min": [
-                181.7321929931641,
-                0.0012207030085846782,
-                0.0019226069562137128
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 6464,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.11948085576295853,
-                0.21782369911670688,
-                0.75827956199646,
-                -0.6160333156585693
-            ],
-            "min": [
-                -0.22238001227378849,
-                -0.14779649674892426,
-                0.6617863774299622,
-                -0.7142592668533325
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 10908,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000007152557374,
-                1.0000011920928956,
-                1.0000008344650269
-            ],
-            "min": [
-                0.9999991059303284,
-                0.9999993443489076,
-                0.9999991655349731
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2020,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 12120,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00003051759995287284,
-                345.13958740234377,
-                0.00006103519990574569
-            ],
-            "min": [
-                -0.00003051759995287284,
-                345.13958740234377,
-                0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 8080,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.000013882177881896496,
-                -0.00001729086579871364,
-                -0.7070867419242859,
-                -0.707126796245575
-            ],
-            "min": [
-                -0.000013882177881896496,
-                -0.00001729086579871364,
-                -0.7070867419242859,
-                -0.707126796245575
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 13332,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999999403953552,
-                1.0,
-                1.0
-            ],
-            "min": [
-                0.9999999403953552,
-                1.0,
-                1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2424,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 14544,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                11.093509674072266,
-                2.570708990097046,
-                43.12179946899414
-            ],
-            "min": [
-                -11.20617961883545,
-                -2.25006103515625,
-                41.65719985961914
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 9696,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.4268832206726074,
-                0.019551469013094907,
-                -0.004996071103960276,
-                -0.6169270277023315
-            ],
-            "min": [
-                -0.7079461216926575,
-                -0.4286864697933197,
-                -0.49198582768440249,
-                -0.8074727654457092
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 15756,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000009536743165,
-                1.0000016689300538,
-                1.0000014305114749
-            ],
-            "min": [
-                0.9999987483024596,
-                0.9999995231628418,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2828,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 16968,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.0001220699996338226,
-                175.07080078125,
-                -0.00006103519990574569
-            ],
-            "min": [
-                -0.0001220699996338226,
-                175.07080078125,
-                -0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 11312,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.5104442834854126,
-                0.7555050253868103,
-                0.02008049003779888,
-                -0.6120374202728272
-            ],
-            "min": [
-                0.19047075510025025,
-                0.03135304525494576,
-                -0.3887938261032105,
-                -0.9229499697685242
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 18180,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000011920928956,
-                1.0000003576278689,
-                1.000001311302185
-            ],
-            "min": [
-                0.9999988675117492,
-                0.9999983906745912,
-                0.9999996423721314
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3232,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 19392,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                370.0173034667969,
-                -0.00001525879997643642
-            ],
-            "min": [
-                0.0,
-                370.0173034667969,
-                -0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 12928,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.6011126041412354,
-                0.07422994077205658,
-                0.5760638117790222,
-                -0.5518321394920349
-            ],
-            "min": [
-                0.3708511292934418,
-                0.04792150110006333,
-                0.35539764165878298,
-                -0.8547816872596741
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 20604,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999999403953552,
-                1.0000016689300538,
-                1.0000005960464478
-            ],
-            "min": [
-                0.9999990463256836,
-                0.9999995827674866,
-                0.9999995231628418
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3636,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 21816,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00006103519990574569,
-                370.01702880859377,
-                0.000003814699994109105
-            ],
-            "min": [
-                -0.00006103519990574569,
-                370.01702880859377,
-                0.000003814699994109105
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 14544,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.12159590423107149,
-                -0.592817485332489,
-                0.08611587435007096,
-                -0.6480545401573181
-            ],
-            "min": [
-                -0.0019206339493393896,
-                -0.6926255822181702,
-                -0.40358710289001467,
-                -0.7833981513977051
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 23028,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000011920928956,
-                0.9999997615814208,
-                1.0000003576278689
-            ],
-            "min": [
-                0.9999993443489076,
-                0.9999983906745912,
-                0.9999982714653016
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 4040,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 24240,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00003051759995287284,
-                186.6938018798828,
-                0.00006103519990574569
-            ],
-            "min": [
-                0.00003051759995287284,
-                186.6938018798828,
-                0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 16160,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.1426013559103012,
-                0.6280872225761414,
-                0.4596095085144043,
-                -0.6589219570159912
-            ],
-            "min": [
-                0.035743311047554019,
-                0.5803613662719727,
-                -0.23170951008796693,
-                -0.7778217792510986
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 25452,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000030994415284,
-                1.0000009536743165,
-                1.0000015497207642
-            ],
-            "min": [
-                0.9999990463256836,
-                0.999998152256012,
-                0.9999975562095642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 4444,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 26664,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                167.7620086669922,
-                0.0
-            ],
-            "min": [
-                0.0,
-                167.7620086669922,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 17776,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.1871013194322586,
-                -0.18708844482898716,
-                -0.6819262504577637,
-                -0.6818854212760925
-            ],
-            "min": [
-                -0.1871013194322586,
-                -0.18708844482898716,
-                -0.6819262504577637,
-                -0.6818854212760925
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 27876,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999998211860656,
-                1.0000001192092896,
-                1.0000001192092896
-            ],
-            "min": [
-                0.9999998211860656,
-                1.0000001192092896,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 4848,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 29088,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                11.20654010772705,
-                2.539275884628296,
-                -41.6572380065918
-            ],
-            "min": [
-                -11.0931396484375,
-                -2.281677007675171,
-                -43.12186050415039
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 19392,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7087063193321228,
-                0.41781315207481387,
-                0.0004008882970083505,
-                -0.6171950101852417
-            ],
-            "min": [
-                0.4269197881221771,
-                -0.018646057695150377,
-                -0.4820735454559326,
-                -0.8132827877998352
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 30300,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000001072883606,
-                1.0000005960464478,
-                1.0000015497207642
-            ],
-            "min": [
-                0.9999989867210388,
-                0.9999990463256836,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 5252,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 31512,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.0001220699996338226,
-                175.07159423828126,
-                0.0
-            ],
-            "min": [
-                -0.0001220699996338226,
-                175.07159423828126,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 21008,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.1727268248796463,
-                -0.026490267366170884,
-                -0.014631116762757302,
-                -0.6249508857727051
-            ],
-            "min": [
-                -0.5201118588447571,
-                -0.7482331991195679,
-                -0.36269164085388186,
-                -0.9203588366508484
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 32724,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0,
-                1.000001311302185,
-                1.0000009536743165
-            ],
-            "min": [
-                0.9999985098838806,
-                0.9999993443489076,
-                0.999998927116394
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 5656,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 33936,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                370.0174865722656,
-                -0.00006103519990574569
-            ],
-            "min": [
-                0.0,
-                370.0174865722656,
-                -0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 22624,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.3708538711071015,
-                -0.04598140716552735,
-                0.5860890746116638,
-                -0.5294864177703857
-            ],
-            "min": [
-                -0.6115797162055969,
-                -0.07423046976327896,
-                0.3553973138332367,
-                -0.8547807335853577
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 35148,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000003576278689,
-                1.0000014305114749,
-                1.0000005960464478
-            ],
-            "min": [
-                0.9999993443489076,
-                0.999999701976776,
-                0.999999463558197
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 6060,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 36360,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.000022888199964654636,
-                370.0171813964844,
-                0.00001525879997643642
-            ],
-            "min": [
-                0.000022888199964654636,
-                370.0171813964844,
-                0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 24240,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.031680915504693988,
-                0.7147775292396545,
-                0.0212766882032156,
-                -0.649734377861023
-            ],
-            "min": [
-                -0.10804452747106552,
-                0.5687218904495239,
-                -0.41146859526634219,
-                -0.7937191724777222
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 37572,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000008344650269,
-                0.9999993443489076,
-                1.0000011920928956
-            ],
-            "min": [
-                0.999998927116394,
-                0.9999974966049194,
-                0.9999998211860656
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 6464,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 38784,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00003051759995287284,
-                186.69309997558598,
-                0.00006103519990574569
-            ],
-            "min": [
-                -0.00003051759995287284,
-                186.69309997558598,
-                0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 25856,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.03588018566370011,
-                -0.5803508758544922,
-                0.4588881731033325,
-                -0.6592705845832825
-            ],
-            "min": [
-                -0.1426122784614563,
-                -0.6280779242515564,
-                -0.23170490562915806,
-                -0.7778291702270508
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 39996,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000035762786866,
-                1.000001311302185,
-                1.0000022649765017
-            ],
-            "min": [
-                0.9999989867210388,
-                0.9999991655349731,
-                0.9999974966049194
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 6868,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 41208,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0001220699996338226,
-                167.7602996826172,
-                0.0
-            ],
-            "min": [
-                0.0001220699996338226,
-                167.7602996826172,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 27472,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.18708005547523497,
-                0.18709906935691837,
-                0.681887686252594,
-                -0.6819267868995667
-            ],
-            "min": [
-                -0.18708005547523497,
-                0.18709906935691837,
-                0.681887686252594,
-                -0.6819267868995667
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 42420,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0,
-                0.9999998211860656,
-                0.9999998211860656
-            ],
-            "min": [
-                1.0,
-                0.9999998211860656,
-                0.9999998211860656
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 7272,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 43632,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -64.18634033203125,
-                123.89100646972656,
-                -121.35540008544922
-            ],
-            "min": [
-                -122.68409729003906,
-                86.45635986328125,
-                -181.9196929931641
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 29088,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.5137400031089783,
-                0.5910477638244629,
-                0.487165242433548,
-                -0.5562912821769714
-            ],
-            "min": [
-                0.2358280718326569,
-                0.4349341094493866,
-                0.06352268159389496,
-                -0.7825927138328552
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 44844,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000014305114749,
-                1.000001072883606,
-                1.0000015497207642
-            ],
-            "min": [
-                0.9999995827674866,
-                0.9999990463256836,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 7676,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 46056,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00001525879997643642,
-                547.8192138671875,
-                0.0
-            ],
-            "min": [
-                -0.00001525879997643642,
-                547.8192138671875,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 30704,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7711299657821655,
-                -0.20974168181419373,
-                -0.21020625531673432,
-                0.7666990756988525
-            ],
-            "min": [
-                0.5196717977523804,
-                -0.31293177604675295,
-                -0.31192100048065188,
-                0.5138788223266602
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 47268,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0,
-                1.0000008344650269,
-                1.0000003576278689
-            ],
-            "min": [
-                0.9999988079071044,
-                0.9999983906745912,
-                0.9999988079071044
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 8080,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 48480,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00003051759995287284,
-                532.7470703125,
-                0.00003051759995287284
-            ],
-            "min": [
-                0.00003051759995287284,
-                532.7470703125,
-                0.00003051759995287284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 32320,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7953221201896668,
-                -0.3406173884868622,
-                0.024828489869832997,
-                -0.4618827998638153
-            ],
-            "min": [
-                0.4422449469566345,
-                -0.6381375789642334,
-                -0.06888412684202194,
-                -0.7050687074661255
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 49692,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000000238418579,
-                1.0000009536743165,
-                1.000000238418579
-            ],
-            "min": [
-                0.9999983906745912,
-                0.9999992847442628,
-                0.999998152256012
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 8484,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 50904,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00001525879997643642,
-                286.1808776855469,
-                -0.00001525879997643642
-            ],
-            "min": [
-                -0.00001525879997643642,
-                286.1808776855469,
-                -0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 33936,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.34342503547668459,
-                -0.36089563369750979,
-                0.48122185468673708,
-                -0.702274739742279
-            ],
-            "min": [
-                -0.055049605667591098,
-                -0.4634150564670563,
-                0.027654040604829789,
-                -0.9122520089149476
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 52116,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000001072883606,
-                1.0000007152557374,
-                1.0000005960464478
-            ],
-            "min": [
-                0.9999991655349731,
-                0.9999993443489076,
-                0.9999994039535524
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 8888,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 53328,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                166.96910095214845,
-                0.00003051759995287284
-            ],
-            "min": [
-                0.0,
-                166.96910095214845,
-                0.00003051759995287284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 35552,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7009878754615784,
-                0.7009936571121216,
-                -0.0927930474281311,
-                -0.09280822426080704
-            ],
-            "min": [
-                0.7009878754615784,
-                0.7009936571121216,
-                -0.0927930474281311,
-                -0.09280822426080704
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 54540,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0,
-                1.0,
-                0.9999997615814208
-            ],
-            "min": [
-                1.0,
-                1.0,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 9292,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 55752,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -57.822750091552737,
-                125.41189575195313,
-                183.63040161132813
-            ],
-            "min": [
-                -117.2886962890625,
-                87.447509765625,
-                124.98169708251952
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 37168,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.226774200797081,
-                -0.4451811611652374,
-                0.49656349420547488,
-                -0.551270604133606
-            ],
-            "min": [
-                -0.5029988884925842,
-                -0.6104490756988525,
-                0.05997595936059952,
-                -0.7728594541549683
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 56964,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000011920928956,
-                1.0000030994415284,
-                1.0000004768371585
-            ],
-            "min": [
-                0.999997854232788,
-                1.0000004768371585,
-                0.9999985098838806
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 9696,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 58176,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00005722049900214188,
-                547.8187866210938,
-                -0.00006103519990574569
-            ],
-            "min": [
-                0.00005722049900214188,
-                547.8187866210938,
-                -0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 38784,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7720406651496887,
-                -0.2091858983039856,
-                0.3122869431972504,
-                -0.5125147700309753
-            ],
-            "min": [
-                0.5071884989738464,
-                -0.31631752848625185,
-                0.2051556557416916,
-                -0.7749928832054138
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 59388,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000009536743165,
-                1.0000015497207642,
-                0.9999998211860656
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999995231628418,
-                0.999998152256012
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 10100,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 60600,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00003051759995287284,
-                532.7478637695313,
-                0.00003051759995287284
-            ],
-            "min": [
-                -0.00003051759995287284,
-                532.7478637695313,
-                0.00003051759995287284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 40400,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.4422548413276673,
-                0.6402692198753357,
-                0.02487970888614655,
-                -0.443508505821228
-            ],
-            "min": [
-                -0.8058043718338013,
-                0.33987849950790408,
-                -0.06919090449810028,
-                -0.7087214589118958
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 61812,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000015497207642,
-                1.000002145767212,
-                1.0000017881393433
-            ],
-            "min": [
-                0.9999986886978148,
-                0.999999463558197,
-                0.9999991059303284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 10504,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 63024,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00004577639992930927,
-                286.1813049316406,
-                0.00003051759995287284
-            ],
-            "min": [
-                -0.00004577639992930927,
-                286.1813049316406,
-                0.00003051759995287284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 42016,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.05504757910966873,
-                0.4637857675552368,
-                0.4812243282794953,
-                -0.702268123626709
-            ],
-            "min": [
-                -0.34342628717422488,
-                0.34244170784950259,
-                0.027664778754115106,
-                -0.9120306372642516
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 64236,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000009536743165,
-                1.0000009536743165,
-                1.0000007152557374
-            ],
-            "min": [
-                0.9999988675117492,
-                0.9999990463256836,
-                0.9999987483024596
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 10908,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 65448,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00006103519990574569,
-                166.9678955078125,
-                -0.000007629389983776491
-            ],
-            "min": [
-                0.00006103519990574569,
-                166.9678955078125,
-                -0.000007629389983776491
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 43632,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7009931206703186,
-                -0.7009892463684082,
-                0.09279564768075945,
-                -0.09279833734035492
-            ],
-            "min": [
-                0.7009931206703186,
-                -0.7009892463684082,
-                0.09279564768075945,
-                -0.09279833734035492
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 66660,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999998211860656,
-                0.9999998211860656,
-                0.9999999403953552
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999998211860656,
-                0.9999999403953552
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 11312,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 67872,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -216.10679626464845,
-                76.14641571044922,
-                53.84222030639649
-            ],
-            "min": [
-                -229.81809997558598,
-                48.92041015625,
-                -46.19350051879883
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 45248,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.1075008511543274,
-                0.04972844943404198,
-                -0.5993947386741638,
-                -0.7506681680679321
-            ],
-            "min": [
-                -0.1541447639465332,
-                -0.08161687850952149,
-                -0.6573381423950195,
-                -0.7955794930458069
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 69084,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000011920928956,
-                1.0000014305114749,
-                1.0000009536743165
-            ],
-            "min": [
-                0.999999701976776,
-                0.9999993443489076,
-                0.9999991655349731
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 11716,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 70296,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00006103519990574569,
-                275.1336975097656,
-                -0.00001525879997643642
-            ],
-            "min": [
-                0.00006103519990574569,
-                275.1336975097656,
-                -0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 46864,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.039355143904685977,
-                0.004996879026293755,
-                -0.12579287588596345,
-                -0.991262674331665
-            ],
-            "min": [
-                -0.02954175136983395,
-                -0.0037506259977817537,
-                -0.12589138746261598,
-                -0.9920437335968018
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 71508,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.999998927116394,
-                1.0,
-                1.0000004768371585
-            ],
-            "min": [
-                0.9999986886978148,
-                0.9999982118606569,
-                0.999998927116394
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 12120,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 72720,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                339.0890197753906,
-                -0.000007629389983776491
-            ],
-            "min": [
-                0.0,
-                339.0890197753906,
-                -0.000007629389983776491
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 48480,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.000001511155801381392,
-                3.055855870570668e-7,
-                -0.11349041759967804,
-                -0.9935391545295716
-            ],
-            "min": [
-                0.000001511155801381392,
-                3.055855870570668e-7,
-                -0.11349041759967804,
-                -0.9935391545295716
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 73932,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000000238418579,
-                1.0000003576278689,
-                1.0
-            ],
-            "min": [
-                1.000000238418579,
-                1.0000003576278689,
-                1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 12524,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 75144,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0006713870097883046,
-                374.1894836425781,
-                0.00009918209980241954
-            ],
-            "min": [
-                0.0006713870097883046,
-                374.1894836425781,
-                0.00009918209980241954
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 50096,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0003971835249103606,
-                0.9999987483024596,
-                8.442460170954291e-7,
-                -1.539886227419629e-7
-            ],
-            "min": [
-                0.0003971835249103606,
-                0.9999987483024596,
-                8.442460170954291e-7,
-                -1.539886227419629e-7
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 76356,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999921321868897,
-                0.9999988079071044,
-                0.9999999403953552
-            ],
-            "min": [
-                0.9999921321868897,
-                0.9999988079071044,
-                0.9999999403953552
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 7,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 32,
-            "max": [
-                35.948368072509769,
-                38.693748474121097,
-                39.37006759643555,
-                0.0,
-                38.92030715942383,
-                39.36031723022461,
-                30.0275993347168,
-                0.0,
-                39.36031723022461,
-                38.83974075317383,
-                38.96176910400391,
-                0.0,
-                1034.1197509765626,
-                867.171142578125,
-                611.7998657226563,
-                1.0
-            ],
-            "min": [
-                -35.94831848144531,
-                -38.47134017944336,
-                -39.37006759643555,
-                0.0,
-                -38.920318603515628,
-                -38.919979095458987,
-                -30.0275993347168,
-                0.0,
-                -39.3596076965332,
-                -38.88496017456055,
-                -38.82202911376953,
-                0.0,
-                -1323.6492919921876,
-                -1186.5914306640626,
-                -632.5089111328125,
-                1.0
-            ],
-            "type": "MAT4"
-        }
-    ],
-    "materials": [
-        {
-            "extensions": {
-                "KHR_materials_common": {
-                    "doubleSided": false,
-                    "jointCount": 32,
-                    "technique": "BLINN",
-                    "transparent": false,
-                    "values": {
-                        "ambient": [
-                            0.0,
-                            0.0,
-                            0.0,
-                            1.0
-                        ],
-                        "diffuse": [
-                            0
-                        ],
-                        "emission": [
-                            0.0,
-                            0.0,
-                            0.0,
-                            1.0
-                        ],
-                        "specular": [
-                            0.10000000149011612,
-                            0.10000000149011612,
-                            0.10000000149011612,
-                            1.0
-                        ],
-                        "shininess": [
-                            50.0
-                        ],
-                        "transparency": [
-                            1.0
-                        ]
-                    },
-                    "name": "monster-effect"
-                }
-            },
-            "name": "monster-effect"
-        }
-    ],
-    "textures": [
-        {
-            "sampler": 0,
-            "source": 0
-        }
-    ],
-    "images": [
-        {
-            "uri": "Monster.jpg"
-        }
-    ],
-    "samplers": [
-        {
-            "magFilter": 9729,
-            "minFilter": 9986,
-            "wrapS": 10497,
-            "wrapT": 10497
-        }
-    ],
-    "bufferViews": [
-        {
-            "buffer": 0,
-            "byteOffset": 187936,
-            "byteLength": 5304,
-            "target": 34963
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 162528,
-            "byteLength": 12480,
-            "byteStride": 8,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 143808,
-            "byteLength": 18720,
-            "byteStride": 12,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 53760,
-            "byteLength": 12480,
-            "byteStride": 16,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 175008,
-            "byteLength": 12928
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 66240,
-            "byteLength": 77568
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 2048,
-            "byteLength": 51712
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 0,
-            "byteLength": 2048
-        }
-    ],
-    "buffers": [
-        {
-            "byteLength": 193240,
-            "uri": "Monster0.bin"
-        }
-    ],
-    "extensionsRequired": [
-        "KHR_materials_common"
-    ],
-    "extensionsUsed": [
-        "KHR_materials_common"
-    ]
-}

BIN
examples/models/gltf/Monster/glTF-MaterialsCommon/Monster.jpg


BIN
examples/models/gltf/Monster/glTF-MaterialsCommon/Monster0.bin


+ 0 - 4613
examples/models/gltf/Monster/glTF-techniqueWebGL/Monster.gltf

@@ -1,4613 +0,0 @@
-{
-    "asset": {
-        "generator": "COLLADA2GLTF",
-        "version": "2.0"
-    },
-    "scene": 0,
-    "scenes": [
-        {
-            "nodes": [
-                0
-            ]
-        }
-    ],
-    "nodes": [
-        {
-            "children": [
-                34,
-                1
-            ],
-            "matrix": [
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                -1.0,
-                0.0,
-                0.0,
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                1.0
-            ]
-        },
-        {
-            "mesh": 0,
-            "skin": 0
-        },
-        {
-            "children": [
-                3
-            ],
-            "translation": [
-                -1.1628570556640626,
-                99.4341278076172,
-                -44.13312911987305
-            ],
-            "rotation": [
-                0.6116809844970703,
-                0.354727566242218,
-                0.6117032766342163,
-                0.3547307252883911
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                18,
-                13,
-                8,
-                4
-            ],
-            "translation": [
-                0.0,
-                142.05380249023438,
-                0.0
-            ],
-            "rotation": [
-                0.009599274955689909,
-                -0.0010376531863585117,
-                0.9151230454444884,
-                0.4030591249465943
-            ],
-            "scale": [
-                0.9999998807907105,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                5
-            ],
-            "translation": [
-                -229.2772979736328,
-                51.57170867919922,
-                3.920083999633789
-            ],
-            "rotation": [
-                -0.0037880190648138529,
-                -0.008884812705218792,
-                -0.6532931327819824,
-                -0.7570434212684631
-            ],
-            "scale": [
-                0.9999997615814208,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                6
-            ],
-            "translation": [
-                -0.000007629389983776491,
-                275.1336059570313,
-                2.38419005427204e-7
-            ],
-            "rotation": [
-                -5.957689381830278e-7,
-                -2.2050939207929336e-7,
-                -0.12589137256145478,
-                -0.9920440316200256
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999998807907105,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                7
-            ],
-            "translation": [
-                -0.000022888199964654636,
-                339.0890197753906,
-                0.0
-            ],
-            "rotation": [
-                8.796734505267523e-7,
-                6.967138688196428e-7,
-                -0.11349057406187058,
-                -0.9935390949249268
-            ],
-            "scale": [
-                1.0,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                0.00001525879997643642,
-                374.1900939941406,
-                0.0
-            ],
-            "rotation": [
-                0.0003985897928941995,
-                0.9999998807907105,
-                3.396345107375965e-7,
-                0.000003304860456410097
-            ],
-            "scale": [
-                1.0,
-                0.9999998211860656,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                9
-            ],
-            "translation": [
-                -101.904296875,
-                96.81950378417968,
-                158.1428985595703
-            ],
-            "rotation": [
-                -0.5870404839515686,
-                -0.4025762379169464,
-                0.37822479009628298,
-                -0.5918291211128235
-            ],
-            "scale": [
-                1.0000005960464478,
-                0.9999995827674866,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                10
-            ],
-            "translation": [
-                0.00001525879997643642,
-                547.8187866210938,
-                0.00003051759995287284
-            ],
-            "rotation": [
-                0.8947640061378479,
-                -0.0988358035683632,
-                0.3619275391101837,
-                -0.2421517372131348
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.0,
-                1.0000005960464478
-            ]
-        },
-        {
-            "children": [
-                11
-            ],
-            "translation": [
-                -0.00006103519990574569,
-                532.7478637695313,
-                0.00003814699812210165
-            ],
-            "rotation": [
-                -0.6655603647232056,
-                0.43436089158058169,
-                -0.24011340737342838,
-                -0.5574095845222473
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                0.9999998807907105
-            ]
-        },
-        {
-            "children": [
-                12
-            ],
-            "translation": [
-                -0.00001525879997643642,
-                286.1813049316406,
-                -0.00005340580173651688
-            ],
-            "rotation": [
-                -0.25593262910842898,
-                0.3620181381702423,
-                0.3219507336616516,
-                -0.8365339636802673
-            ],
-            "scale": [
-                0.9999998807907105,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                166.96800231933598,
-                0.000011444099982327316
-            ],
-            "rotation": [
-                0.7009931206703186,
-                -0.700989305973053,
-                0.09279558807611466,
-                -0.0927983820438385
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999999403953552,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                14
-            ],
-            "translation": [
-                -107.67569732666016,
-                94.97681427001952,
-                -155.40679931640626
-            ],
-            "rotation": [
-                0.5973692536354065,
-                0.3938325047492981,
-                0.3649851679801941,
-                -0.5956777334213257
-            ],
-            "scale": [
-                0.9999995827674866,
-                1.0000005960464478,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                15
-            ],
-            "translation": [
-                -0.00001525879997643642,
-                547.819091796875,
-                0.000003814699994109105
-            ],
-            "rotation": [
-                0.8947624564170837,
-                -0.0988353118300438,
-                -0.3619306385517121,
-                0.24215207993984226
-            ],
-            "scale": [
-                1.0000001192092896,
-                0.9999998211860656,
-                0.9999987483024596
-            ]
-        },
-        {
-            "children": [
-                16
-            ],
-            "translation": [
-                0.0,
-                532.7470092773438,
-                0.0
-            ],
-            "rotation": [
-                0.6655597686767578,
-                -0.4343646466732025,
-                -0.24011126160621644,
-                -0.5574080944061279
-            ],
-            "scale": [
-                0.9999998807907105,
-                0.999999701976776,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                17
-            ],
-            "translation": [
-                0.00001525879997643642,
-                286.1807861328125,
-                -0.000022888199964654636
-            ],
-            "rotation": [
-                0.25593167543411257,
-                -0.3620148301124573,
-                0.3219532072544098,
-                -0.8365347385406494
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                -0.00006103519990574569,
-                166.9690093994141,
-                0.000003814699994109105
-            ],
-            "rotation": [
-                0.7009877562522888,
-                0.7009937167167664,
-                -0.09279301762580872,
-                -0.09280823916196825
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.0,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                19
-            ],
-            "translation": [
-                399.1947937011719,
-                -0.31954190135002139,
-                -0.003049075836315751
-            ],
-            "rotation": [
-                -0.004396272823214531,
-                -0.0025365734472870828,
-                -0.05076199769973755,
-                -0.9986979365348816
-            ],
-            "scale": [
-                0.9999999403953552,
-                1.0,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                32,
-                26,
-                20
-            ],
-            "translation": [
-                402.5515747070313,
-                -0.10438539832830428,
-                -0.002846478950232268
-            ],
-            "rotation": [
-                -0.000004574490503728157,
-                -0.000010040300367109012,
-                0.35299697518348696,
-                -0.9356244802474976
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                21
-            ],
-            "translation": [
-                0.003967284690588713,
-                0.14590449631214146,
-                -43.16883850097656
-            ],
-            "rotation": [
-                0.629516065120697,
-                0.328596293926239,
-                -0.1958152800798416,
-                -0.6763061881065369
-            ],
-            "scale": [
-                0.999999701976776,
-                1.0000003576278689,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                22
-            ],
-            "translation": [
-                -0.0003051759849768132,
-                175.07150268554688,
-                0.00007629390165675431
-            ],
-            "rotation": [
-                -0.5734227895736694,
-                0.18226787447929386,
-                -0.23226681351661686,
-                -0.7642098665237427
-            ],
-            "scale": [
-                1.0000001192092896,
-                1.0000003576278689,
-                0.999999701976776
-            ]
-        },
-        {
-            "children": [
-                23
-            ],
-            "translation": [
-                0.0,
-                370.0174865722656,
-                0.0
-            ],
-            "rotation": [
-                -0.27098795771598818,
-                -0.08019046485424042,
-                0.25969398021698,
-                -0.923414409160614
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                24
-            ],
-            "translation": [
-                0.00006103519990574569,
-                370.0173034667969,
-                0.0
-            ],
-            "rotation": [
-                0.3159535229206085,
-                0.3460785150527954,
-                0.361482322216034,
-                -0.8060604929924011
-            ],
-            "scale": [
-                0.9999998807907105,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                25
-            ],
-            "translation": [
-                0.00005340580173651688,
-                186.69309997558598,
-                0.00003051759995287284
-            ],
-            "rotation": [
-                -0.061906907707452777,
-                -0.6184580326080322,
-                0.322037935256958,
-                -0.7141210436820984
-            ],
-            "scale": [
-                1.000000238418579,
-                1.0000001192092896,
-                0.9999999403953552
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                167.76010131835938,
-                0.0
-            ],
-            "rotation": [
-                -0.18707998096942905,
-                0.18709905445575718,
-                0.6818875074386597,
-                -0.6819269061088562
-            ],
-            "scale": [
-                0.9999999403953552,
-                0.9999998211860656,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                27
-            ],
-            "translation": [
-                0.0004882809880655259,
-                0.1427001953125,
-                43.16946029663086
-            ],
-            "rotation": [
-                -0.6269798874855042,
-                -0.3371228575706482,
-                -0.20376521348953248,
-                -0.6721045970916748
-            ],
-            "scale": [
-                1.0000003576278689,
-                0.9999996423721314,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                28
-            ],
-            "translation": [
-                0.0,
-                175.07080078125,
-                -0.00006103519990574569
-            ],
-            "rotation": [
-                0.5832023620605469,
-                -0.18192623555660249,
-                -0.20986202359199525,
-                -0.7633713483810425
-            ],
-            "scale": [
-                0.9999997615814208,
-                1.0000001192092896,
-                0.9999998807907105
-            ]
-        },
-        {
-            "children": [
-                29
-            ],
-            "translation": [
-                -0.00006103519990574569,
-                370.0173034667969,
-                -0.00006103519990574569
-            ],
-            "rotation": [
-                0.2709869146347046,
-                0.0801902487874031,
-                0.2596951127052307,
-                -0.923414409160614
-            ],
-            "scale": [
-                1.0000001192092896,
-                1.0000001192092896,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                30
-            ],
-            "translation": [
-                0.00006103519990574569,
-                370.01708984375,
-                0.0
-            ],
-            "rotation": [
-                -0.315950095653534,
-                -0.3460729122161865,
-                0.3614855408668518,
-                -0.8060628175735474
-            ],
-            "scale": [
-                0.9999998807907105,
-                1.0,
-                0.9999999403953552
-            ]
-        },
-        {
-            "children": [
-                31
-            ],
-            "translation": [
-                -0.000022888199964654636,
-                186.6940155029297,
-                0.000007629389983776491
-            ],
-            "rotation": [
-                0.0619109645485878,
-                0.6184656620025635,
-                0.32203570008277895,
-                -0.7141150236129761
-            ],
-            "scale": [
-                1.0,
-                1.0000001192092896,
-                1.0
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                167.7620086669922,
-                -0.00006103519990574569
-            ],
-            "rotation": [
-                -0.18710123002529145,
-                -0.1870883852243424,
-                -0.6819262504577637,
-                -0.6818854212760925
-            ],
-            "scale": [
-                1.0,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                33
-            ],
-            "translation": [
-                181.73239135742188,
-                -0.0008544919546693564,
-                0.0025956628378480679
-            ],
-            "rotation": [
-                0.00926738977432251,
-                0.002782774157822132,
-                0.3884811699390412,
-                -0.9214058518409728
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ]
-        },
-        {
-            "translation": [
-                -0.00003051759995287284,
-                345.1398010253906,
-                0.0
-            ],
-            "rotation": [
-                -0.000010299070709152148,
-                -0.000018406668459647336,
-                -0.7070866823196411,
-                -0.7071268558502197
-            ],
-            "scale": [
-                1.0,
-                0.9999999403953552,
-                1.0
-            ]
-        },
-        {
-            "children": [
-                2
-            ],
-            "matrix": [
-                0.02539999969303608,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.02539999969303608,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.02539999969303608,
-                0.0,
-                0.0,
-                0.0,
-                11.732219696044922,
-                1.0
-            ]
-        }
-    ],
-    "meshes": [
-        {
-            "primitives": [
-                {
-                    "attributes": {
-                        "JOINTS_0": 1,
-                        "NORMAL": 2,
-                        "POSITION": 3,
-                        "TEXCOORD_0": 4,
-                        "WEIGHTS_0": 5
-                    },
-                    "indices": 0,
-                    "mode": 4,
-                    "material": 0
-                }
-            ],
-            "name": "monster"
-        }
-    ],
-    "animations": [
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 2,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 2,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 2,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 7
-                },
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 8
-                },
-                {
-                    "input": 6,
-                    "interpolation": "LINEAR",
-                    "output": 9
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 3,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 3,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 3,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 11
-                },
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 12
-                },
-                {
-                    "input": 10,
-                    "interpolation": "LINEAR",
-                    "output": 13
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 18,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 18,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 18,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 15
-                },
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 16
-                },
-                {
-                    "input": 14,
-                    "interpolation": "LINEAR",
-                    "output": 17
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 19,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 19,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 19,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 19
-                },
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 20
-                },
-                {
-                    "input": 18,
-                    "interpolation": "LINEAR",
-                    "output": 21
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 32,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 32,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 32,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 23
-                },
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 24
-                },
-                {
-                    "input": 22,
-                    "interpolation": "LINEAR",
-                    "output": 25
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 33,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 33,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 33,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 27
-                },
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 28
-                },
-                {
-                    "input": 26,
-                    "interpolation": "LINEAR",
-                    "output": 29
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 26,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 26,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 26,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 31
-                },
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 32
-                },
-                {
-                    "input": 30,
-                    "interpolation": "LINEAR",
-                    "output": 33
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 27,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 27,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 27,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 35
-                },
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 36
-                },
-                {
-                    "input": 34,
-                    "interpolation": "LINEAR",
-                    "output": 37
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 28,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 28,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 28,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 39
-                },
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 40
-                },
-                {
-                    "input": 38,
-                    "interpolation": "LINEAR",
-                    "output": 41
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 29,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 29,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 29,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 43
-                },
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 44
-                },
-                {
-                    "input": 42,
-                    "interpolation": "LINEAR",
-                    "output": 45
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 30,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 30,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 30,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 47
-                },
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 48
-                },
-                {
-                    "input": 46,
-                    "interpolation": "LINEAR",
-                    "output": 49
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 31,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 31,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 31,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 51
-                },
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 52
-                },
-                {
-                    "input": 50,
-                    "interpolation": "LINEAR",
-                    "output": 53
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 20,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 20,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 20,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 55
-                },
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 56
-                },
-                {
-                    "input": 54,
-                    "interpolation": "LINEAR",
-                    "output": 57
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 21,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 21,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 21,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 59
-                },
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 60
-                },
-                {
-                    "input": 58,
-                    "interpolation": "LINEAR",
-                    "output": 61
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 22,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 22,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 22,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 63
-                },
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 64
-                },
-                {
-                    "input": 62,
-                    "interpolation": "LINEAR",
-                    "output": 65
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 23,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 23,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 23,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 67
-                },
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 68
-                },
-                {
-                    "input": 66,
-                    "interpolation": "LINEAR",
-                    "output": 69
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 24,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 24,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 24,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 71
-                },
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 72
-                },
-                {
-                    "input": 70,
-                    "interpolation": "LINEAR",
-                    "output": 73
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 25,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 25,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 25,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 75
-                },
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 76
-                },
-                {
-                    "input": 74,
-                    "interpolation": "LINEAR",
-                    "output": 77
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 13,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 13,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 13,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 79
-                },
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 80
-                },
-                {
-                    "input": 78,
-                    "interpolation": "LINEAR",
-                    "output": 81
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 14,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 14,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 14,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 82,
-                    "interpolation": "LINEAR",
-                    "output": 83
-                },
-                {
-                    "input": 82,
-                    "interpolation": "LINEAR",
-                    "output": 84
-                },
-                {
-                    "input": 82,
-                    "interpolation": "LINEAR",
-                    "output": 85
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 15,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 15,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 15,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 86,
-                    "interpolation": "LINEAR",
-                    "output": 87
-                },
-                {
-                    "input": 86,
-                    "interpolation": "LINEAR",
-                    "output": 88
-                },
-                {
-                    "input": 86,
-                    "interpolation": "LINEAR",
-                    "output": 89
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 16,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 16,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 16,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 90,
-                    "interpolation": "LINEAR",
-                    "output": 91
-                },
-                {
-                    "input": 90,
-                    "interpolation": "LINEAR",
-                    "output": 92
-                },
-                {
-                    "input": 90,
-                    "interpolation": "LINEAR",
-                    "output": 93
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 17,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 17,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 17,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 94,
-                    "interpolation": "LINEAR",
-                    "output": 95
-                },
-                {
-                    "input": 94,
-                    "interpolation": "LINEAR",
-                    "output": 96
-                },
-                {
-                    "input": 94,
-                    "interpolation": "LINEAR",
-                    "output": 97
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 8,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 8,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 8,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 98,
-                    "interpolation": "LINEAR",
-                    "output": 99
-                },
-                {
-                    "input": 98,
-                    "interpolation": "LINEAR",
-                    "output": 100
-                },
-                {
-                    "input": 98,
-                    "interpolation": "LINEAR",
-                    "output": 101
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 9,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 9,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 9,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 102,
-                    "interpolation": "LINEAR",
-                    "output": 103
-                },
-                {
-                    "input": 102,
-                    "interpolation": "LINEAR",
-                    "output": 104
-                },
-                {
-                    "input": 102,
-                    "interpolation": "LINEAR",
-                    "output": 105
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 10,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 10,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 10,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 106,
-                    "interpolation": "LINEAR",
-                    "output": 107
-                },
-                {
-                    "input": 106,
-                    "interpolation": "LINEAR",
-                    "output": 108
-                },
-                {
-                    "input": 106,
-                    "interpolation": "LINEAR",
-                    "output": 109
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 11,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 11,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 11,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 110,
-                    "interpolation": "LINEAR",
-                    "output": 111
-                },
-                {
-                    "input": 110,
-                    "interpolation": "LINEAR",
-                    "output": 112
-                },
-                {
-                    "input": 110,
-                    "interpolation": "LINEAR",
-                    "output": 113
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 12,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 12,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 12,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 114,
-                    "interpolation": "LINEAR",
-                    "output": 115
-                },
-                {
-                    "input": 114,
-                    "interpolation": "LINEAR",
-                    "output": 116
-                },
-                {
-                    "input": 114,
-                    "interpolation": "LINEAR",
-                    "output": 117
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 4,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 4,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 4,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 118,
-                    "interpolation": "LINEAR",
-                    "output": 119
-                },
-                {
-                    "input": 118,
-                    "interpolation": "LINEAR",
-                    "output": 120
-                },
-                {
-                    "input": 118,
-                    "interpolation": "LINEAR",
-                    "output": 121
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 5,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 5,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 5,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 122,
-                    "interpolation": "LINEAR",
-                    "output": 123
-                },
-                {
-                    "input": 122,
-                    "interpolation": "LINEAR",
-                    "output": 124
-                },
-                {
-                    "input": 122,
-                    "interpolation": "LINEAR",
-                    "output": 125
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 6,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 6,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 6,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 126,
-                    "interpolation": "LINEAR",
-                    "output": 127
-                },
-                {
-                    "input": 126,
-                    "interpolation": "LINEAR",
-                    "output": 128
-                },
-                {
-                    "input": 126,
-                    "interpolation": "LINEAR",
-                    "output": 129
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 7,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 7,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 7,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 130,
-                    "interpolation": "LINEAR",
-                    "output": 131
-                },
-                {
-                    "input": 130,
-                    "interpolation": "LINEAR",
-                    "output": 132
-                },
-                {
-                    "input": 130,
-                    "interpolation": "LINEAR",
-                    "output": 133
-                }
-            ]
-        }
-    ],
-    "skins": [
-        {
-            "inverseBindMatrices": 134,
-            "skeleton": 2,
-            "joints": [
-                2,
-                3,
-                18,
-                19,
-                32,
-                33,
-                26,
-                27,
-                28,
-                29,
-                30,
-                31,
-                20,
-                21,
-                22,
-                23,
-                24,
-                25,
-                8,
-                9,
-                10,
-                11,
-                12,
-                13,
-                14,
-                15,
-                16,
-                17,
-                4,
-                5,
-                6,
-                7
-            ],
-            "name": "Armature"
-        }
-    ],
-    "accessors": [
-        {
-            "bufferView": 0,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 2652,
-            "max": [
-                779
-            ],
-            "min": [
-                0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 780,
-            "max": [
-                30,
-                30,
-                29,
-                24
-            ],
-            "min": [
-                0,
-                0,
-                0,
-                0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 780,
-            "max": [
-                0.9988760948181152,
-                0.9998818039894104,
-                0.9998157024383544
-            ],
-            "min": [
-                -0.9988760948181152,
-                -0.9980314373970032,
-                -0.9998273253440856
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 9360,
-            "componentType": 5126,
-            "count": 780,
-            "max": [
-                7.313104152679443,
-                25.414928436279298,
-                33.43614959716797
-            ],
-            "min": [
-                -15.450709342956545,
-                -33.22121047973633,
-                -1.280419945716858
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 6240,
-            "componentType": 5126,
-            "count": 780,
-            "max": [
-                1.009609937667847,
-                0.9916410446166992
-            ],
-            "min": [
-                0.005085944663733244,
-                -0.07434999942779541
-            ],
-            "type": "VEC2"
-        },
-        {
-            "bufferView": 3,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 780,
-            "max": [
-                1.0,
-                0.9999979734420776,
-                0.9997379779815674,
-                0.9927020072937012
-            ],
-            "min": [
-                0.0000019999999949504856,
-                0.0,
-                0.0,
-                0.0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                688.0628662109375,
-                119.62960052490236,
-                436.8376770019531
-            ],
-            "min": [
-                688.0628662109375,
-                119.62960052490236,
-                436.8376770019531
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.3873895406723023,
-                0.5915361642837524,
-                0.5915565490722656,
-                -0.3873957097530365
-            ],
-            "min": [
-                0.3873895406723023,
-                0.5915361642837524,
-                0.5915565490722656,
-                -0.3873957097530365
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 1212,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000003576278689,
-                1.0000003576278689,
-                1.0
-            ],
-            "min": [
-                1.0000003576278689,
-                1.0000003576278689,
-                1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 404,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 2424,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00003051759995287284,
-                142.05380249023438,
-                0.00001525879997643642
-            ],
-            "min": [
-                -0.00003051759995287284,
-                142.05380249023438,
-                0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 1616,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.07529418170452118,
-                0.08668317645788193,
-                0.932952642440796,
-                0.4080679714679718
-            ],
-            "min": [
-                -0.05637124180793762,
-                -0.08988404273986817,
-                0.9125778675079346,
-                0.3448300063610077
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 3636,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000001311302185,
-                1.000001072883606,
-                1.0000008344650269
-            ],
-            "min": [
-                0.9999995827674866,
-                0.9999996423721314,
-                0.999998927116394
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 808,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 4848,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                399.22900390625,
-                -0.3109740912914276,
-                0.033753398805856708
-            ],
-            "min": [
-                399.1907958984375,
-                -0.3193970024585724,
-                -0.04251528158783913
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 3232,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.04481140151619911,
-                0.09621308743953704,
-                -0.045223526656627658,
-                -0.9873183369636536
-            ],
-            "min": [
-                -0.05383916571736336,
-                -0.10072088986635208,
-                -0.1102677807211876,
-                -0.99887216091156
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 6060,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000004768371585,
-                1.0000009536743165,
-                1.000001072883606
-            ],
-            "min": [
-                0.9999988675117492,
-                0.9999990463256836,
-                0.9999992847442628
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1212,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 7272,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                402.6142883300781,
-                -0.1111449971795082,
-                0.005645751953125
-            ],
-            "min": [
-                402.5600891113281,
-                -0.13861079514026646,
-                -0.010498049668967724
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 4848,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.02916480414569378,
-                0.13094337284564973,
-                0.3312646150588989,
-                -0.9394612908363342
-            ],
-            "min": [
-                -0.029069917276501657,
-                -0.1322847604751587,
-                0.12861666083335877,
-                -0.9855769276618958
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 8484,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000014305114749,
-                1.0000007152557374,
-                1.0000009536743165
-            ],
-            "min": [
-                0.9999995231628418,
-                0.999998927116394,
-                0.9999986886978148
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 1616,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 9696,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                181.7324981689453,
-                0.001678466913290322,
-                0.0021362300030887129
-            ],
-            "min": [
-                181.7321929931641,
-                0.0012207030085846782,
-                0.0019226069562137128
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 6464,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.11948085576295853,
-                0.21782369911670688,
-                0.75827956199646,
-                -0.6160333156585693
-            ],
-            "min": [
-                -0.22238001227378849,
-                -0.14779649674892426,
-                0.6617863774299622,
-                -0.7142592668533325
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 10908,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000007152557374,
-                1.0000011920928956,
-                1.0000008344650269
-            ],
-            "min": [
-                0.9999991059303284,
-                0.9999993443489076,
-                0.9999991655349731
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2020,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 12120,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00003051759995287284,
-                345.13958740234377,
-                0.00006103519990574569
-            ],
-            "min": [
-                -0.00003051759995287284,
-                345.13958740234377,
-                0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 8080,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.000013882177881896496,
-                -0.00001729086579871364,
-                -0.7070867419242859,
-                -0.707126796245575
-            ],
-            "min": [
-                -0.000013882177881896496,
-                -0.00001729086579871364,
-                -0.7070867419242859,
-                -0.707126796245575
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 13332,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999999403953552,
-                1.0,
-                1.0
-            ],
-            "min": [
-                0.9999999403953552,
-                1.0,
-                1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2424,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 14544,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                11.093509674072266,
-                2.570708990097046,
-                43.12179946899414
-            ],
-            "min": [
-                -11.20617961883545,
-                -2.25006103515625,
-                41.65719985961914
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 9696,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.4268832206726074,
-                0.019551469013094907,
-                -0.004996071103960276,
-                -0.6169270277023315
-            ],
-            "min": [
-                -0.7079461216926575,
-                -0.4286864697933197,
-                -0.49198582768440249,
-                -0.8074727654457092
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 15756,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000009536743165,
-                1.0000016689300538,
-                1.0000014305114749
-            ],
-            "min": [
-                0.9999987483024596,
-                0.9999995231628418,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 2828,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 16968,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.0001220699996338226,
-                175.07080078125,
-                -0.00006103519990574569
-            ],
-            "min": [
-                -0.0001220699996338226,
-                175.07080078125,
-                -0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 11312,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.5104442834854126,
-                0.7555050253868103,
-                0.02008049003779888,
-                -0.6120374202728272
-            ],
-            "min": [
-                0.19047075510025025,
-                0.03135304525494576,
-                -0.3887938261032105,
-                -0.9229499697685242
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 18180,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000011920928956,
-                1.0000003576278689,
-                1.000001311302185
-            ],
-            "min": [
-                0.9999988675117492,
-                0.9999983906745912,
-                0.9999996423721314
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3232,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 19392,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                370.0173034667969,
-                -0.00001525879997643642
-            ],
-            "min": [
-                0.0,
-                370.0173034667969,
-                -0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 12928,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.6011126041412354,
-                0.07422994077205658,
-                0.5760638117790222,
-                -0.5518321394920349
-            ],
-            "min": [
-                0.3708511292934418,
-                0.04792150110006333,
-                0.35539764165878298,
-                -0.8547816872596741
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 20604,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999999403953552,
-                1.0000016689300538,
-                1.0000005960464478
-            ],
-            "min": [
-                0.9999990463256836,
-                0.9999995827674866,
-                0.9999995231628418
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 3636,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 21816,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00006103519990574569,
-                370.01702880859377,
-                0.000003814699994109105
-            ],
-            "min": [
-                -0.00006103519990574569,
-                370.01702880859377,
-                0.000003814699994109105
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 14544,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.12159590423107149,
-                -0.592817485332489,
-                0.08611587435007096,
-                -0.6480545401573181
-            ],
-            "min": [
-                -0.0019206339493393896,
-                -0.6926255822181702,
-                -0.40358710289001467,
-                -0.7833981513977051
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 23028,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000011920928956,
-                0.9999997615814208,
-                1.0000003576278689
-            ],
-            "min": [
-                0.9999993443489076,
-                0.9999983906745912,
-                0.9999982714653016
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 4040,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 24240,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00003051759995287284,
-                186.6938018798828,
-                0.00006103519990574569
-            ],
-            "min": [
-                0.00003051759995287284,
-                186.6938018798828,
-                0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 16160,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.1426013559103012,
-                0.6280872225761414,
-                0.4596095085144043,
-                -0.6589219570159912
-            ],
-            "min": [
-                0.035743311047554019,
-                0.5803613662719727,
-                -0.23170951008796693,
-                -0.7778217792510986
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 25452,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000030994415284,
-                1.0000009536743165,
-                1.0000015497207642
-            ],
-            "min": [
-                0.9999990463256836,
-                0.999998152256012,
-                0.9999975562095642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 4444,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 26664,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                167.7620086669922,
-                0.0
-            ],
-            "min": [
-                0.0,
-                167.7620086669922,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 17776,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.1871013194322586,
-                -0.18708844482898716,
-                -0.6819262504577637,
-                -0.6818854212760925
-            ],
-            "min": [
-                -0.1871013194322586,
-                -0.18708844482898716,
-                -0.6819262504577637,
-                -0.6818854212760925
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 27876,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999998211860656,
-                1.0000001192092896,
-                1.0000001192092896
-            ],
-            "min": [
-                0.9999998211860656,
-                1.0000001192092896,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 4848,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 29088,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                11.20654010772705,
-                2.539275884628296,
-                -41.6572380065918
-            ],
-            "min": [
-                -11.0931396484375,
-                -2.281677007675171,
-                -43.12186050415039
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 19392,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7087063193321228,
-                0.41781315207481387,
-                0.0004008882970083505,
-                -0.6171950101852417
-            ],
-            "min": [
-                0.4269197881221771,
-                -0.018646057695150377,
-                -0.4820735454559326,
-                -0.8132827877998352
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 30300,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000001072883606,
-                1.0000005960464478,
-                1.0000015497207642
-            ],
-            "min": [
-                0.9999989867210388,
-                0.9999990463256836,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 5252,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 31512,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.0001220699996338226,
-                175.07159423828126,
-                0.0
-            ],
-            "min": [
-                -0.0001220699996338226,
-                175.07159423828126,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 21008,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.1727268248796463,
-                -0.026490267366170884,
-                -0.014631116762757302,
-                -0.6249508857727051
-            ],
-            "min": [
-                -0.5201118588447571,
-                -0.7482331991195679,
-                -0.36269164085388186,
-                -0.9203588366508484
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 32724,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0,
-                1.000001311302185,
-                1.0000009536743165
-            ],
-            "min": [
-                0.9999985098838806,
-                0.9999993443489076,
-                0.999998927116394
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 5656,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 33936,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                370.0174865722656,
-                -0.00006103519990574569
-            ],
-            "min": [
-                0.0,
-                370.0174865722656,
-                -0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 22624,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.3708538711071015,
-                -0.04598140716552735,
-                0.5860890746116638,
-                -0.5294864177703857
-            ],
-            "min": [
-                -0.6115797162055969,
-                -0.07423046976327896,
-                0.3553973138332367,
-                -0.8547807335853577
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 35148,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000003576278689,
-                1.0000014305114749,
-                1.0000005960464478
-            ],
-            "min": [
-                0.9999993443489076,
-                0.999999701976776,
-                0.999999463558197
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 6060,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 36360,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.000022888199964654636,
-                370.0171813964844,
-                0.00001525879997643642
-            ],
-            "min": [
-                0.000022888199964654636,
-                370.0171813964844,
-                0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 24240,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.031680915504693988,
-                0.7147775292396545,
-                0.0212766882032156,
-                -0.649734377861023
-            ],
-            "min": [
-                -0.10804452747106552,
-                0.5687218904495239,
-                -0.41146859526634219,
-                -0.7937191724777222
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 37572,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000008344650269,
-                0.9999993443489076,
-                1.0000011920928956
-            ],
-            "min": [
-                0.999998927116394,
-                0.9999974966049194,
-                0.9999998211860656
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 6464,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 38784,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00003051759995287284,
-                186.69309997558598,
-                0.00006103519990574569
-            ],
-            "min": [
-                -0.00003051759995287284,
-                186.69309997558598,
-                0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 25856,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.03588018566370011,
-                -0.5803508758544922,
-                0.4588881731033325,
-                -0.6592705845832825
-            ],
-            "min": [
-                -0.1426122784614563,
-                -0.6280779242515564,
-                -0.23170490562915806,
-                -0.7778291702270508
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 39996,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000035762786866,
-                1.000001311302185,
-                1.0000022649765017
-            ],
-            "min": [
-                0.9999989867210388,
-                0.9999991655349731,
-                0.9999974966049194
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 6868,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 41208,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0001220699996338226,
-                167.7602996826172,
-                0.0
-            ],
-            "min": [
-                0.0001220699996338226,
-                167.7602996826172,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 27472,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.18708005547523497,
-                0.18709906935691837,
-                0.681887686252594,
-                -0.6819267868995667
-            ],
-            "min": [
-                -0.18708005547523497,
-                0.18709906935691837,
-                0.681887686252594,
-                -0.6819267868995667
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 42420,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0,
-                0.9999998211860656,
-                0.9999998211860656
-            ],
-            "min": [
-                1.0,
-                0.9999998211860656,
-                0.9999998211860656
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 7272,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 43632,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -64.18634033203125,
-                123.89100646972656,
-                -121.35540008544922
-            ],
-            "min": [
-                -122.68409729003906,
-                86.45635986328125,
-                -181.9196929931641
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 29088,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.5137400031089783,
-                0.5910477638244629,
-                0.487165242433548,
-                -0.5562912821769714
-            ],
-            "min": [
-                0.2358280718326569,
-                0.4349341094493866,
-                0.06352268159389496,
-                -0.7825927138328552
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 44844,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000014305114749,
-                1.000001072883606,
-                1.0000015497207642
-            ],
-            "min": [
-                0.9999995827674866,
-                0.9999990463256836,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 7676,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 46056,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00001525879997643642,
-                547.8192138671875,
-                0.0
-            ],
-            "min": [
-                -0.00001525879997643642,
-                547.8192138671875,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 30704,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7711299657821655,
-                -0.20974168181419373,
-                -0.21020625531673432,
-                0.7666990756988525
-            ],
-            "min": [
-                0.5196717977523804,
-                -0.31293177604675295,
-                -0.31192100048065188,
-                0.5138788223266602
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 47268,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0,
-                1.0000008344650269,
-                1.0000003576278689
-            ],
-            "min": [
-                0.9999988079071044,
-                0.9999983906745912,
-                0.9999988079071044
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 8080,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 48480,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00003051759995287284,
-                532.7470703125,
-                0.00003051759995287284
-            ],
-            "min": [
-                0.00003051759995287284,
-                532.7470703125,
-                0.00003051759995287284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 32320,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7953221201896668,
-                -0.3406173884868622,
-                0.024828489869832997,
-                -0.4618827998638153
-            ],
-            "min": [
-                0.4422449469566345,
-                -0.6381375789642334,
-                -0.06888412684202194,
-                -0.7050687074661255
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 49692,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000000238418579,
-                1.0000009536743165,
-                1.000000238418579
-            ],
-            "min": [
-                0.9999983906745912,
-                0.9999992847442628,
-                0.999998152256012
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 8484,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 50904,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00001525879997643642,
-                286.1808776855469,
-                -0.00001525879997643642
-            ],
-            "min": [
-                -0.00001525879997643642,
-                286.1808776855469,
-                -0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 33936,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.34342503547668459,
-                -0.36089563369750979,
-                0.48122185468673708,
-                -0.702274739742279
-            ],
-            "min": [
-                -0.055049605667591098,
-                -0.4634150564670563,
-                0.027654040604829789,
-                -0.9122520089149476
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 52116,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000001072883606,
-                1.0000007152557374,
-                1.0000005960464478
-            ],
-            "min": [
-                0.9999991655349731,
-                0.9999993443489076,
-                0.9999994039535524
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 8888,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 53328,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                166.96910095214845,
-                0.00003051759995287284
-            ],
-            "min": [
-                0.0,
-                166.96910095214845,
-                0.00003051759995287284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 35552,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7009878754615784,
-                0.7009936571121216,
-                -0.0927930474281311,
-                -0.09280822426080704
-            ],
-            "min": [
-                0.7009878754615784,
-                0.7009936571121216,
-                -0.0927930474281311,
-                -0.09280822426080704
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 54540,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0,
-                1.0,
-                0.9999997615814208
-            ],
-            "min": [
-                1.0,
-                1.0,
-                0.9999997615814208
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 9292,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 55752,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -57.822750091552737,
-                125.41189575195313,
-                183.63040161132813
-            ],
-            "min": [
-                -117.2886962890625,
-                87.447509765625,
-                124.98169708251952
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 37168,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.226774200797081,
-                -0.4451811611652374,
-                0.49656349420547488,
-                -0.551270604133606
-            ],
-            "min": [
-                -0.5029988884925842,
-                -0.6104490756988525,
-                0.05997595936059952,
-                -0.7728594541549683
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 56964,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000011920928956,
-                1.0000030994415284,
-                1.0000004768371585
-            ],
-            "min": [
-                0.999997854232788,
-                1.0000004768371585,
-                0.9999985098838806
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 9696,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 58176,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00005722049900214188,
-                547.8187866210938,
-                -0.00006103519990574569
-            ],
-            "min": [
-                0.00005722049900214188,
-                547.8187866210938,
-                -0.00006103519990574569
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 38784,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7720406651496887,
-                -0.2091858983039856,
-                0.3122869431972504,
-                -0.5125147700309753
-            ],
-            "min": [
-                0.5071884989738464,
-                -0.31631752848625185,
-                0.2051556557416916,
-                -0.7749928832054138
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 59388,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000009536743165,
-                1.0000015497207642,
-                0.9999998211860656
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999995231628418,
-                0.999998152256012
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 10100,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 60600,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00003051759995287284,
-                532.7478637695313,
-                0.00003051759995287284
-            ],
-            "min": [
-                -0.00003051759995287284,
-                532.7478637695313,
-                0.00003051759995287284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 40400,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.4422548413276673,
-                0.6402692198753357,
-                0.02487970888614655,
-                -0.443508505821228
-            ],
-            "min": [
-                -0.8058043718338013,
-                0.33987849950790408,
-                -0.06919090449810028,
-                -0.7087214589118958
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 61812,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000015497207642,
-                1.000002145767212,
-                1.0000017881393433
-            ],
-            "min": [
-                0.9999986886978148,
-                0.999999463558197,
-                0.9999991059303284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 10504,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 63024,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -0.00004577639992930927,
-                286.1813049316406,
-                0.00003051759995287284
-            ],
-            "min": [
-                -0.00004577639992930927,
-                286.1813049316406,
-                0.00003051759995287284
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 42016,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.05504757910966873,
-                0.4637857675552368,
-                0.4812243282794953,
-                -0.702268123626709
-            ],
-            "min": [
-                -0.34342628717422488,
-                0.34244170784950259,
-                0.027664778754115106,
-                -0.9120306372642516
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 64236,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000009536743165,
-                1.0000009536743165,
-                1.0000007152557374
-            ],
-            "min": [
-                0.9999988675117492,
-                0.9999990463256836,
-                0.9999987483024596
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 10908,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 65448,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00006103519990574569,
-                166.9678955078125,
-                -0.000007629389983776491
-            ],
-            "min": [
-                0.00006103519990574569,
-                166.9678955078125,
-                -0.000007629389983776491
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 43632,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.7009931206703186,
-                -0.7009892463684082,
-                0.09279564768075945,
-                -0.09279833734035492
-            ],
-            "min": [
-                0.7009931206703186,
-                -0.7009892463684082,
-                0.09279564768075945,
-                -0.09279833734035492
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 66660,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999998211860656,
-                0.9999998211860656,
-                0.9999999403953552
-            ],
-            "min": [
-                0.9999998211860656,
-                0.9999998211860656,
-                0.9999999403953552
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 11312,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 67872,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                -216.10679626464845,
-                76.14641571044922,
-                53.84222030639649
-            ],
-            "min": [
-                -229.81809997558598,
-                48.92041015625,
-                -46.19350051879883
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 45248,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.1075008511543274,
-                0.04972844943404198,
-                -0.5993947386741638,
-                -0.7506681680679321
-            ],
-            "min": [
-                -0.1541447639465332,
-                -0.08161687850952149,
-                -0.6573381423950195,
-                -0.7955794930458069
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 69084,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.0000011920928956,
-                1.0000014305114749,
-                1.0000009536743165
-            ],
-            "min": [
-                0.999999701976776,
-                0.9999993443489076,
-                0.9999991655349731
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 11716,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 70296,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.00006103519990574569,
-                275.1336975097656,
-                -0.00001525879997643642
-            ],
-            "min": [
-                0.00006103519990574569,
-                275.1336975097656,
-                -0.00001525879997643642
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 46864,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.039355143904685977,
-                0.004996879026293755,
-                -0.12579287588596345,
-                -0.991262674331665
-            ],
-            "min": [
-                -0.02954175136983395,
-                -0.0037506259977817537,
-                -0.12589138746261598,
-                -0.9920437335968018
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 71508,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.999998927116394,
-                1.0,
-                1.0000004768371585
-            ],
-            "min": [
-                0.9999986886978148,
-                0.9999982118606569,
-                0.999998927116394
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 12120,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 72720,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0,
-                339.0890197753906,
-                -0.000007629389983776491
-            ],
-            "min": [
-                0.0,
-                339.0890197753906,
-                -0.000007629389983776491
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 48480,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.000001511155801381392,
-                3.055855870570668e-7,
-                -0.11349041759967804,
-                -0.9935391545295716
-            ],
-            "min": [
-                0.000001511155801381392,
-                3.055855870570668e-7,
-                -0.11349041759967804,
-                -0.9935391545295716
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 73932,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                1.000000238418579,
-                1.0000003576278689,
-                1.0
-            ],
-            "min": [
-                1.000000238418579,
-                1.0000003576278689,
-                1.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 12524,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                3.333329916000366
-            ],
-            "min": [
-                0.0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 75144,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0006713870097883046,
-                374.1894836425781,
-                0.00009918209980241954
-            ],
-            "min": [
-                0.0006713870097883046,
-                374.1894836425781,
-                0.00009918209980241954
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 50096,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.0003971835249103606,
-                0.9999987483024596,
-                8.442460170954291e-7,
-                -1.539886227419629e-7
-            ],
-            "min": [
-                0.0003971835249103606,
-                0.9999987483024596,
-                8.442460170954291e-7,
-                -1.539886227419629e-7
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 76356,
-            "componentType": 5126,
-            "count": 101,
-            "max": [
-                0.9999921321868897,
-                0.9999988079071044,
-                0.9999999403953552
-            ],
-            "min": [
-                0.9999921321868897,
-                0.9999988079071044,
-                0.9999999403953552
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 7,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 32,
-            "max": [
-                35.948368072509769,
-                38.693748474121097,
-                39.37006759643555,
-                0.0,
-                38.92030715942383,
-                39.36031723022461,
-                30.0275993347168,
-                0.0,
-                39.36031723022461,
-                38.83974075317383,
-                38.96176910400391,
-                0.0,
-                1034.1197509765626,
-                867.171142578125,
-                611.7998657226563,
-                1.0
-            ],
-            "min": [
-                -35.94831848144531,
-                -38.47134017944336,
-                -39.37006759643555,
-                0.0,
-                -38.920318603515628,
-                -38.919979095458987,
-                -30.0275993347168,
-                0.0,
-                -39.3596076965332,
-                -38.88496017456055,
-                -38.82202911376953,
-                0.0,
-                -1323.6492919921876,
-                -1186.5914306640626,
-                -632.5089111328125,
-                1.0
-            ],
-            "type": "MAT4"
-        }
-    ],
-    "materials": [
-        {
-            "values": {
-                "ambient": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "diffuse": [
-                    0
-                ],
-                "emission": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "specular": [
-                    0.10000000149011612,
-                    0.10000000149011612,
-                    0.10000000149011612,
-                    1.0
-                ],
-                "shininess": [
-                    50.0
-                ],
-                "transparency": [
-                    1.0
-                ]
-            },
-            "technique": 0
-        }
-    ],
-    "textures": [
-        {
-            "sampler": 0,
-            "source": 0
-        }
-    ],
-    "images": [
-        {
-            "uri": "Monster.jpg"
-        }
-    ],
-    "samplers": [
-        {
-            "magFilter": 9729,
-            "minFilter": 9986,
-            "wrapS": 10497,
-            "wrapT": 10497
-        }
-    ],
-    "techniques": [
-        {
-            "attributes": {
-                "a_joint": "joint",
-                "a_normal": "normal",
-                "a_position": "position",
-                "a_texcoord0": "texcoord0",
-                "a_weight": "weight"
-            },
-            "parameters": {
-                "ambient": {
-                    "type": 35666
-                },
-                "diffuse": {
-                    "type": 35678
-                },
-                "emission": {
-                    "type": 35666
-                },
-                "joint": {
-                    "semantic": "JOINT",
-                    "type": 35666
-                },
-                "jointMatrix": {
-                    "semantic": "JOINTMATRIX",
-                    "count": 32,
-                    "type": 35676
-                },
-                "modelViewMatrix": {
-                    "semantic": "MODELVIEW",
-                    "type": 35676
-                },
-                "normal": {
-                    "semantic": "NORMAL",
-                    "type": 35665
-                },
-                "normalMatrix": {
-                    "semantic": "MODELVIEWINVERSETRANSPOSE",
-                    "type": 35675
-                },
-                "position": {
-                    "semantic": "POSITION",
-                    "type": 35665
-                },
-                "projectionMatrix": {
-                    "semantic": "PROJECTION",
-                    "type": 35676
-                },
-                "shininess": {
-                    "type": 5126
-                },
-                "specular": {
-                    "type": 35666
-                },
-                "texcoord0": {
-                    "semantic": "TEXCOORD_0",
-                    "type": 35665
-                },
-                "transparency": {
-                    "type": 5126
-                },
-                "weight": {
-                    "semantic": "WEIGHT",
-                    "type": 35666
-                }
-            },
-            "program": 0,
-            "states": {
-                "enable": [
-                    2884,
-                    2929
-                ]
-            },
-            "uniforms": {
-                "u_ambient": "ambient",
-                "u_diffuse": "diffuse",
-                "u_emission": "emission",
-                "u_jointMatrix": "jointMatrix",
-                "u_modelViewMatrix": "modelViewMatrix",
-                "u_normalMatrix": "normalMatrix",
-                "u_projectionMatrix": "projectionMatrix",
-                "u_shininess": "shininess",
-                "u_specular": "specular",
-                "u_transparency": "transparency"
-            }
-        }
-    ],
-    "programs": [
-        {
-            "attributes": [
-                "a_joint",
-                "a_normal",
-                "a_position",
-                "a_texcoord0",
-                "a_weight"
-            ],
-            "fragmentShader": 1,
-            "vertexShader": 0
-        }
-    ],
-    "shaders": [
-        {
-            "type": 35633,
-            "uri": "Monster0.vert"
-        },
-        {
-            "type": 35632,
-            "uri": "Monster1.frag"
-        }
-    ],
-    "bufferViews": [
-        {
-            "buffer": 0,
-            "byteOffset": 187936,
-            "byteLength": 5304,
-            "target": 34963
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 162528,
-            "byteLength": 12480,
-            "byteStride": 8,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 143808,
-            "byteLength": 18720,
-            "byteStride": 12,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 53760,
-            "byteLength": 12480,
-            "byteStride": 16,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 175008,
-            "byteLength": 12928
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 66240,
-            "byteLength": 77568
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 2048,
-            "byteLength": 51712
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 0,
-            "byteLength": 2048
-        }
-    ],
-    "buffers": [
-        {
-            "byteLength": 193240,
-            "uri": "Monster0.bin"
-        }
-    ],
-    "extensionsRequired": [
-        "KHR_technique_webgl"
-    ],
-    "extensionsUsed": [
-        "KHR_technique_webgl"
-    ]
-}

BIN
examples/models/gltf/Monster/glTF-techniqueWebGL/Monster.jpg


BIN
examples/models/gltf/Monster/glTF-techniqueWebGL/Monster0.bin


+ 0 - 24
examples/models/gltf/Monster/glTF-techniqueWebGL/Monster0.vert

@@ -1,24 +0,0 @@
-precision highp float;
-uniform mat4 u_modelViewMatrix;
-uniform mat4 u_projectionMatrix;
-uniform mat3 u_normalMatrix;
-uniform mat4 u_jointMatrix[32];
-attribute vec3 a_position;
-varying vec3 v_position;
-attribute vec3 a_normal;
-varying vec3 v_normal;
-attribute vec2 a_texcoord0;
-varying vec2 v_texcoord0;
-attribute vec4 a_joint;
-attribute vec4 a_weight;
-void main(void) {
-    mat4 skinMat = a_weight.x * u_jointMatrix[int(a_joint.x)];
-    skinMat += a_weight.y * u_jointMatrix[int(a_joint.y)];
-    skinMat += a_weight.z * u_jointMatrix[int(a_joint.z)];
-    skinMat += a_weight.w * u_jointMatrix[int(a_joint.w)];
-    vec4 pos = u_modelViewMatrix * skinMat * vec4(a_position,1.0);
-    v_position = pos.xyz;
-    gl_Position = u_projectionMatrix * pos;
-    v_normal = u_normalMatrix * mat3(skinMat) * a_normal;
-    v_texcoord0 = a_texcoord0;
-}

+ 0 - 33
examples/models/gltf/Monster/glTF-techniqueWebGL/Monster1.frag

@@ -1,33 +0,0 @@
-precision highp float;
-uniform vec4 u_ambient;
-uniform sampler2D u_diffuse;
-uniform vec4 u_emission;
-uniform vec4 u_specular;
-uniform float u_shininess;
-uniform float u_transparency;
-varying vec3 v_position;
-varying vec3 v_normal;
-varying vec2 v_texcoord0;
-void main(void) {
-    vec3 normal = normalize(v_normal);
-    vec4 diffuse = texture2D(u_diffuse, v_texcoord0);
-    vec3 diffuseLight = vec3(0.0, 0.0, 0.0);
-    vec3 specular = u_specular.rgb;
-    vec3 specularLight = vec3(0.0, 0.0, 0.0);
-    vec3 emission = u_emission.rgb;
-    vec3 ambient = u_ambient.rgb;
-    vec3 viewDir = -normalize(v_position);
-    vec3 ambientLight = vec3(0.0, 0.0, 0.0);
-    ambientLight += vec3(0.2, 0.2, 0.2);
-    vec3 l = vec3(0.0, 0.0, 1.0);
-    diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal, l), 0.); 
-    vec3 h = normalize(l + viewDir);
-    float specularIntensity = max(0., pow(max(dot(normal, h), 0.), u_shininess));
-    specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity;
-    vec3 color = vec3(0.0, 0.0, 0.0);
-    color += diffuse.rgb * diffuseLight;
-    color += specular * specularLight;
-    color += emission;
-    color += ambient * ambientLight;
-    gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency);
-}

+ 0 - 572
examples/models/gltf/RiggedSimple/glTF-MaterialsCommon/RiggedSimple.gltf

@@ -1,572 +0,0 @@
-{
-    "asset": {
-        "generator": "COLLADA2GLTF",
-        "version": "2.0"
-    },
-    "scene": 0,
-    "scenes": [
-        {
-            "nodes": [
-                0
-            ]
-        }
-    ],
-    "nodes": [
-        {
-            "children": [
-                4,
-                1
-            ],
-            "matrix": [
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                -1.0,
-                0.0,
-                0.0,
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                1.0
-            ]
-        },
-        {
-            "mesh": 0,
-            "skin": 0
-        },
-        {
-            "children": [
-                3
-            ],
-            "translation": [
-                0.0,
-                -3.156060017772689e-7,
-                -4.1803297996521
-            ],
-            "rotation": [
-                -0.7047404050827026,
-                -0.0,
-                -0.0,
-                -0.7094652056694031
-            ],
-            "scale": [
-                1.0,
-                0.9999998807907105,
-                0.9999998807907105
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                4.18717098236084,
-                0.0
-            ],
-            "rotation": [
-                -0.0020521103870123626,
-                -9.94789530750495e-8,
-                -0.00029137087403796613,
-                -0.999997854232788
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                2
-            ]
-        }
-    ],
-    "meshes": [
-        {
-            "primitives": [
-                {
-                    "attributes": {
-                        "JOINTS_0": 1,
-                        "NORMAL": 2,
-                        "POSITION": 3,
-                        "WEIGHTS_0": 4
-                    },
-                    "indices": 0,
-                    "mode": 4,
-                    "material": 0
-                }
-            ],
-            "name": "Cylinder"
-        }
-    ],
-    "animations": [
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 2,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 2,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 2,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 5,
-                    "interpolation": "LINEAR",
-                    "output": 6
-                },
-                {
-                    "input": 5,
-                    "interpolation": "LINEAR",
-                    "output": 7
-                },
-                {
-                    "input": 5,
-                    "interpolation": "LINEAR",
-                    "output": 8
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 3,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 3,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 3,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 9,
-                    "interpolation": "LINEAR",
-                    "output": 10
-                },
-                {
-                    "input": 9,
-                    "interpolation": "LINEAR",
-                    "output": 11
-                },
-                {
-                    "input": 9,
-                    "interpolation": "LINEAR",
-                    "output": 12
-                }
-            ]
-        }
-    ],
-    "skins": [
-        {
-            "inverseBindMatrices": 13,
-            "skeleton": 2,
-            "joints": [
-                2,
-                3
-            ],
-            "name": "Armature"
-        }
-    ],
-    "accessors": [
-        {
-            "bufferView": 0,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 564,
-            "max": [
-                95
-            ],
-            "min": [
-                0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 96,
-            "max": [
-                1,
-                1,
-                0,
-                0
-            ],
-            "min": [
-                0,
-                0,
-                0,
-                0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 96,
-            "max": [
-                0.998198390007019,
-                0.998198390007019,
-                0.6888381242752075
-            ],
-            "min": [
-                -0.998198390007019,
-                -0.998198390007019,
-                -0.644473135471344
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 1152,
-            "componentType": 5126,
-            "count": 96,
-            "max": [
-                1.0,
-                1.0,
-                4.575077056884766
-            ],
-            "min": [
-                -1.0,
-                -0.9999995827674866,
-                -4.575077056884766
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 3,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 96,
-            "max": [
-                1.0,
-                0.261398196220398,
-                0.0,
-                0.0
-            ],
-            "min": [
-                0.738601803779602,
-                0.0,
-                0.0,
-                0.0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                2.083333015441895
-            ],
-            "min": [
-                0.04166661947965622
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                0.0,
-                -3.156060017772689e-7,
-                -4.1803297996521
-            ],
-            "min": [
-                0.0,
-                -3.156060017772689e-7,
-                -4.1803297996521
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                -0.7047404050827026,
-                -0.0,
-                -0.0,
-                -0.7094652056694031
-            ],
-            "min": [
-                -0.7047404050827026,
-                -0.0,
-                -0.0,
-                -0.7094652056694031
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 36,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                1.0,
-                0.9999998807907105,
-                0.9999998807907105
-            ],
-            "min": [
-                1.0,
-                0.9999998807907105,
-                0.9999998807907105
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 12,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                2.083333015441895
-            ],
-            "min": [
-                0.04166661947965622
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 72,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                0.0,
-                4.18717098236084,
-                0.0
-            ],
-            "min": [
-                0.0,
-                4.18717098236084,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 48,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                0.2933785021305084,
-                -9.94789530750495e-8,
-                -0.0002783441450446844,
-                -0.9559963345527648
-            ],
-            "min": [
-                -0.0020521103870123626,
-                -0.00008614854596089572,
-                -0.00029137087403796613,
-                -0.999997854232788
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 108,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ],
-            "min": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 7,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 2,
-            "max": [
-                1.0,
-                0.0,
-                0.000001394809942212305,
-                0.0,
-                0.000002896920022976701,
-                0.006681859027594328,
-                -0.9999778270721436,
-                0.0,
-                0.0005827349959872663,
-                0.9999966025352478,
-                0.006681739818304777,
-                0.0,
-                0.0,
-                4.18023681640625,
-                0.02795993909239769,
-                1.0
-            ],
-            "min": [
-                0.9999999403953552,
-                -0.0005827400018461049,
-                0.0,
-                0.0,
-                0.0,
-                0.002577662002295256,
-                -0.9999967217445374,
-                0.0,
-                0.0,
-                0.999977707862854,
-                0.002577601931989193,
-                0.0,
-                -0.000004012620138382772,
-                -0.006818830035626888,
-                0.027931740507483484,
-                1.0
-            ],
-            "type": "MAT4"
-        }
-    ],
-    "materials": [
-        {
-            "extensions": {
-                "KHR_materials_common": {
-                    "doubleSided": false,
-                    "jointCount": 2,
-                    "technique": "PHONG",
-                    "transparent": false,
-                    "values": {
-                        "ambient": [
-                            0.0,
-                            0.0,
-                            0.0,
-                            1.0
-                        ],
-                        "diffuse": [
-                            0.27963539958000185,
-                            0.6399999856948853,
-                            0.21094390749931336,
-                            1.0
-                        ],
-                        "emission": [
-                            0.0,
-                            0.0,
-                            0.0,
-                            1.0
-                        ],
-                        "specular": [
-                            0.5,
-                            0.5,
-                            0.5,
-                            1.0
-                        ],
-                        "shininess": [
-                            50.0
-                        ],
-                        "transparency": [
-                            1.0
-                        ]
-                    },
-                    "name": "Material_001-effect"
-                }
-            },
-            "name": "Material_001-effect"
-        }
-    ],
-    "bufferViews": [
-        {
-            "buffer": 0,
-            "byteOffset": 5000,
-            "byteLength": 1128,
-            "target": 34963
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 4208,
-            "byteLength": 768,
-            "byteStride": 8,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 1904,
-            "byteLength": 2304,
-            "byteStride": 12,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 224,
-            "byteLength": 1536,
-            "byteStride": 16,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 4976,
-            "byteLength": 24
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 1760,
-            "byteLength": 144
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 128,
-            "byteLength": 96
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 0,
-            "byteLength": 128
-        }
-    ],
-    "buffers": [
-        {
-            "byteLength": 6128,
-            "uri": "RiggedSimple0.bin"
-        }
-    ],
-    "extensionsRequired": [
-        "KHR_materials_common"
-    ],
-    "extensionsUsed": [
-        "KHR_materials_common"
-    ]
-}

BIN
examples/models/gltf/RiggedSimple/glTF-MaterialsCommon/RiggedSimple0.bin


+ 0 - 667
examples/models/gltf/RiggedSimple/glTF-techniqueWebGL/RiggedSimple.gltf

@@ -1,667 +0,0 @@
-{
-    "asset": {
-        "generator": "COLLADA2GLTF",
-        "version": "2.0"
-    },
-    "scene": 0,
-    "scenes": [
-        {
-            "nodes": [
-                0
-            ]
-        }
-    ],
-    "nodes": [
-        {
-            "children": [
-                4,
-                1
-            ],
-            "matrix": [
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                -1.0,
-                0.0,
-                0.0,
-                1.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                0.0,
-                1.0
-            ]
-        },
-        {
-            "mesh": 0,
-            "skin": 0
-        },
-        {
-            "children": [
-                3
-            ],
-            "translation": [
-                0.0,
-                -3.156060017772689e-7,
-                -4.1803297996521
-            ],
-            "rotation": [
-                -0.7047404050827026,
-                -0.0,
-                -0.0,
-                -0.7094652056694031
-            ],
-            "scale": [
-                1.0,
-                0.9999998807907105,
-                0.9999998807907105
-            ]
-        },
-        {
-            "translation": [
-                0.0,
-                4.18717098236084,
-                0.0
-            ],
-            "rotation": [
-                -0.0020521103870123626,
-                -9.94789530750495e-8,
-                -0.00029137087403796613,
-                -0.999997854232788
-            ],
-            "scale": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ]
-        },
-        {
-            "children": [
-                2
-            ]
-        }
-    ],
-    "meshes": [
-        {
-            "primitives": [
-                {
-                    "attributes": {
-                        "JOINTS_0": 1,
-                        "NORMAL": 2,
-                        "POSITION": 3,
-                        "WEIGHTS_0": 4
-                    },
-                    "indices": 0,
-                    "mode": 4,
-                    "material": 0
-                }
-            ],
-            "name": "Cylinder"
-        }
-    ],
-    "animations": [
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 2,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 2,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 2,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 5,
-                    "interpolation": "LINEAR",
-                    "output": 6
-                },
-                {
-                    "input": 5,
-                    "interpolation": "LINEAR",
-                    "output": 7
-                },
-                {
-                    "input": 5,
-                    "interpolation": "LINEAR",
-                    "output": 8
-                }
-            ]
-        },
-        {
-            "channels": [
-                {
-                    "sampler": 0,
-                    "target": {
-                        "node": 3,
-                        "path": "translation"
-                    }
-                },
-                {
-                    "sampler": 1,
-                    "target": {
-                        "node": 3,
-                        "path": "rotation"
-                    }
-                },
-                {
-                    "sampler": 2,
-                    "target": {
-                        "node": 3,
-                        "path": "scale"
-                    }
-                }
-            ],
-            "samplers": [
-                {
-                    "input": 9,
-                    "interpolation": "LINEAR",
-                    "output": 10
-                },
-                {
-                    "input": 9,
-                    "interpolation": "LINEAR",
-                    "output": 11
-                },
-                {
-                    "input": 9,
-                    "interpolation": "LINEAR",
-                    "output": 12
-                }
-            ]
-        }
-    ],
-    "skins": [
-        {
-            "inverseBindMatrices": 13,
-            "skeleton": 2,
-            "joints": [
-                2,
-                3
-            ],
-            "name": "Armature"
-        }
-    ],
-    "accessors": [
-        {
-            "bufferView": 0,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 564,
-            "max": [
-                95
-            ],
-            "min": [
-                0
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 1,
-            "byteOffset": 0,
-            "componentType": 5123,
-            "count": 96,
-            "max": [
-                1,
-                1,
-                0,
-                0
-            ],
-            "min": [
-                0,
-                0,
-                0,
-                0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 96,
-            "max": [
-                0.998198390007019,
-                0.998198390007019,
-                0.6888381242752075
-            ],
-            "min": [
-                -0.998198390007019,
-                -0.998198390007019,
-                -0.644473135471344
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 2,
-            "byteOffset": 1152,
-            "componentType": 5126,
-            "count": 96,
-            "max": [
-                1.0,
-                1.0,
-                4.575077056884766
-            ],
-            "min": [
-                -1.0,
-                -0.9999995827674866,
-                -4.575077056884766
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 3,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 96,
-            "max": [
-                1.0,
-                0.261398196220398,
-                0.0,
-                0.0
-            ],
-            "min": [
-                0.738601803779602,
-                0.0,
-                0.0,
-                0.0
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                2.083333015441895
-            ],
-            "min": [
-                0.04166661947965622
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                0.0,
-                -3.156060017772689e-7,
-                -4.1803297996521
-            ],
-            "min": [
-                0.0,
-                -3.156060017772689e-7,
-                -4.1803297996521
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                -0.7047404050827026,
-                -0.0,
-                -0.0,
-                -0.7094652056694031
-            ],
-            "min": [
-                -0.7047404050827026,
-                -0.0,
-                -0.0,
-                -0.7094652056694031
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 36,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                1.0,
-                0.9999998807907105,
-                0.9999998807907105
-            ],
-            "min": [
-                1.0,
-                0.9999998807907105,
-                0.9999998807907105
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 4,
-            "byteOffset": 12,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                2.083333015441895
-            ],
-            "min": [
-                0.04166661947965622
-            ],
-            "type": "SCALAR"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 72,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                0.0,
-                4.18717098236084,
-                0.0
-            ],
-            "min": [
-                0.0,
-                4.18717098236084,
-                0.0
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 6,
-            "byteOffset": 48,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                0.2933785021305084,
-                -9.94789530750495e-8,
-                -0.0002783441450446844,
-                -0.9559963345527648
-            ],
-            "min": [
-                -0.0020521103870123626,
-                -0.00008614854596089572,
-                -0.00029137087403796613,
-                -0.999997854232788
-            ],
-            "type": "VEC4"
-        },
-        {
-            "bufferView": 5,
-            "byteOffset": 108,
-            "componentType": 5126,
-            "count": 3,
-            "max": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ],
-            "min": [
-                1.0,
-                1.0,
-                1.0000001192092896
-            ],
-            "type": "VEC3"
-        },
-        {
-            "bufferView": 7,
-            "byteOffset": 0,
-            "componentType": 5126,
-            "count": 2,
-            "max": [
-                1.0,
-                0.0,
-                0.000001394809942212305,
-                0.0,
-                0.000002896920022976701,
-                0.006681859027594328,
-                -0.9999778270721436,
-                0.0,
-                0.0005827349959872663,
-                0.9999966025352478,
-                0.006681739818304777,
-                0.0,
-                0.0,
-                4.18023681640625,
-                0.02795993909239769,
-                1.0
-            ],
-            "min": [
-                0.9999999403953552,
-                -0.0005827400018461049,
-                0.0,
-                0.0,
-                0.0,
-                0.002577662002295256,
-                -0.9999967217445374,
-                0.0,
-                0.0,
-                0.999977707862854,
-                0.002577601931989193,
-                0.0,
-                -0.000004012620138382772,
-                -0.006818830035626888,
-                0.027931740507483484,
-                1.0
-            ],
-            "type": "MAT4"
-        }
-    ],
-    "materials": [
-        {
-            "values": {
-                "ambient": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "diffuse": [
-                    0.27963539958000185,
-                    0.6399999856948853,
-                    0.21094390749931336,
-                    1.0
-                ],
-                "emission": [
-                    0.0,
-                    0.0,
-                    0.0,
-                    1.0
-                ],
-                "specular": [
-                    0.5,
-                    0.5,
-                    0.5,
-                    1.0
-                ],
-                "shininess": [
-                    50.0
-                ],
-                "transparency": [
-                    1.0
-                ]
-            },
-            "technique": 0
-        }
-    ],
-    "techniques": [
-        {
-            "attributes": {
-                "a_joint": "joint",
-                "a_normal": "normal",
-                "a_position": "position",
-                "a_weight": "weight"
-            },
-            "parameters": {
-                "ambient": {
-                    "type": 35666
-                },
-                "diffuse": {
-                    "type": 35666
-                },
-                "emission": {
-                    "type": 35666
-                },
-                "joint": {
-                    "semantic": "JOINT",
-                    "type": 35666
-                },
-                "jointMatrix": {
-                    "semantic": "JOINTMATRIX",
-                    "count": 2,
-                    "type": 35676
-                },
-                "modelViewMatrix": {
-                    "semantic": "MODELVIEW",
-                    "type": 35676
-                },
-                "normal": {
-                    "semantic": "NORMAL",
-                    "type": 35665
-                },
-                "normalMatrix": {
-                    "semantic": "MODELVIEWINVERSETRANSPOSE",
-                    "type": 35675
-                },
-                "position": {
-                    "semantic": "POSITION",
-                    "type": 35665
-                },
-                "projectionMatrix": {
-                    "semantic": "PROJECTION",
-                    "type": 35676
-                },
-                "shininess": {
-                    "type": 5126
-                },
-                "specular": {
-                    "type": 35666
-                },
-                "transparency": {
-                    "type": 5126
-                },
-                "weight": {
-                    "semantic": "WEIGHT",
-                    "type": 35666
-                }
-            },
-            "program": 0,
-            "states": {
-                "enable": [
-                    2884,
-                    2929
-                ]
-            },
-            "uniforms": {
-                "u_ambient": "ambient",
-                "u_diffuse": "diffuse",
-                "u_emission": "emission",
-                "u_jointMatrix": "jointMatrix",
-                "u_modelViewMatrix": "modelViewMatrix",
-                "u_normalMatrix": "normalMatrix",
-                "u_projectionMatrix": "projectionMatrix",
-                "u_shininess": "shininess",
-                "u_specular": "specular",
-                "u_transparency": "transparency"
-            }
-        }
-    ],
-    "programs": [
-        {
-            "attributes": [
-                "a_joint",
-                "a_normal",
-                "a_position",
-                "a_weight"
-            ],
-            "fragmentShader": 1,
-            "vertexShader": 0
-        }
-    ],
-    "shaders": [
-        {
-            "type": 35633,
-            "uri": "RiggedSimple0.vert"
-        },
-        {
-            "type": 35632,
-            "uri": "RiggedSimple1.frag"
-        }
-    ],
-    "bufferViews": [
-        {
-            "buffer": 0,
-            "byteOffset": 5000,
-            "byteLength": 1128,
-            "target": 34963
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 4208,
-            "byteLength": 768,
-            "byteStride": 8,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 1904,
-            "byteLength": 2304,
-            "byteStride": 12,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 224,
-            "byteLength": 1536,
-            "byteStride": 16,
-            "target": 34962
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 4976,
-            "byteLength": 24
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 1760,
-            "byteLength": 144
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 128,
-            "byteLength": 96
-        },
-        {
-            "buffer": 0,
-            "byteOffset": 0,
-            "byteLength": 128
-        }
-    ],
-    "buffers": [
-        {
-            "byteLength": 6128,
-            "uri": "RiggedSimple0.bin"
-        }
-    ],
-    "extensionsRequired": [
-        "KHR_technique_webgl"
-    ],
-    "extensionsUsed": [
-        "KHR_technique_webgl"
-    ]
-}

BIN
examples/models/gltf/RiggedSimple/glTF-techniqueWebGL/RiggedSimple0.bin


+ 0 - 21
examples/models/gltf/RiggedSimple/glTF-techniqueWebGL/RiggedSimple0.vert

@@ -1,21 +0,0 @@
-precision highp float;
-uniform mat4 u_modelViewMatrix;
-uniform mat4 u_projectionMatrix;
-uniform mat3 u_normalMatrix;
-uniform mat4 u_jointMatrix[2];
-attribute vec3 a_position;
-varying vec3 v_position;
-attribute vec3 a_normal;
-varying vec3 v_normal;
-attribute vec4 a_joint;
-attribute vec4 a_weight;
-void main(void) {
-    mat4 skinMat = a_weight.x * u_jointMatrix[int(a_joint.x)];
-    skinMat += a_weight.y * u_jointMatrix[int(a_joint.y)];
-    skinMat += a_weight.z * u_jointMatrix[int(a_joint.z)];
-    skinMat += a_weight.w * u_jointMatrix[int(a_joint.w)];
-    vec4 pos = u_modelViewMatrix * skinMat * vec4(a_position,1.0);
-    v_position = pos.xyz;
-    gl_Position = u_projectionMatrix * pos;
-    v_normal = u_normalMatrix * mat3(skinMat) * a_normal;
-}

+ 0 - 32
examples/models/gltf/RiggedSimple/glTF-techniqueWebGL/RiggedSimple1.frag

@@ -1,32 +0,0 @@
-precision highp float;
-uniform vec4 u_ambient;
-uniform vec4 u_diffuse;
-uniform vec4 u_emission;
-uniform vec4 u_specular;
-uniform float u_shininess;
-uniform float u_transparency;
-varying vec3 v_position;
-varying vec3 v_normal;
-void main(void) {
-    vec3 normal = normalize(v_normal);
-    vec4 diffuse = u_diffuse;
-    vec3 diffuseLight = vec3(0.0, 0.0, 0.0);
-    vec3 specular = u_specular.rgb;
-    vec3 specularLight = vec3(0.0, 0.0, 0.0);
-    vec3 emission = u_emission.rgb;
-    vec3 ambient = u_ambient.rgb;
-    vec3 viewDir = -normalize(v_position);
-    vec3 ambientLight = vec3(0.0, 0.0, 0.0);
-    ambientLight += vec3(0.2, 0.2, 0.2);
-    vec3 l = vec3(0.0, 0.0, 1.0);
-    diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal, l), 0.); 
-    vec3 reflectDir = reflect(-l, normal);
-    float specularIntensity = max(0., pow(max(dot(reflectDir, viewDir), 0.), u_shininess));
-    specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity;
-    vec3 color = vec3(0.0, 0.0, 0.0);
-    color += diffuse.rgb * diffuseLight;
-    color += specular * specularLight;
-    color += emission;
-    color += ambient * ambientLight;
-    gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency);
-}

+ 1 - 1
examples/webgl_buffergeometry_instancing_interleaved_dynamic.html

@@ -214,7 +214,7 @@
 
 		// material
 		var texture = new THREE.TextureLoader().load( 'textures/crate.gif' );
-		texture.anisotropy = renderer.getMaxAnisotropy();
+		texture.anisotropy = renderer.capabilities.getMaxAnisotropy();
 
 		var material = new THREE.RawShaderMaterial( {
 

+ 1 - 1
examples/webgl_lights_rectarealight.html

@@ -53,7 +53,7 @@
 
 			if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
 
-			var renerer, scene, camera;
+			var renderer, scene, camera;
 
 			var origin = new THREE.Vector3();
 

+ 1 - 6
examples/webgl_loader_gltf_extensions.html

@@ -89,7 +89,6 @@
 				<option value="glTF">None (Default)</option>
 				<option value="glTF-Embedded">None (Embedded)</option>
 				<option value="glTF-Binary">None (Binary)</option>
-				<option value="glTF-MaterialsCommon">Common Materials</option>
 				<option value="glTF-pbrSpecularGlossiness">Specular-Glossiness (PBR)</option>
 			</select>
 		</div>
@@ -446,7 +445,7 @@
 					addLights:true,
 					addGround:true,
 					shadows:true,
-					extensions: ['glTF', 'glTF-Embedded', 'glTF-MaterialsCommon', 'glTF-pbrSpecularGlossiness', 'glTF-Binary']
+					extensions: ['glTF', 'glTF-Embedded', 'glTF-pbrSpecularGlossiness', 'glTF-Binary']
 				},
 				{
 					name : "Monster", url : "./models/gltf/Monster/%s/Monster.gltf",
@@ -458,7 +457,6 @@
 					addLights:true,
 					shadows:true,
 					addGround:true,
-					// TODO: 'glTF-MaterialsCommon'
 					extensions: ['glTF', 'glTF-Embedded', 'glTF-pbrSpecularGlossiness', 'glTF-Binary']
 				},
 				{
@@ -468,7 +466,6 @@
 					 addLights:true,
 					 addGround:true,
 					 shadows:true,
-					// TODO: 'glTF-MaterialsCommon'
 					extensions: ['glTF', 'glTF-Embedded', 'glTF-pbrSpecularGlossiness', 'glTF-Binary']
 				},
 				{
@@ -478,7 +475,6 @@
 					addLights:true,
 					addGround:true,
 					shadows:true,
-					// TODO: 'glTF-MaterialsCommon'
 					extensions: ['glTF', 'glTF-Embedded', 'glTF-pbrSpecularGlossiness', 'glTF-Binary']
 				},
 				{
@@ -488,7 +484,6 @@
 					objectRotation: new THREE.Euler(0, 90, 0),
 					addLights:true,
 					shadows:true,
-					// TODO: 'glTF-MaterialsCommon'
 					extensions: ['glTF', 'glTF-Embedded', 'glTF-pbrSpecularGlossiness', 'glTF-Binary']
 				},
 				{

+ 1 - 1
examples/webgl_materials_texture_anisotropy.html

@@ -108,7 +108,7 @@
 
 				var textureLoader = new THREE.TextureLoader();
 
-				var maxAnisotropy = renderer.getMaxAnisotropy();
+				var maxAnisotropy = renderer.capabilities.getMaxAnisotropy();
 
 				var texture1 = textureLoader.load( "textures/crate.gif" );
 				var material1 = new THREE.MeshPhongMaterial( { color: 0xffffff, map: texture1 } );

+ 5 - 8
examples/webgl_points_dynamic.html

@@ -57,24 +57,21 @@
 
 			if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
 
-			var camera, scene, renderer, mesh, directionalLight;
+			var camera, scene, renderer, mesh;
 
 			var parent, meshes = [], clonemeshes = [];
 
-			var p;
-
 			var composer, effectFocus;
 
 			var clock = new THREE.Clock();
 
+			var stats;
+
 			init();
 			animate();
 
 			function init() {
 
-				container = document.createElement( 'div' );
-				document.body.appendChild( container );
-
 				camera = new THREE.PerspectiveCamera( 20, window.innerWidth / window.innerHeight, 1, 50000 );
 				camera.position.set( 0, 700, 7000 );
 
@@ -193,9 +190,9 @@
 
 					if ( child.isMesh ) {
 
-						buffer = child.geometry.attributes[ bufferName ];
+						var buffer = child.geometry.attributes[ bufferName ];
 
-						combined.set(buffer.array, offset);
+						combined.set( buffer.array, offset );
 						offset += buffer.array.length;
 
 					}

+ 10 - 10
examples/webgl_sprites.html

@@ -119,22 +119,27 @@
 				var height = material.map.image.height;
 
 				spriteTL = new THREE.Sprite( material );
+				spriteTL.center.set( 0.0, 1.0 );
 				spriteTL.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteTL );
 
 				spriteTR = new THREE.Sprite( material );
+				spriteTR.center.set( 1.0, 1.0 );
 				spriteTR.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteTR );
 
 				spriteBL = new THREE.Sprite( material );
+				spriteBL.center.set( 0.0, 0.0 );
 				spriteBL.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteBL );
 
 				spriteBR = new THREE.Sprite( material );
+				spriteBR.center.set( 1.0, 0.0 );
 				spriteBR.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteBR );
 
 				spriteC = new THREE.Sprite( material );
+				spriteC.center.set( 0.5, 0.5 );
 				spriteC.scale.set( width, height, 1 );
 				sceneOrtho.add( spriteC );
 
@@ -147,16 +152,11 @@
 				var width = window.innerWidth / 2;
 				var height = window.innerHeight / 2;
 
-				var material = spriteTL.material;
-
-				var imageWidth = material.map.image.width / 2;
-				var imageHeight = material.map.image.height / 2;
-
-				spriteTL.position.set( - width + imageWidth,   height - imageHeight, 1 ); // top left
-				spriteTR.position.set(   width - imageWidth,   height - imageHeight, 1 ); // top right
-				spriteBL.position.set( - width + imageWidth, - height + imageHeight, 1 ); // bottom left
-				spriteBR.position.set(   width - imageWidth, - height + imageHeight, 1 ); // bottom right
-				spriteC.position.set( 0, 0, 1 ); // center
+				spriteTL.position.set( - width,   height, 1 ); // top left
+				spriteTR.position.set(   width,   height, 1 ); // top right
+				spriteBL.position.set( - width, - height, 1 ); // bottom left
+				spriteBR.position.set(   width, - height, 1 ); // bottom right
+				spriteC.position.set(        0,        0, 1 ); // center
 
 			}
 

+ 217 - 166
examples/webgl_tiled_forward.html

@@ -45,139 +45,157 @@
 		<script src="js/libs/stats.min.js"></script>
 
 		<script>
-		
-		// Simple form of tiled forward lighting 
+
+		// Simple form of tiled forward lighting
 		// using texels as bitmasks of 32 lights
 
 		var RADIUS = 75;
 
-		THREE.ShaderChunk["lights_pars"] += [
-			"#if defined TILED_FORWARD",
-			"uniform vec4 tileData;",
-			"uniform sampler2D tileTexture;",
-			"uniform sampler2D lightTexture;",
-			"#endif"
-		].join("\n");
-
-		THREE.ShaderChunk["lights_template"] += [
-			"",
-			"#if defined TILED_FORWARD",
-			"vec2 tUv = floor(gl_FragCoord.xy / tileData.xy * 32.) / 32. + tileData.zw;",
-			"vec4 tile = texture2D(tileTexture, tUv);",
-			"for (int i=0; i < 4; i++) {",
-			"	float tileVal = tile.x * 255.;",	
-			"  	tile.xyzw = tile.yzwx;",
-			"	if(tileVal == 0.){ continue; }",
-			"  	float tileDiv = 128.;",
-			"	for (int j=0; j < 8; j++) {",
-			"  		if (tileVal < tileDiv) {  tileDiv *= 0.5; continue; }",
-			"		tileVal -= tileDiv;",
-			"		tileDiv *= 0.5;",
-			"  		PointLight pointlight;",
-			"		float uvx = (float(8 * i + j) + 0.5) / 32.;",
-			"  		vec4 lightData = texture2D(lightTexture, vec2(uvx, 0.));",
-			"  		vec4 lightColor = texture2D(lightTexture, vec2(uvx, 1.));",
-			"  		pointlight.position = lightData.xyz;",
-			"  		pointlight.distance = lightData.w;",
-			"  		pointlight.color = lightColor.rgb;",
-			"  		pointlight.decay = lightColor.a;",
-			"  		getPointDirectLightIrradiance( pointlight, geometry, directLight );",
-			"		RE_Direct( directLight, geometry, material, reflectedLight );",
-			"	}",
-			"}",
-			"#endif"
-		].join("\n");
+		THREE.ShaderChunk[ 'lights_pars' ] += [
+			'#if defined TILED_FORWARD',
+			'uniform vec4 tileData;',
+			'uniform sampler2D tileTexture;',
+			'uniform sampler2D lightTexture;',
+			'#endif'
+		].join( '\n' );
+
+		THREE.ShaderChunk[ 'lights_template' ] += [
+			'',
+			'#if defined TILED_FORWARD',
+			'vec2 tUv = floor(gl_FragCoord.xy / tileData.xy * 32.) / 32. + tileData.zw;',
+			'vec4 tile = texture2D(tileTexture, tUv);',
+			'for (int i=0; i < 4; i++) {',
+			'	float tileVal = tile.x * 255.;',
+			'  	tile.xyzw = tile.yzwx;',
+			'	if(tileVal == 0.){ continue; }',
+			'  	float tileDiv = 128.;',
+			'	for (int j=0; j < 8; j++) {',
+			'  		if (tileVal < tileDiv) {  tileDiv *= 0.5; continue; }',
+			'		tileVal -= tileDiv;',
+			'		tileDiv *= 0.5;',
+			'  		PointLight pointlight;',
+			'		float uvx = (float(8 * i + j) + 0.5) / 32.;',
+			'  		vec4 lightData = texture2D(lightTexture, vec2(uvx, 0.));',
+			'  		vec4 lightColor = texture2D(lightTexture, vec2(uvx, 1.));',
+			'  		pointlight.position = lightData.xyz;',
+			'  		pointlight.distance = lightData.w;',
+			'  		pointlight.color = lightColor.rgb;',
+			'  		pointlight.decay = lightColor.a;',
+			'  		getPointDirectLightIrradiance( pointlight, geometry, directLight );',
+			'		RE_Direct( directLight, geometry, material, reflectedLight );',
+			'	}',
+			'}',
+			'#endif'
+		].join( '\n' );
 
 		var lights = [], objects = [];
 
 		var State = {
-			rows:0,
-			cols:0,
+			rows: 0,
+			cols: 0,
 			width: 0,
 			height: 0,
-			tileData : { type: "v4", value: null },
-			tileTexture: { type: "t", value: null },
+			tileData: { type: 'v4', value: null },
+			tileTexture: { type: 't', value: null },
 			lightTexture: {
-				type: "t", 
-				value: new THREE.DataTexture(new Float32Array(32 * 2 * 4), 32, 2, THREE.RGBAFormat, THREE.FloatType)
+				type: 't',
+				value: new THREE.DataTexture( new Float32Array( 32 * 2 * 4 ), 32, 2, THREE.RGBAFormat, THREE.FloatType )
 			},
 		};
 
 		function resizeTiles() {
+
 			var width = window.innerWidth;
 			var height = window.innerHeight;
-			
+
 			State.width = width;
 			State.height = height;
-			State.cols = Math.ceil(width / 32);
-			State.rows = Math.ceil(height / 32);
-			State.tileData.value = [ width, height, 0.5 / Math.ceil( width / 32), 0.5 / Math.ceil( height / 32) ];
-			State.tileTexture.value = new THREE.DataTexture( new Uint8Array(State.cols * State.rows * 4), State.cols, State.rows);
+			State.cols = Math.ceil( width / 32 );
+			State.rows = Math.ceil( height / 32 );
+			State.tileData.value = [ width, height, 0.5 / Math.ceil( width / 32 ), 0.5 / Math.ceil( height / 32 ) ];
+			State.tileTexture.value = new THREE.DataTexture( new Uint8Array( State.cols * State.rows * 4 ), State.cols, State.rows );
+
 		}
 
 		// Generate the light bitmasks and store them in the tile texture
-		function tileLights(renderer, scene, camera) {
-			if(!camera.projectionMatrix) return;
-			
+		function tileLights( renderer, scene, camera ) {
+
+			if ( ! camera.projectionMatrix ) return;
+
 			var d = State.tileTexture.value.image.data;
 			var ld = State.lightTexture.value.image.data;
-			
+
 			var viewMatrix = camera.matrixWorldInverse;
-			
-			d.fill(0);
-			
+
+			d.fill( 0 );
+
 			var vector = new THREE.Vector3();
 
-			lights.forEach(function (light, index) {
+			lights.forEach( function ( light, index ) {
 
 				vector.setFromMatrixPosition( light.matrixWorld );
-				
-				var bs = lightBounds(camera, vector, light._light.radius);
-				
+
+				var bs = lightBounds( camera, vector, light._light.radius );
+
 				vector.applyMatrix4( viewMatrix );
-				vector.toArray(ld, 4 * index);
-				ld[4 * index + 3] = light._light.radius;
-				light._light.color.toArray(ld,32 * 4 + 4 * index);
-				ld[32 * 4 + 4 * index + 3] = light._light.decay;
-
-				if(bs[1] < 0 || bs[0] > State.width || bs[3] < 0 || bs[2] > State.height) return;
-				if(bs[0] < 0) bs[0] = 0;
-				if(bs[1] > State.width) bs[1] = State.width;
-				if(bs[2] < 0) bs[2] = 0;
-				if(bs[3] > State.height) bs[3] = State.height;
-				
-				var i4 = Math.floor(index / 8), i8 = 7 - (index % 8);
-				for (var i = Math.floor(bs[2] / 32); i <= Math.ceil(bs[3]/32); i++) {
-					for(var j = Math.floor(bs[0]/32); j <= Math.ceil(bs[1]/32); j++) {
-						d[(State.cols * i + j) * 4 + i4] |= 1 << i8;
+				vector.toArray( ld, 4 * index );
+				ld[ 4 * index + 3 ] = light._light.radius;
+				light._light.color.toArray( ld, 32 * 4 + 4 * index );
+				ld[ 32 * 4 + 4 * index + 3 ] = light._light.decay;
+
+				if ( bs[ 1 ] < 0 || bs[ 0 ] > State.width || bs[ 3 ] < 0 || bs[ 2 ] > State.height ) return;
+				if ( bs[ 0 ] < 0 ) bs[ 0 ] = 0;
+				if ( bs[ 1 ] > State.width ) bs[ 1 ] = State.width;
+				if ( bs[ 2 ] < 0 ) bs[ 2 ] = 0;
+				if ( bs[ 3 ] > State.height ) bs[ 3 ] = State.height;
+
+				var i4 = Math.floor( index / 8 ), i8 = 7 - ( index % 8 );
+
+				for ( var i = Math.floor( bs[ 2 ] / 32 ); i <= Math.ceil( bs[ 3 ] / 32 ); i ++ ) {
+
+					for ( var j = Math.floor( bs[ 0 ] / 32 ); j <= Math.ceil( bs[ 1 ] / 32 ); j ++ ) {
+
+						d[ ( State.cols * i + j ) * 4 + i4 ] |= 1 << i8;
+
 					}
-				}        
-			});
+
+				}
+
+			} );
 
 			State.tileTexture.value.needsUpdate = true;
 			State.lightTexture.value.needsUpdate = true;
+
 		}
 
 		// Screen rectangle bounds from light sphere's world AABB
-		var lightBounds = function (){
+		var lightBounds = function () {
+
 			v = new THREE.Vector3();
-			return function (camera, pos, r) {
+			return function ( camera, pos, r ) {
+
 				var minX = State.width, maxX = 0, minY = State.height, maxY = 0, hw = State.width / 2, hh = State.height / 2;
-				for(var i = 0; i < 8; i++){
-					v.copy(pos);
-					v.x += i & 1 ? r : -r;
-					v.y += i & 2 ? r : -r;
-					v.z += i & 4 ? r : -r;
-					var vector = v.project(camera);
-					var x = (vector.x * hw) + hw;
-					var y = (vector.y * hh) + hh;
-					minX = Math.min(minX, x);
-					maxX = Math.max(maxX, x);
-					minY = Math.min(minY, y);
-					maxY = Math.max(maxY, y);
-				}	
-				return [minX, maxX, minY, maxY];
-			}
+
+				for ( var i = 0; i < 8; i ++ ) {
+
+					v.copy( pos );
+					v.x += i & 1 ? r : - r;
+					v.y += i & 2 ? r : - r;
+					v.z += i & 4 ? r : - r;
+					var vector = v.project( camera );
+					var x = ( vector.x * hw ) + hw;
+					var y = ( vector.y * hh ) + hh;
+					minX = Math.min( minX, x );
+					maxX = Math.max( maxX, x );
+					minY = Math.min( minY, y );
+					maxY = Math.max( maxY, y );
+
+				}
+
+				return [ minX, maxX, minY, maxY ];
+
+		};
+
 		}();
 
 
@@ -193,15 +211,15 @@
 		var renderer = new THREE.WebGLRenderer( { antialias: false } );
 		renderer.toneMapping = THREE.LinearToneMapping;
 		container.appendChild( renderer.domElement );
-		
+
 		var renderTarget = new THREE.WebGLRenderTarget();
 
 		scene.add( new THREE.AmbientLight( 0xffffff, 0.33 ) );
-		// At least one regular Pointlight is needed to activate light support 
-		scene.add(new THREE.PointLight( 0xff0000, 0.1, 0.1 ));
-		
+		// At least one regular Pointlight is needed to activate light support
+		scene.add( new THREE.PointLight( 0xff0000, 0.1, 0.1 ) );
+
 		var bloom = new THREE.UnrealBloomPass( new THREE.Vector2(), 0.8, 0.6, 0.8 );
-		bloom.renderToScreen = true;				
+		bloom.renderToScreen = true;
 
 		var stats = new Stats();
 		container.appendChild( stats.dom );
@@ -209,104 +227,129 @@
 		controls = new THREE.OrbitControls( camera, renderer.domElement );
 		controls.minDistance = 120;
 		controls.maxDistance = 320;
-			
+
 		var materials = [];
 
 		var Heads = [
-			{ type: "physical", uniforms: { diffuse: 0x888888, metalness: 1.0, roughness: 0.66}, defines: {} },
-			{ type: "standard", uniforms: { diffuse: 0x666666, metalness: 0.1, roughness: 0.33}, defines: {} },
-			{ type: "phong", uniforms: { diffuse: 0x777777, shininess: 20}, defines: {} },
-			{ type: "phong", uniforms: { diffuse: 0x555555, shininess: 10}, defines: { TOON: 1} }
+			{ type: 'physical', uniforms: { diffuse: 0x888888, metalness: 1.0, roughness: 0.66 }, defines: {} },
+			{ type: 'standard', uniforms: { diffuse: 0x666666, metalness: 0.1, roughness: 0.33 }, defines: {} },
+			{ type: 'phong', uniforms: { diffuse: 0x777777, shininess: 20 }, defines: {} },
+			{ type: 'phong', uniforms: { diffuse: 0x555555, shininess: 10 }, defines: { TOON: 1 } }
 		];
 
-		function init (geom) {
+		function init( geom ) {
+
 			var sphereGeom = new THREE.SphereBufferGeometry( 0.5, 32, 32 );
-			var tIndex = Math.round(Math.random() * 3);
-			Object.keys(Heads).forEach(function(t, index) {
+			var tIndex = Math.round( Math.random() * 3 );
+			Object.keys( Heads ).forEach( function ( t, index ) {
+
 				var g = new THREE.Group();
-				var conf = Heads[t];
-				var ml = THREE.ShaderLib[conf.type];
-				var mtl = new THREE.ShaderMaterial({
+				var conf = Heads[ t ];
+				var ml = THREE.ShaderLib[ conf.type ];
+				var mtl = new THREE.ShaderMaterial( {
 					lights: true,
 					fragmentShader: ml.fragmentShader,
 					vertexShader: ml.vertexShader,
-					uniforms: THREE.UniformsUtils.clone(ml.uniforms),
+					uniforms: THREE.UniformsUtils.clone( ml.uniforms ),
 					defines: conf.defines,
 					transparent: tIndex === index ? true : false,
 
-				});
+				} );
+
 				mtl.uniforms.opacity.value = tIndex === index ? 0.9 : 1;
 				mtl.uniforms.tileData = State.tileData;
 				mtl.uniforms.tileTexture = State.tileTexture;
 				mtl.uniforms.lightTexture = State.lightTexture;
-				for( var u in conf.uniforms ) {
-					var vu = conf.uniforms[u];
-					if(mtl.uniforms[u].value.set) {
-						mtl.uniforms[u].value.set(vu);
+
+				for ( var u in conf.uniforms ) {
+
+					var vu = conf.uniforms[ u ];
+
+					if ( mtl.uniforms[ u ].value.set ) {
+
+						mtl.uniforms[ u ].value.set( vu );
+
 					} else {
-						mtl.uniforms[u].value = vu;
+
+						mtl.uniforms[ u ].value = vu;
+
 					}
+
 				}
-				mtl.defines["TILED_FORWARD"] = 1;
-				materials.push(mtl);
-				var obj = new THREE.Mesh(geom, mtl);
+
+				mtl.defines[ 'TILED_FORWARD' ] = 1;
+				materials.push( mtl );
+				var obj = new THREE.Mesh( geom, mtl );
 				mtl.side = tIndex === index ? THREE.FrontSide : THREE.DoubleSide;
-				
+
 				g.rotation.y = index * Math.PI / 2;
-				g.position.x = Math.sin(index * Math.PI / 2) * RADIUS;
-				g.position.z = Math.cos(index * Math.PI / 2) * RADIUS;
-				g.add(obj);
+				g.position.x = Math.sin( index * Math.PI / 2 ) * RADIUS;
+				g.position.z = Math.cos( index * Math.PI / 2 ) * RADIUS;
+				g.add( obj );
+
+				for ( var i = 0; i < 8; i ++ ) {
 
-				for(var i=0; i < 8; i++) {
-					var sat = Math.floor(33 + 33 * Math.random());
-					var chroma = Math.random() * 100; 
+					var color = new THREE.Color().setHSL( Math.random(), 1.0, 0.5 );
 					var l = new THREE.Group();
 
-					l.add(new THREE.Mesh(
-						sphereGeom, 
-						new THREE.MeshBasicMaterial( { color: new THREE.Color("hsl(" + chroma + ", " + sat + "%, 50%)") } )
-					));
-					l.add(new THREE.Mesh(
-						sphereGeom, 
-						new THREE.MeshBasicMaterial( { 
-							color: new THREE.Color("hsl(" + chroma + ", " + sat + "%, 50%)"), 
+					l.add( new THREE.Mesh(
+						sphereGeom,
+						new THREE.MeshBasicMaterial( {
+							color: color
+						} )
+					) );
+
+					l.add( new THREE.Mesh(
+						sphereGeom,
+						new THREE.MeshBasicMaterial( {
+							color: color,
 							transparent: true,
 							opacity: 0.033
 						} )
-					));
-					l.children[1].scale.set(6.66,6.66,6.66);
+					) );
+
+					l.children[ 1 ].scale.set( 6.66, 6.66, 6.66 );
 
 					l._light = {
-						color: new THREE.Color("hsl(" + chroma + ", " + sat + "%, 50%)"),
+						color: color,
 						radius: RADIUS,
 						decay: 1,
 						sy: Math.random(),
 						sr: Math.random(),
-						sc: Math.random() ,
-						py: Math.random() * Math.PI ,
-						pr: Math.random() * Math.PI ,
-						pc: Math.random() * Math.PI ,
-						dir: Math.random() > 0.5 ? 1:-1
+						sc: Math.random(),
+						py: Math.random() * Math.PI,
+						pr: Math.random() * Math.PI,
+						pc: Math.random() * Math.PI,
+						dir: Math.random() > 0.5 ? 1 : - 1
 					};
 
-					lights.push(l);
-					g.add(l);
+					lights.push( l );
+					g.add( l );
+
 				}
-				scene.add(g);
-			});
+
+				scene.add( g );
+
+			} );
+
 		}
 
-		function update(now) {
-			lights.forEach(function (l) {
+		function update( now ) {
+
+			lights.forEach( function ( l ) {
+
 				var ld = l._light;
-				var radius = 0.8 + 0.2 * Math.sin(ld.pr + (0.6 + 0.3 * ld.sr) * now);
-				l.position.x =(Math.sin(ld.pc + (0.8 + 0.2 * ld.sc) * now * ld.dir)) * radius * RADIUS;
-				l.position.z =(Math.cos(ld.pc + (0.8 + 0.2 * ld.sc) * now * ld.dir)) * radius * RADIUS;
-				l.position.y = Math.sin(ld.py + (0.8 + 0.2 * ld.sy) * now) * radius * 32;
-			});
+				var radius = 0.8 + 0.2 * Math.sin( ld.pr + ( 0.6 + 0.3 * ld.sr ) * now );
+				l.position.x = ( Math.sin( ld.pc + ( 0.8 + 0.2 * ld.sc ) * now * ld.dir ) ) * radius * RADIUS;
+				l.position.z = ( Math.cos( ld.pc + ( 0.8 + 0.2 * ld.sc ) * now * ld.dir ) ) * radius * RADIUS;
+				l.position.y = Math.sin( ld.py + ( 0.8 + 0.2 * ld.sy ) * now ) * radius * 32;
+
+			} );
+
 		}
 
 		function resize() {
+
 			renderer.setPixelRatio( window.devicePixelRatio );
 			renderer.setSize( window.innerWidth, window.innerHeight );
 			renderTarget.setSize( window.innerWidth, window.innerHeight );
@@ -314,10 +357,13 @@
 			camera.aspect = window.innerWidth / window.innerHeight;
 			camera.updateProjectionMatrix();
 			resizeTiles();
+
 		}
 
-		function postEffect(renderer, scene, camera, renderTarget) {
-			bloom.render(renderer, null, renderTarget);
+		function postEffect( renderer, scene, camera ) {
+
+			bloom.render( renderer, null, renderTarget );
+
 		}
 
 		scene.onBeforeRender = tileLights;
@@ -326,18 +372,23 @@
 
 		var loader = new THREE.JSONLoader();
 
-		loader.load('./obj/walt/WaltHead_slim.js', function(geometry) {
-			window.addEventListener("resize", resize);
-			init(geometry);
+		loader.load( './obj/walt/WaltHead_slim.js', function ( geometry ) {
+
+			window.addEventListener( 'resize', resize );
+			init( geometry );
 			resize();
-			
-			renderer.animate( function(time) {
-				update(time/1000);
+
+			renderer.animate( function ( time ) {
+
+				update( time / 1000 );
 				stats.begin();
-				renderer.render(scene, camera, renderTarget); 
+				renderer.render( scene, camera, renderTarget );
 				stats.end();
-			});
-		});
+
+			} );
+
+		} );
+
 		</script>
 	</body>
-</html>
+</html>

+ 4 - 4
package.json

@@ -52,14 +52,14 @@
   "homepage": "https://threejs.org/",
   "devDependencies": {
     "concurrently": "^3.5.0",
-    "electron": "1.7.8",
+    "electron": "1.7.11",
     "eslint": "^4.1.1",
     "eslint-config-mdcs": "^4.2.2",
-    "google-closure-compiler": "^20170521.0.0",
+    "google-closure-compiler": "20180101.0.0",
     "qunit": "^2.4.0",
-    "rollup": "^0.51.0",
+    "rollup": "^0.55.1",
     "rollup-watch": "^4.0.0",
-    "serve": "^6.3.1",
+    "serve": "6.4.9",
     "uglify-js": "^3.0.23"
   }
 }

+ 4 - 3
rollup.config.js

@@ -25,7 +25,6 @@ function glsl() {
 
 export default {
 	input: 'src/Three.js',
-	indent: '\t',
 	plugins: [
 		glsl()
 	],
@@ -34,11 +33,13 @@ export default {
 		{
 			format: 'umd',
 			name: 'THREE',
-			file: 'build/three.js'
+			file: 'build/three.js',
+			indent: '\t'
 		},
 		{
 			format: 'es',
-			file: 'build/three.module.js'
+			file: 'build/three.module.js',
+			indent: '\t'
 		}
 	]
 };

+ 5 - 0
src/Three.Legacy.js

@@ -1333,6 +1333,11 @@ Object.assign( WebGLRenderer.prototype, {
 
 		console.warn( 'THREE.WebGLRenderer: .updateShadowMap() has been removed.' );
 
+	},
+	setFaceCulling: function () {
+
+		console.warn( 'THREE.WebGLRenderer: .setFaceCulling() has been removed.' );
+
 	}
 
 } );

+ 1 - 37
src/extras/core/Font.js

@@ -3,7 +3,6 @@
  * @author mrdoob / http://mrdoob.com/
  */
 
-import { QuadraticBezier, CubicBezier } from './Interpolations.js';
 import { ShapePath } from './ShapePath.js';
 
 
@@ -80,8 +79,7 @@ function createPath( char, divisions, scale, offsetX, offsetY, data ) {
 
 	var path = new ShapePath();
 
-	var pts = [];
-	var x, y, cpx, cpy, cpx0, cpy0, cpx1, cpy1, cpx2, cpy2, laste;
+	var x, y, cpx, cpy, cpx1, cpy1, cpx2, cpy2;
 
 	if ( glyph.o ) {
 
@@ -120,23 +118,6 @@ function createPath( char, divisions, scale, offsetX, offsetY, data ) {
 
 					path.quadraticCurveTo( cpx1, cpy1, cpx, cpy );
 
-					laste = pts[ pts.length - 1 ];
-
-					if ( laste ) {
-
-						cpx0 = laste.x;
-						cpy0 = laste.y;
-
-						for ( var i2 = 1; i2 <= divisions; i2 ++ ) {
-
-							var t = i2 / divisions;
-							QuadraticBezier( t, cpx0, cpx1, cpx );
-							QuadraticBezier( t, cpy0, cpy1, cpy );
-
-						}
-
-					}
-
 					break;
 
 				case 'b': // bezierCurveTo
@@ -150,23 +131,6 @@ function createPath( char, divisions, scale, offsetX, offsetY, data ) {
 
 					path.bezierCurveTo( cpx1, cpy1, cpx2, cpy2, cpx, cpy );
 
-					laste = pts[ pts.length - 1 ];
-
-					if ( laste ) {
-
-						cpx0 = laste.x;
-						cpy0 = laste.y;
-
-						for ( var i2 = 1; i2 <= divisions; i2 ++ ) {
-
-							var t = i2 / divisions;
-							CubicBezier( t, cpx0, cpx1, cpx2, cpx );
-							CubicBezier( t, cpy0, cpy1, cpy2, cpy );
-
-						}
-
-					}
-
 					break;
 
 			}

+ 14 - 0
src/objects/Sprite.js

@@ -1,3 +1,4 @@
+import { Vector2 } from '../math/Vector2.js';
 import { Vector3 } from '../math/Vector3.js';
 import { Object3D } from '../core/Object3D.js';
 import { SpriteMaterial } from '../materials/SpriteMaterial.js';
@@ -15,6 +16,8 @@ function Sprite( material ) {
 
 	this.material = ( material !== undefined ) ? material : new SpriteMaterial();
 
+	this.center = new Vector2( 0.5, 0.5 );
+
 }
 
 Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
@@ -60,8 +63,19 @@ Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
 
 		return new this.constructor( this.material ).copy( this );
 
+	},
+
+	copy: function ( source ) {
+
+		Object3D.prototype.copy.call( this, source );
+
+		if ( source.center !== undefined ) this.center.copy( source.center );
+
+		return this;
+
 	}
 
+
 } );
 
 

+ 3 - 11
src/renderers/WebGLRenderer.js

@@ -1,4 +1,4 @@
-import { REVISION, RGBAFormat, HalfFloatType, FloatType, UnsignedByteType, FrontFaceDirectionCW, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, NoColors, LinearToneMapping } from '../constants.js';
+import { REVISION, RGBAFormat, HalfFloatType, FloatType, UnsignedByteType, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, NoColors, LinearToneMapping } from '../constants.js';
 import { _Math } from '../math/Math.js';
 import { Matrix4 } from '../math/Matrix4.js';
 import { DataTexture } from '../textures/DataTexture.js';
@@ -1216,7 +1216,7 @@ function WebGLRenderer( parameters ) {
 
 		state.setPolygonOffset( false );
 
-		scene.onAfterRender( _this, scene, camera, renderTarget );
+		scene.onAfterRender( _this, scene, camera );
 
 		if ( vr.enabled ) {
 
@@ -1781,6 +1781,7 @@ function WebGLRenderer( parameters ) {
 						boneMatrices.set( skeleton.boneMatrices ); // copy current values
 
 						var boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );
+						boneTexture.needsUpdate = true;
 
 						skeleton.boneMatrices = boneMatrices;
 						skeleton.boneTexture = boneTexture;
@@ -2310,15 +2311,6 @@ function WebGLRenderer( parameters ) {
 
 	}
 
-	// GL state setting
-
-	this.setFaceCulling = function ( cullFace, frontFaceDirection ) {
-
-		state.setCullFace( cullFace );
-		state.setFlipSided( frontFaceDirection === FrontFaceDirectionCW );
-
-	};
-
 	// Textures
 
 	function allocTextureUnit() {

+ 8 - 1
src/renderers/webgl/WebGLSpriteRenderer.js

@@ -55,6 +55,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			uvScale: gl.getUniformLocation( program, 'uvScale' ),
 
 			rotation: gl.getUniformLocation( program, 'rotation' ),
+			center: gl.getUniformLocation( program, 'center' ),
 			scale: gl.getUniformLocation( program, 'scale' ),
 
 			color: gl.getUniformLocation( program, 'color' ),
@@ -171,6 +172,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 		// render all sprites
 
 		var scale = [];
+		var center = [];
 
 		for ( var i = 0, l = sprites.length; i < l; i ++ ) {
 
@@ -189,6 +191,9 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			scale[ 0 ] = spriteScale.x;
 			scale[ 1 ] = spriteScale.y;
 
+			center[ 0 ] = sprite.center.x - 0.5;
+			center[ 1 ] = sprite.center.y - 0.5;
+
 			var fogType = 0;
 
 			if ( scene.fog && material.fog ) {
@@ -220,6 +225,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			gl.uniform3f( uniforms.color, material.color.r, material.color.g, material.color.b );
 
 			gl.uniform1f( uniforms.rotation, material.rotation );
+			gl.uniform2fv( uniforms.center, center );
 			gl.uniform2fv( uniforms.scale, scale );
 
 			state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha );
@@ -259,6 +265,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 			'uniform mat4 modelViewMatrix;',
 			'uniform mat4 projectionMatrix;',
 			'uniform float rotation;',
+			'uniform vec2 center;',
 			'uniform vec2 scale;',
 			'uniform vec2 uvOffset;',
 			'uniform vec2 uvScale;',
@@ -273,7 +280,7 @@ function WebGLSpriteRenderer( renderer, gl, state, textures, capabilities ) {
 
 			'	vUV = uvOffset + uv * uvScale;',
 
-			'	vec2 alignedPosition = position * scale;',
+			'	vec2 alignedPosition = ( position - center ) * scale;',
 
 			'	vec2 rotatedPosition;',
 			'	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;',

+ 1 - 1
utils/build/externs.js

@@ -3,5 +3,5 @@ var define;
 var module;
 var exports;
 var performance;
-var ImageBitmap, createImageBitmap;
+var createImageBitmap;
 var WebGL2RenderingContext;

+ 0 - 58
utils/exporters/maya/README.md

@@ -1,58 +0,0 @@
-# Three.js Maya Export
-
-Exports Maya models to Three.js' JSON format.  Currently supports exporting the following:
-
-- Vertices
-- Faces
-- Normals
-- UV sets
-- Shaders/Materials
-- Per-Face material indices
-- Color/Diffuse Maps
-- Specular Maps
-- Bump/Normal Maps
-- Bones
-- Skins (configurable influences per vertex)
-- Skeletal animation
-- Morph Target/Vertex Cache animation
-- Multiple Characters per scene
-
-## Installation
-
-(Maya 2016 suggested)
-
-**Please note this plugin will not work with Maya LT, as it does not support PyMel.**
-
-Install [pymel](http://download.autodesk.com/global/docs/maya2014/en_us/PyMel/install.html) if necessary – Maya 2015 and newer will already include this for you. If you need to install PyMel manually, you can clone the latest from the [LumaPictures/pymel](https://github.com/LumaPictures/pymel) repository.
-
-Copy the scripts and plug-ins folders to the appropriate maya folder, where `maya-version` is your current version of Maya (eg. 2013-x64).
-
-- Windows: `C:\Users\username\Documents\maya\maya-version`
-- OSX: `~/Library/Preferences/Autodesk/maya/maya-version`
-- Linux: `/usr/autodesk/userconfig/maya/maya-version`
-
-After that, you need to activate the plugin.  In Maya, open `Windows > Settings/Preferences > Plug-in Manager` and enable the checkboxes next to `threeJsFileTranslator.py`.
-
-![menu](http://i.imgur.com/XPsq77Q.png)
-
-![plugin](http://i.imgur.com/Bvlj8l6.png)
-
-## Usage
-
-Use the regular Export menus within Maya, select `Three.js`.
-
-## Notes
-
-Export Selected will not export bones or animations. That is only supported in Export All.
-
-The Maya "Color" Maps are exported as the diffuseColor and mapDiffuse attributes in JSON. The Maya "Diffuse" Maps do NOT export. 
-
-It is recommended to do one character per scene if you are planning to export animations. All geometry will be merged together in the JSON during an export all.
-
-## Trouble Shooting
-
-If you are getting errors while exporting there are a couple things you can try that may help.
-
-- Triangulate all objects before exporting. I have encountered geometry that will not export until I do this. 
-
-- Freeze Transforms. If you've scaled your objects any amount before exporting you'll need to freeze transforms to ensure the normals are exported properly. 

+ 0 - 668
utils/exporters/maya/plug-ins/threeJsFileTranslator.py

@@ -1,668 +0,0 @@
-__author__ = 'Sean Griffin'
-__version__ = '1.0.0'
-__email__ = '[email protected]'
-
-import sys
-
-import os.path
-import json
-import shutil
-
-from pymel.core import *
-from maya.OpenMaya import *
-from maya.OpenMayaMPx import *
-
-kPluginTranslatorTypeName = 'Three.js'
-kOptionScript = 'ThreeJsExportScript'
-kDefaultOptionsString = '0'
-
-FLOAT_PRECISION = 8
-
-class ThreeJsWriter(object):
-    def __init__(self):
-        self.componentKeys = ['vertices', 'normals', 'colors', 'uvs', 'faces',
-                'materials', 'colorMaps', 'specularMaps', 'bumpMaps', 'copyTextures',
-                'bones', 'skeletalAnim', 'bakeAnimations', 'prettyOutput']
-
-    def write(self, path, optionString, accessMode):
-        self.path = path
-        self.accessMode = accessMode
-        self._parseOptions(optionString)
-
-        self.verticeOffset = 0
-        self.uvOffset = 0
-        self.normalOffset = 0
-        self.vertices = []
-        self.materials = []
-        self.faces = []
-        self.normals = []
-        self.uvs = []
-        self.morphTargets = []
-        self.bones = []
-        self.animations = []
-        self.skinIndices = []
-        self.skinWeights = []
-
-        # Materials are used when exporting faces, so do them first.
-        if self.options["materials"]:
-            print("exporting materials")
-            self._exportMaterials()
-        print("exporting meshes")
-        self._exportMeshes()
-        if not self.accessMode == MPxFileTranslator.kExportActiveAccessMode :
-			if self.options["bakeAnimations"]:
-				print("exporting animations")
-				self._exportAnimations()
-				self._goToFrame(self.options["startFrame"])
-			if self.options["bones"]:
-				print("exporting bones")
-				select(map(lambda m: m.getParent(), ls(type='mesh')))
-				runtime.GoToBindPose()
-				self._exportBones()
-				print("exporting skins")
-				self._exportSkins()
-			if self.options["skeletalAnim"]:
-				print("exporting keyframe animations")
-				self._exportKeyframeAnimations()
-        
-
-        print("writing file")
-        output = {
-            'metadata': {
-                'formatVersion': 3.1,
-                'generatedBy': 'Maya Exporter'
-            },
-
-            'vertices': self.vertices,
-            'uvs': [self.uvs],
-            'faces': self.faces,
-            'normals': self.normals,
-            'materials': self.materials,
-        }
-
-        if not self.accessMode == MPxFileTranslator.kExportActiveAccessMode :
-			if self.options['bakeAnimations']:
-				output['morphTargets'] = self.morphTargets
-
-			if self.options['bones']:
-				output['bones'] = self.bones
-				output['skinIndices'] = self.skinIndices
-				output['skinWeights'] = self.skinWeights
-				output['influencesPerVertex'] = self.options["influencesPerVertex"]
-
-			if self.options['skeletalAnim']:
-				output['animations'] = self.animations
-
-        with file(path, 'w') as f:
-            if self.options['prettyOutput']:
-                f.write(json.dumps(output, indent=4, separators=(", ", ": ")))
-            else:
-                f.write(json.dumps(output, separators=(",",":")))
-
-    def _allMeshes(self):
-        if not self.accessMode == MPxFileTranslator.kExportActiveAccessMode :
-            print("*** Exporting ALL (NEW) ***")
-            self.__allMeshes = filter(lambda m: len(m.listConnections()) > 0, ls(type='mesh'))
-        else :
-            print("### Exporting SELECTED ###")
-            self.__allMeshes = ls(selection=True)
-        return self.__allMeshes
-
-    def _parseOptions(self, optionsString):
-        self.options = dict([(x, False) for x in self.componentKeys])
-        for key in self.componentKeys:
-            self.options[key] = key in optionsString
-
-        if self.options["bones"]:
-            boneOptionsString = optionsString[optionsString.find("bones"):]
-            boneOptions = boneOptionsString.split(' ')
-            self.options["influencesPerVertex"] = int(boneOptions[1])
-
-        if self.options["bakeAnimations"]:
-            bakeAnimOptionsString = optionsString[optionsString.find("bakeAnimations"):]
-            bakeAnimOptions = bakeAnimOptionsString.split(' ')
-            self.options["startFrame"] = int(bakeAnimOptions[1])
-            self.options["endFrame"] = int(bakeAnimOptions[2])
-            self.options["stepFrame"] = int(bakeAnimOptions[3])
-
-    def _exportMeshes(self):
-        if self.options['vertices']:
-            self._exportVertices()
-        for mesh in self._allMeshes():
-            self._exportMesh(mesh)
-
-    def _exportMesh(self, mesh):
-        print("Exporting " + mesh.name())
-        if self.options['faces']:
-            print("Exporting faces")
-            self._exportFaces(mesh)
-            self.verticeOffset += len(mesh.getPoints())
-            self.uvOffset += mesh.numUVs()
-            self.normalOffset += mesh.numNormals()
-        if self.options['normals']:
-            print("Exporting normals")
-            self._exportNormals(mesh)
-        if self.options['uvs']:
-            print("Exporting UVs")
-            self._exportUVs(mesh)
-
-    def _getMaterialIndex(self, face, mesh):
-        if not hasattr(self, '_materialIndices'):
-            self._materialIndices = dict([(mat['DbgName'], i) for i, mat in enumerate(self.materials)])
-
-        if self.options['materials']:
-            for engine in mesh.listConnections(type='shadingEngine'):
-                if sets(engine, isMember=face) or sets(engine, isMember=mesh):
-                    for material in engine.listConnections(type='lambert'):
-                        if self._materialIndices.has_key(material.name()):
-                            return self._materialIndices[material.name()]
-        return -1
-
-
-    def _exportVertices(self):
-        self.vertices += self._getVertices()
-
-    def _exportAnimations(self):
-        for frame in self._framesToExport():
-            self._exportAnimationForFrame(frame)
-
-    def _framesToExport(self):
-        return range(self.options["startFrame"], self.options["endFrame"], self.options["stepFrame"])
-
-    def _exportAnimationForFrame(self, frame):
-        print("exporting frame " + str(frame))
-        self._goToFrame(frame)
-        self.morphTargets.append({
-            'name': "frame_" + str(frame),
-            'vertices': self._getVertices()
-        })
-
-    def _getVertices(self):
-        return [coord for mesh in self._allMeshes() for point in mesh.getPoints(space='world') for coord in [round(point.x, FLOAT_PRECISION), round(point.y, FLOAT_PRECISION), round(point.z, FLOAT_PRECISION)]]
-
-    def _goToFrame(self, frame):
-        currentTime(frame)
-
-    def _exportFaces(self, mesh):
-        typeBitmask = self._getTypeBitmask()
-
-        for face in mesh.faces:
-            materialIndex = self._getMaterialIndex(face, mesh)
-            hasMaterial = materialIndex != -1
-            self._exportFaceBitmask(face, typeBitmask, hasMaterial=hasMaterial)
-            self.faces += map(lambda x: x + self.verticeOffset, face.getVertices())
-            if self.options['materials']:
-                if hasMaterial:
-                    self.faces.append(materialIndex)
-            if self.options['uvs'] and face.hasUVs():
-                self.faces += map(lambda v: face.getUVIndex(v) + self.uvOffset, range(face.polygonVertexCount()))
-            if self.options['normals']:
-                self._exportFaceVertexNormals(face)
-
-    def _exportFaceBitmask(self, face, typeBitmask, hasMaterial=True):
-        vertexCount = face.polygonVertexCount()
-        if vertexCount == 4:
-            faceBitmask = 1
-        elif vertexCount == 3:
-            faceBitmask = 0
-        else:
-            raise ValueError('Faces must have 3 or 4 vertices')
-
-        if hasMaterial:
-            faceBitmask |= (1 << 1)
-
-        if self.options['uvs'] and face.hasUVs():
-            faceBitmask |= (1 << 3)
-
-        self.faces.append(typeBitmask | faceBitmask)
-
-    def _exportFaceVertexNormals(self, face):
-        for i in range(face.polygonVertexCount()):
-            self.faces.append(face.normalIndex(i) + self.normalOffset)
-
-    def _exportNormals(self, mesh):
-        for normal in mesh.getNormals():
-            self.normals += [round(normal.x, FLOAT_PRECISION), round(normal.y, FLOAT_PRECISION), round(normal.z, FLOAT_PRECISION)]
-
-    def _exportUVs(self, mesh):
-        us, vs = mesh.getUVs()
-        for i, u in enumerate(us):
-            self.uvs.append(u)
-            self.uvs.append(vs[i])
-
-    def _getTypeBitmask(self):
-        bitmask = 0
-        if self.options['normals']:
-            bitmask |= 32
-        return bitmask
-
-    def _exportMaterials(self):
-    	hist = listHistory( self._allMeshes(), f=1 )
-    	mats = listConnections( hist, type='lambert' )
-        for mat in mats:
-            print("material: " + mat)
-            self.materials.append(self._exportMaterial(mat))
-
-    def _exportMaterial(self, mat):
-        result = {
-            "DbgName": mat.name(),
-            "blending": "NormalBlending",
-            "colorDiffuse": map(lambda i: i * mat.getDiffuseCoeff(), mat.getColor().rgb),
-            "depthTest": True,
-            "depthWrite": True,
-            "shading": mat.__class__.__name__,
-            "opacity": 1.0 - mat.getTransparency().r,
-            "transparent": mat.getTransparency().r != 0.0,
-            "vertexColors": False
-        }
-        if isinstance(mat, nodetypes.Phong):
-            result["colorSpecular"] = mat.getSpecularColor().rgb
-            result["reflectivity"] = mat.getReflectivity()
-            result["specularCoef"] = mat.getCosPower()
-            if self.options["specularMaps"]:
-                self._exportSpecularMap(result, mat)
-        if self.options["bumpMaps"]:
-            self._exportBumpMap(result, mat)
-        if self.options["colorMaps"]:
-            self._exportColorMap(result, mat)
-
-        return result
-
-    def _exportBumpMap(self, result, mat):
-        for bump in mat.listConnections(type='bump2d'):
-            for f in bump.listConnections(type='file'):
-                result["mapNormalFactor"] = 1
-                self._exportFile(result, f, "Normal")
-
-    def _exportColorMap(self, result, mat):
-        for f in mat.attr('color').inputs():
-            result["colorDiffuse"] = f.attr('defaultColor').get()
-            self._exportFile(result, f, "Diffuse")
-
-    def _exportSpecularMap(self, result, mat):
-        for f in mat.attr('specularColor').inputs():
-            result["colorSpecular"] = f.attr('defaultColor').get()
-            self._exportFile(result, f, "Specular")
-
-    def _exportFile(self, result, mapFile, mapType):
-        src = mapFile.ftn.get()
-        targetDir = os.path.dirname(self.path)
-        fName = os.path.basename(src)
-        if self.options['copyTextures']:
-            shutil.copy2(src, os.path.join(targetDir, fName))
-        result["map" + mapType] = fName
-        result["map" + mapType + "Repeat"] = [1, 1]
-        result["map" + mapType + "Wrap"] = ["repeat", "repeat"]
-        result["map" + mapType + "Anisotropy"] = 4
-
-    def _exportBones(self):
-    	hist = listHistory( self._allMeshes(), f=1 )
-    	joints = listConnections( hist, type="joint")
-        for joint in joints:
-            if joint.getParent():
-                parentIndex = self._indexOfJoint(joint.getParent().name())
-            else:
-                parentIndex = -1
-            rotq = joint.getRotation(quaternion=True) * joint.getOrientation()
-            pos = joint.getTranslation()
-
-            self.bones.append({
-                "parent": parentIndex,
-                "name": joint.name(),
-                "pos": self._roundPos(pos),
-                "rotq": self._roundQuat(rotq)
-            })
-
-    def _indexOfJoint(self, name):
-        if not hasattr(self, '_jointNames'):
-            self._jointNames = dict([(joint.name(), i) for i, joint in enumerate(ls(type='joint'))])
-
-        if name in self._jointNames:
-            return self._jointNames[name]
-        else:
-            return -1
-
-    def _exportKeyframeAnimations(self):
-        hierarchy = []
-        i = -1
-        frameRate = FramesPerSecond(currentUnit(query=True, time=True)).value()
-        hist = listHistory( self._allMeshes(), f=1 )
-    	joints = listConnections( hist, type="joint")
-        for joint in joints:
-            hierarchy.append({
-                "parent": i,
-                "keys": self._getKeyframes(joint, frameRate)
-            })
-            i += 1
-
-        self.animations.append({
-            "name": "skeletalAction.001",
-            "length": (playbackOptions(maxTime=True, query=True) - playbackOptions(minTime=True, query=True)) / frameRate,
-            "fps": 1,
-            "hierarchy": hierarchy
-        })
-
-
-    def _getKeyframes(self, joint, frameRate):
-        firstFrame = playbackOptions(minTime=True, query=True)
-        lastFrame = playbackOptions(maxTime=True, query=True)
-        frames = sorted(list(set(keyframe(joint, query=True) + [firstFrame, lastFrame])))
-        keys = []
-
-        print("joint " + joint.name() + " has " + str(len(frames)) + " keyframes")
-        for frame in frames:
-            self._goToFrame(frame)
-            keys.append(self._getCurrentKeyframe(joint, frame, frameRate))
-        return keys
-
-    def _getCurrentKeyframe(self, joint, frame, frameRate):
-        pos = joint.getTranslation()
-        rot = joint.getRotation(quaternion=True) * joint.getOrientation()
-
-        return {
-            'time': (frame - playbackOptions(minTime=True, query=True)) / frameRate,
-            'pos': self._roundPos(pos),
-            'rot': self._roundQuat(rot),
-            'scl': [1,1,1]
-        }
-
-    def _roundPos(self, pos):
-        return map(lambda x: round(x, FLOAT_PRECISION), [pos.x, pos.y, pos.z])
-
-    def _roundQuat(self, rot):
-        return map(lambda x: round(x, FLOAT_PRECISION), [rot.x, rot.y, rot.z, rot.w])
-
-    def _exportSkins(self):
-        for mesh in self._allMeshes():
-            print("exporting skins for mesh: " + mesh.name())
-            hist = listHistory( mesh, f=1 )
-            skins = listConnections( hist, type='skinCluster')
-            if len(skins) > 0:
-                print("mesh has " + str(len(skins)) + " skins")
-                skin = skins[0]
-                joints = skin.influenceObjects()
-                for weights in skin.getWeights(mesh.vtx):
-                    numWeights = 0
-
-                    for i in range(0, len(weights)):
-                        if weights[i] > 0:
-                            self.skinWeights.append(weights[i])
-                            self.skinIndices.append(self._indexOfJoint(joints[i].name()))
-                            numWeights += 1
-
-                    if numWeights > self.options["influencesPerVertex"]:
-                        raise Exception("More than " + str(self.options["influencesPerVertex"]) + " influences on a vertex in " + mesh.name() + ".")
-
-                    for i in range(0, self.options["influencesPerVertex"] - numWeights):
-                        self.skinWeights.append(0)
-                        self.skinIndices.append(0)
-            else:
-                print("mesh has no skins, appending 0")
-                for i in range(0, len(mesh.getPoints()) * self.options["influencesPerVertex"]):
-                    self.skinWeights.append(0)
-                    self.skinIndices.append(0)
-
-class NullAnimCurve(object):
-    def getValue(self, index):
-        return 0.0
-
-class ThreeJsTranslator(MPxFileTranslator):
-    def __init__(self):
-        MPxFileTranslator.__init__(self)
-
-    def haveWriteMethod(self):
-        return True
-
-    def filter(self):
-        return '*.json'
-
-    def defaultExtension(self):
-        return 'json'
-
-    def writer(self, fileObject, optionString, accessMode):
-        path = fileObject.fullName()
-        writer = ThreeJsWriter()
-        writer.write(path, optionString, accessMode)
-
-
-def translatorCreator():
-    return asMPxPtr(ThreeJsTranslator())
-
-def initializePlugin(mobject):
-    mplugin = MFnPlugin(mobject)
-    try:
-        mplugin.registerFileTranslator(kPluginTranslatorTypeName, None, translatorCreator, kOptionScript, kDefaultOptionsString)
-    except:
-        sys.stderr.write('Failed to register translator: %s' % kPluginTranslatorTypeName)
-        raise
-
-def uninitializePlugin(mobject):
-    mplugin = MFnPlugin(mobject)
-    try:
-        mplugin.deregisterFileTranslator(kPluginTranslatorTypeName)
-    except:
-        sys.stderr.write('Failed to deregister translator: %s' % kPluginTranslatorTypeName)
-        raise
-
-class FramesPerSecond(object):
-    MAYA_VALUES = {
-        'game': 15,
-        'film': 24,
-        'pal': 25,
-        'ntsc': 30,
-        'show': 48,
-        'palf': 50,
-        'ntscf': 60
-    }
-
-    def __init__(self, fpsString):
-        self.fpsString = fpsString
-
-    def value(self):
-        if self.fpsString in FramesPerSecond.MAYA_VALUES:
-            return FramesPerSecond.MAYA_VALUES[self.fpsString]
-        else:
-            return int(filter(lambda c: c.isdigit(), self.fpsString))
-
-###################################################################
-## The code below was taken from the Blender 3JS Exporter 
-## It's purpose is to fix the JSON output so that it does not
-## put each array value on it's own line, which is ridiculous 
-## for this type of output.
-###################################################################
-
-ROUND = 6
-
-## THREE override function
-def _json_floatstr(o):
-    if ROUND is not None:
-        o = round(o, ROUND)
-        
-    return '%g' % o
-
-
-def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
-        _key_separator, _item_separator, _sort_keys, _skipkeys, _one_shot,
-        ## HACK: hand-optimized bytecode; turn globals into locals
-        ValueError=ValueError,
-        basestring=basestring,
-        dict=dict,
-        float=float,
-        id=id,
-        int=int,
-        isinstance=isinstance,
-        list=list,
-        long=long,
-        str=str,
-        tuple=tuple,
-    ):
-
-    def _iterencode_list(lst, _current_indent_level):
-        if not lst:
-            yield '[]'
-            return
-        if markers is not None:
-            markerid = id(lst)
-            if markerid in markers:
-                raise ValueError("Circular reference detected")
-            markers[markerid] = lst
-        buf = '['
-    	#if _indent is not None:
-        #    _current_indent_level += 1
-        #    newline_indent = '\n' + (' ' * (_indent * _current_indent_level))
-        #    separator = _item_separator + newline_indent
-        #    buf += newline_indent
-        #else:
-        newline_indent = None
-        separator = _item_separator
-        first = True
-        for value in lst:
-            if first:
-                first = False
-            else:
-                buf = separator
-            if isinstance(value, basestring):
-                yield buf + _encoder(value)
-            elif value is None:
-                yield buf + 'null'
-            elif value is True:
-                yield buf + 'true'
-            elif value is False:
-                yield buf + 'false'
-            elif isinstance(value, (int, long)):
-                yield buf + str(value)
-            elif isinstance(value, float):
-                yield buf + _floatstr(value)
-            else:
-                yield buf
-                if isinstance(value, (list, tuple)):
-                    chunks = _iterencode_list(value, _current_indent_level)
-                elif isinstance(value, dict):
-                    chunks = _iterencode_dict(value, _current_indent_level)
-                else:
-                    chunks = _iterencode(value, _current_indent_level)
-                for chunk in chunks:
-                    yield chunk
-        if newline_indent is not None:
-            _current_indent_level -= 1
-            yield '\n' + (' ' * (_indent * _current_indent_level))
-        yield ']'
-        if markers is not None:
-            del markers[markerid]
-
-    def _iterencode_dict(dct, _current_indent_level):
-        if not dct:
-            yield '{}'
-            return
-        if markers is not None:
-            markerid = id(dct)
-            if markerid in markers:
-                raise ValueError("Circular reference detected")
-            markers[markerid] = dct
-        yield '{'
-        if _indent is not None:
-            _current_indent_level += 1
-            newline_indent = '\n' + (' ' * (_indent * _current_indent_level))
-            item_separator = _item_separator + newline_indent
-            yield newline_indent
-        else:
-            newline_indent = None
-            item_separator = _item_separator
-        first = True
-        if _sort_keys:
-            items = sorted(dct.items(), key=lambda kv: kv[0])
-        else:
-            items = dct.iteritems()
-        for key, value in items:
-            if isinstance(key, basestring):
-                pass
-            # JavaScript is weakly typed for these, so it makes sense to
-            # also allow them.  Many encoders seem to do something like this.
-            elif isinstance(key, float):
-                key = _floatstr(key)
-            elif key is True:
-                key = 'true'
-            elif key is False:
-                key = 'false'
-            elif key is None:
-                key = 'null'
-            elif isinstance(key, (int, long)):
-                key = str(key)
-            elif _skipkeys:
-                continue
-            else:
-                raise TypeError("key " + repr(key) + " is not a string")
-            if first:
-                first = False
-            else:
-                yield item_separator
-            yield _encoder(key)
-            yield _key_separator
-            if isinstance(value, basestring):
-                yield _encoder(value)
-            elif value is None:
-                yield 'null'
-            elif value is True:
-                yield 'true'
-            elif value is False:
-                yield 'false'
-            elif isinstance(value, (int, long)):
-                yield str(value)
-            elif isinstance(value, float):
-                yield _floatstr(value)
-            else:
-                if isinstance(value, (list, tuple)):
-                    chunks = _iterencode_list(value, _current_indent_level)
-                elif isinstance(value, dict):
-                    chunks = _iterencode_dict(value, _current_indent_level)
-                else:
-                    chunks = _iterencode(value, _current_indent_level)
-                for chunk in chunks:
-                    yield chunk
-        if newline_indent is not None:
-            _current_indent_level -= 1
-            yield '\n' + (' ' * (_indent * _current_indent_level))
-        yield '}'
-        if markers is not None:
-            del markers[markerid]
-
-    def _iterencode(o, _current_indent_level):
-        if isinstance(o, basestring):
-            yield _encoder(o)
-        elif o is None:
-            yield 'null'
-        elif o is True:
-            yield 'true'
-        elif o is False:
-            yield 'false'
-        elif isinstance(o, (int, long)):
-            yield str(o)
-        elif isinstance(o, float):
-            yield _floatstr(o)
-        elif isinstance(o, (list, tuple)):
-            for chunk in _iterencode_list(o, _current_indent_level):
-                yield chunk
-        elif isinstance(o, dict):
-            for chunk in _iterencode_dict(o, _current_indent_level):
-                yield chunk
-        else:
-            if markers is not None:
-                markerid = id(o)
-                if markerid in markers:
-                    raise ValueError("Circular reference detected")
-                markers[markerid] = o
-            o = _default(o)
-            for chunk in _iterencode(o, _current_indent_level):
-                yield chunk
-            if markers is not None:
-                del markers[markerid]
-
-    return _iterencode
-
-
-
-# override the encoder
-json.encoder._make_iterencode = _make_iterencode 
-
-
-

+ 0 - 109
utils/exporters/maya/scripts/ThreeJsExportScript.mel

@@ -1,109 +0,0 @@
-// ThreeJsExportScript.mel
-// Author: Sean Griffin
-// Email: [email protected]
-
-global proc int ThreeJsExportScript(string $parent, string $action, string $settings, string $callback)
-{
-    if ($action == "post")
-    {
-        setParent $parent;
-        columnLayout -adj true;
-
-          frameLayout -cll true -cl false -bv true -l "General Export Options";
-            columnLayout -adj true;
-              checkBox -v true -l "Vertices" vertsCb;
-              checkBox -v true -l "Faces" facesCb;
-              checkBox -v true -l "Normals" normalsCb;
-              checkBox -v true -l "UVs" uvsCb;
-              checkBox -v false -l "Colors" colorsCb;
-              setParent ..; // columnLayout
-            setParent ..; // frameLayout
-
-          frameLayout -cll true -cl false -bv true -l "Skinning Options";
-            columnLayout -adj true;
-              checkBox -v true -l "Material Indices" materialsCb;
-              checkBox -v true -l "Color Maps" colorMapsCb;
-              checkBox -v true -l "Specular Maps" specularMapsCb;
-              checkBox -v true -l "Bump Maps" bumpMapsCb;
-              checkBox -v true -l "Copy Texture Files to Target Directory" copyTexturesCb;
-              setParent ..; // columnLayout
-            setParent ..; // frameLayout
-
-          frameLayout -cll true -cl false -bv true -l "Animation Options";
-            columnLayout -adj true;
-              checkBox
-                -v true
-                -l "Bones"
-                -onc "textField -e -en true maxInfluencesText;"
-                -ofc "textField -e -en false maxInfluencesText;"
-            	bonesCb;
-              textFieldGrp -tx 4 -label "Max Influences Per Vertex" maxInfluencesText;
-              checkBox -v true -l "Export Animations" animCb;
-              checkBox
-                -v false
-                -l "Bake Animation"
-                -onc "textField -e -en true startText; textField -e -en true endText; textField -e -en true stepText;"
-                -ofc "textField -e -en false startText; textField -e -en false endText; textField -e -en false stepText;"
-                bakeAnimCb;
-              textField -en false -tx `playbackOptions -minTime true -q` -ann "Start" startText;
-              textField -en false -tx `playbackOptions -maxTime true -q` -ann "End" endText;
-              textField -en false -tx 1 -ann "Step" stepText;
-              text -label "NOTE: Animation data is only included in Export All.";
-            setParent ..; // columnLayout
-          setParent ..; // frameLayout
-
-          frameLayout -cll true -cl false -bv true -l "Debug Options";
-            columnLayout -adj true;
-              checkBox -v true -l "Pretty Output" prettyOutputCb;
-            setParent ..; // columnLayout
-          setParent ..; // frameLayout
-
-    }
-    else if ($action == "query")
-    {
-        string $option = "\"";
-        if (`checkBox -q -v vertsCb`)
-            $option += "vertices ";
-        if (`checkBox -q -v facesCb`)
-            $option += "faces ";
-        if (`checkBox -q -v normalsCb`)
-            $option += "normals ";
-        if (`checkBox -q -v uvsCb`)
-            $option += "uvs ";
-        if (`checkBox -q -v materialsCb`)
-            $option += "materials ";
-        if (`checkBox -q -v colorMapsCb`)
-            $option += "colorMaps ";
-        if (`checkBox -q -v specularMapsCb`)
-            $option += "specularMaps ";
-        if (`checkBox -q -v bumpMapsCb`)
-            $option += "bumpMaps ";
-        if (`checkBox -q -v copyTexturesCb`)
-            $option += "copyTexturesMaps ";
-        if (`checkBox -q -v colorsCb`)
-            $option += "colors ";
-        if (`checkBox -q -v bonesCb`)
-        {
-            $option += "bones ";
-            $option += `textFieldGrp -q -tx maxInfluencesText`;
-            $option += " ";
-        }
-        if (`checkBox -q -v animCb`)
-            $option += "skeletalAnim ";
-        if (`checkBox -q -v bakeAnimCb`)
-        {
-            $option += "bakeAnimations ";
-            $option += `textField -q -tx startText`;
-            $option += " ";
-            $option += `textField -q -tx endText`;
-            $option += " ";
-            $option += `textField -q -tx stepText`;
-            $option += " ";
-        }
-        if (`checkBox -q -v prettyOutputCb`)
-            $option += "prettyOutput ";
-        $option += "\"";
-        eval($callback + $option);
-    }
-    return 1;
-}

Some files were not shown because too many files changed in this diff