├── .gitignore ├── README.md ├── threejs-1_basic.zip ├── threejs-1_basic ├── index.html └── three.js ├── threejs-2_geometry.zip ├── threejs-2_geometry ├── index.html └── three.js ├── threejs-3_materials.zip ├── threejs-3_materials ├── index.html └── three.js ├── threejs-4_shadermaterial.zip ├── threejs-4_shadermaterial ├── index.html └── three.js ├── threejs-5_lightscamera.zip ├── threejs-5_lightscamera ├── ShadowMapViewer.js ├── UnpackDepthRGBAShader.js ├── index.html └── three.js ├── threejs-6_postprocessing.zip ├── threejs-6_postprocessing ├── ClearPass.js ├── CopyShader.js ├── DigitalGlitch.js ├── EffectComposer.js ├── FilmPass.js ├── GlitchPass.js ├── RenderPass.js ├── SepiaShader.js ├── ShaderPass.js ├── TexturePass.js ├── TriangleBlurShader.js ├── index.html └── three.js ├── threejs-7_models.zip ├── threejs-7_models ├── index.html ├── monkey.blend ├── monkey.json ├── monkey_animated.blend ├── monkey_animated.blend1 ├── monkey_animated.json └── three.js ├── threejs-7b_models.zip └── threejs-7b_models ├── GLTFLoader.js ├── index.html ├── three.js └── untitled.glb /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # threejs -------------------------------------------------------------------------------- /threejs-1_basic.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-1_basic.zip -------------------------------------------------------------------------------- /threejs-1_basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | threejs - basic 4 | 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /threejs-2_geometry.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-2_geometry.zip -------------------------------------------------------------------------------- /threejs-2_geometry/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | threejs - geometry 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 1296 | 1297 | 1487 | 1488 | 1489 | -------------------------------------------------------------------------------- /threejs-3_materials.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-3_materials.zip -------------------------------------------------------------------------------- /threejs-3_materials/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | threejs - material 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 360 | 361 | 362 | -------------------------------------------------------------------------------- /threejs-4_shadermaterial.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-4_shadermaterial.zip -------------------------------------------------------------------------------- /threejs-4_shadermaterial/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | threejs - material 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 25 | 30 | 31 | 51 | 66 | 67 | 68 | 176 | 177 | 178 | -------------------------------------------------------------------------------- /threejs-5_lightscamera.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-5_lightscamera.zip -------------------------------------------------------------------------------- /threejs-5_lightscamera/ShadowMapViewer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author arya-s / https://github.com/arya-s 3 | * 4 | * This is a helper for visualising a given light's shadow map. 5 | * It works for shadow casting lights: THREE.DirectionalLight and THREE.SpotLight. 6 | * It renders out the shadow map and displays it on a HUD. 7 | * 8 | * Example usage: 9 | * 1) Include 17 | 18 | 19 | 20 | 183 | 184 | 185 | -------------------------------------------------------------------------------- /threejs-6_postprocessing.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-6_postprocessing.zip -------------------------------------------------------------------------------- /threejs-6_postprocessing/ClearPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author mrdoob / http://mrdoob.com/ 3 | */ 4 | 5 | THREE.ClearPass = function ( clearColor, clearAlpha ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | this.needsSwap = false; 10 | 11 | this.clearColor = ( clearColor !== undefined ) ? clearColor : 0x000000; 12 | this.clearAlpha = ( clearAlpha !== undefined ) ? clearAlpha : 0; 13 | 14 | }; 15 | 16 | THREE.ClearPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 17 | 18 | constructor: THREE.ClearPass, 19 | 20 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 21 | 22 | var oldClearColor, oldClearAlpha; 23 | 24 | if ( this.clearColor ) { 25 | 26 | oldClearColor = renderer.getClearColor().getHex(); 27 | oldClearAlpha = renderer.getClearAlpha(); 28 | 29 | renderer.setClearColor( this.clearColor, this.clearAlpha ); 30 | 31 | } 32 | 33 | renderer.setRenderTarget( this.renderToScreen ? null : readBuffer ); 34 | renderer.clear(); 35 | 36 | if ( this.clearColor ) { 37 | 38 | renderer.setClearColor( oldClearColor, oldClearAlpha ); 39 | 40 | } 41 | 42 | } 43 | 44 | } ); 45 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/CopyShader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | * 4 | * Full-screen textured quad shader 5 | */ 6 | 7 | THREE.CopyShader = { 8 | 9 | uniforms: { 10 | 11 | "tDiffuse": { value: null }, 12 | "opacity": { value: 1.0 } 13 | 14 | }, 15 | 16 | vertexShader: [ 17 | 18 | "varying vec2 vUv;", 19 | 20 | "void main() {", 21 | 22 | "vUv = uv;", 23 | "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", 24 | 25 | "}" 26 | 27 | ].join( "\n" ), 28 | 29 | fragmentShader: [ 30 | 31 | "uniform float opacity;", 32 | 33 | "uniform sampler2D tDiffuse;", 34 | 35 | "varying vec2 vUv;", 36 | 37 | "void main() {", 38 | 39 | "vec4 texel = texture2D( tDiffuse, vUv );", 40 | "gl_FragColor = opacity * texel;", 41 | 42 | "}" 43 | 44 | ].join( "\n" ) 45 | 46 | }; 47 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/DigitalGlitch.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author felixturner / http://airtight.cc/ 3 | * 4 | * RGB Shift Shader 5 | * Shifts red and blue channels from center in opposite directions 6 | * Ported from http://kriss.cx/tom/2009/05/rgb-shift/ 7 | * by Tom Butterworth / http://kriss.cx/tom/ 8 | * 9 | * amount: shift distance (1 is width of input) 10 | * angle: shift angle in radians 11 | */ 12 | 13 | THREE.DigitalGlitch = { 14 | 15 | uniforms: { 16 | 17 | "tDiffuse": { value: null },//diffuse texture 18 | "tDisp": { value: null },//displacement texture for digital glitch squares 19 | "byp": { value: 0 },//apply the glitch ? 20 | "amount": { value: 0.08 }, 21 | "angle": { value: 0.02 }, 22 | "seed": { value: 0.02 }, 23 | "seed_x": { value: 0.02 },//-1,1 24 | "seed_y": { value: 0.02 },//-1,1 25 | "distortion_x": { value: 0.5 }, 26 | "distortion_y": { value: 0.6 }, 27 | "col_s": { value: 0.05 } 28 | }, 29 | 30 | vertexShader: [ 31 | 32 | "varying vec2 vUv;", 33 | "void main() {", 34 | "vUv = uv;", 35 | "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", 36 | "}" 37 | ].join( "\n" ), 38 | 39 | fragmentShader: [ 40 | "uniform int byp;",//should we apply the glitch ? 41 | 42 | "uniform sampler2D tDiffuse;", 43 | "uniform sampler2D tDisp;", 44 | 45 | "uniform float amount;", 46 | "uniform float angle;", 47 | "uniform float seed;", 48 | "uniform float seed_x;", 49 | "uniform float seed_y;", 50 | "uniform float distortion_x;", 51 | "uniform float distortion_y;", 52 | "uniform float col_s;", 53 | 54 | "varying vec2 vUv;", 55 | 56 | 57 | "float rand(vec2 co){", 58 | "return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);", 59 | "}", 60 | 61 | "void main() {", 62 | "if(byp<1) {", 63 | "vec2 p = vUv;", 64 | "float xs = floor(gl_FragCoord.x / 0.5);", 65 | "float ys = floor(gl_FragCoord.y / 0.5);", 66 | //based on staffantans glitch shader for unity https://github.com/staffantan/unityglitch 67 | "vec4 normal = texture2D (tDisp, p*seed*seed);", 68 | "if(p.ydistortion_x-col_s*seed) {", 69 | "if(seed_x>0.){", 70 | "p.y = 1. - (p.y + distortion_y);", 71 | "}", 72 | "else {", 73 | "p.y = distortion_y;", 74 | "}", 75 | "}", 76 | "if(p.xdistortion_y-col_s*seed) {", 77 | "if(seed_y>0.){", 78 | "p.x=distortion_x;", 79 | "}", 80 | "else {", 81 | "p.x = 1. - (p.x + distortion_x);", 82 | "}", 83 | "}", 84 | "p.x+=normal.x*seed_x*(seed/5.);", 85 | "p.y+=normal.y*seed_y*(seed/5.);", 86 | //base from RGB shift shader 87 | "vec2 offset = amount * vec2( cos(angle), sin(angle));", 88 | "vec4 cr = texture2D(tDiffuse, p + offset);", 89 | "vec4 cga = texture2D(tDiffuse, p);", 90 | "vec4 cb = texture2D(tDiffuse, p - offset);", 91 | "gl_FragColor = vec4(cr.r, cga.g, cb.b, cga.a);", 92 | //add noise 93 | "vec4 snow = 200.*amount*vec4(rand(vec2(xs * seed,ys * seed*50.))*0.2);", 94 | "gl_FragColor = gl_FragColor+ snow;", 95 | "}", 96 | "else {", 97 | "gl_FragColor=texture2D (tDiffuse, vUv);", 98 | "}", 99 | "}" 100 | 101 | ].join( "\n" ) 102 | 103 | }; 104 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/EffectComposer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.EffectComposer = function ( renderer, renderTarget ) { 6 | 7 | this.renderer = renderer; 8 | 9 | if ( renderTarget === undefined ) { 10 | 11 | var parameters = { 12 | minFilter: THREE.LinearFilter, 13 | magFilter: THREE.LinearFilter, 14 | format: THREE.RGBAFormat, 15 | stencilBuffer: false 16 | }; 17 | var size = renderer.getSize(); 18 | renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters ); 19 | 20 | } 21 | 22 | this.renderTarget1 = renderTarget; 23 | this.renderTarget2 = renderTarget.clone(); 24 | 25 | this.writeBuffer = this.renderTarget1; 26 | this.readBuffer = this.renderTarget2; 27 | 28 | this.passes = []; 29 | 30 | if ( THREE.CopyShader === undefined ) 31 | console.error( "THREE.EffectComposer relies on THREE.CopyShader" ); 32 | 33 | this.copyPass = new THREE.ShaderPass( THREE.CopyShader ); 34 | 35 | }; 36 | 37 | Object.assign( THREE.EffectComposer.prototype, { 38 | 39 | swapBuffers: function() { 40 | 41 | var tmp = this.readBuffer; 42 | this.readBuffer = this.writeBuffer; 43 | this.writeBuffer = tmp; 44 | 45 | }, 46 | 47 | addPass: function ( pass ) { 48 | 49 | this.passes.push( pass ); 50 | 51 | var size = this.renderer.getSize(); 52 | pass.setSize( size.width, size.height ); 53 | 54 | }, 55 | 56 | insertPass: function ( pass, index ) { 57 | 58 | this.passes.splice( index, 0, pass ); 59 | 60 | }, 61 | 62 | render: function ( delta ) { 63 | 64 | var maskActive = false; 65 | 66 | var pass, i, il = this.passes.length; 67 | 68 | for ( i = 0; i < il; i ++ ) { 69 | 70 | pass = this.passes[ i ]; 71 | 72 | if ( pass.enabled === false ) continue; 73 | 74 | pass.render( this.renderer, this.writeBuffer, this.readBuffer, delta, maskActive ); 75 | 76 | if ( pass.needsSwap ) { 77 | 78 | if ( maskActive ) { 79 | 80 | var context = this.renderer.context; 81 | 82 | context.stencilFunc( context.NOTEQUAL, 1, 0xffffffff ); 83 | 84 | this.copyPass.render( this.renderer, this.writeBuffer, this.readBuffer, delta ); 85 | 86 | context.stencilFunc( context.EQUAL, 1, 0xffffffff ); 87 | 88 | } 89 | 90 | this.swapBuffers(); 91 | 92 | } 93 | 94 | if ( THREE.MaskPass !== undefined ) { 95 | 96 | if ( pass instanceof THREE.MaskPass ) { 97 | 98 | maskActive = true; 99 | 100 | } else if ( pass instanceof THREE.ClearMaskPass ) { 101 | 102 | maskActive = false; 103 | 104 | } 105 | 106 | } 107 | 108 | } 109 | 110 | }, 111 | 112 | reset: function ( renderTarget ) { 113 | 114 | if ( renderTarget === undefined ) { 115 | 116 | var size = this.renderer.getSize(); 117 | 118 | renderTarget = this.renderTarget1.clone(); 119 | renderTarget.setSize( size.width, size.height ); 120 | 121 | } 122 | 123 | this.renderTarget1.dispose(); 124 | this.renderTarget2.dispose(); 125 | this.renderTarget1 = renderTarget; 126 | this.renderTarget2 = renderTarget.clone(); 127 | 128 | this.writeBuffer = this.renderTarget1; 129 | this.readBuffer = this.renderTarget2; 130 | 131 | }, 132 | 133 | setSize: function ( width, height ) { 134 | 135 | this.renderTarget1.setSize( width, height ); 136 | this.renderTarget2.setSize( width, height ); 137 | 138 | for ( var i = 0; i < this.passes.length; i ++ ) { 139 | 140 | this.passes[i].setSize( width, height ); 141 | 142 | } 143 | 144 | } 145 | 146 | } ); 147 | 148 | 149 | THREE.Pass = function () { 150 | 151 | // if set to true, the pass is processed by the composer 152 | this.enabled = true; 153 | 154 | // if set to true, the pass indicates to swap read and write buffer after rendering 155 | this.needsSwap = true; 156 | 157 | // if set to true, the pass clears its buffer before rendering 158 | this.clear = false; 159 | 160 | // if set to true, the result of the pass is rendered to screen 161 | this.renderToScreen = false; 162 | 163 | }; 164 | 165 | Object.assign( THREE.Pass.prototype, { 166 | 167 | setSize: function( width, height ) {}, 168 | 169 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 170 | 171 | console.error( "THREE.Pass: .render() must be implemented in derived pass." ); 172 | 173 | } 174 | 175 | } ); 176 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/FilmPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.FilmPass = function ( noiseIntensity, scanlinesIntensity, scanlinesCount, grayscale ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | if ( THREE.FilmShader === undefined ) 10 | console.error( "THREE.FilmPass relies on THREE.FilmShader" ); 11 | 12 | var shader = THREE.FilmShader; 13 | 14 | this.uniforms = THREE.UniformsUtils.clone( shader.uniforms ); 15 | 16 | this.material = new THREE.ShaderMaterial( { 17 | 18 | uniforms: this.uniforms, 19 | vertexShader: shader.vertexShader, 20 | fragmentShader: shader.fragmentShader 21 | 22 | } ); 23 | 24 | if ( grayscale !== undefined ) this.uniforms.grayscale.value = grayscale; 25 | if ( noiseIntensity !== undefined ) this.uniforms.nIntensity.value = noiseIntensity; 26 | if ( scanlinesIntensity !== undefined ) this.uniforms.sIntensity.value = scanlinesIntensity; 27 | if ( scanlinesCount !== undefined ) this.uniforms.sCount.value = scanlinesCount; 28 | 29 | this.camera = new THREE.OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); 30 | this.scene = new THREE.Scene(); 31 | 32 | this.quad = new THREE.Mesh( new THREE.PlaneBufferGeometry( 2, 2 ), null ); 33 | this.scene.add( this.quad ); 34 | 35 | }; 36 | 37 | THREE.FilmPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 38 | 39 | constructor: THREE.FilmPass, 40 | 41 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 42 | 43 | this.uniforms[ "tDiffuse" ].value = readBuffer.texture; 44 | this.uniforms[ "time" ].value += delta; 45 | 46 | this.quad.material = this.material; 47 | 48 | if ( this.renderToScreen ) { 49 | 50 | renderer.render( this.scene, this.camera ); 51 | 52 | } else { 53 | 54 | renderer.render( this.scene, this.camera, writeBuffer, this.clear ); 55 | 56 | } 57 | 58 | } 59 | 60 | } ); 61 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/GlitchPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.GlitchPass = function ( dt_size ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | if ( THREE.DigitalGlitch === undefined ) console.error( "THREE.GlitchPass relies on THREE.DigitalGlitch" ); 10 | 11 | var shader = THREE.DigitalGlitch; 12 | this.uniforms = THREE.UniformsUtils.clone( shader.uniforms ); 13 | 14 | if ( dt_size == undefined ) dt_size = 64; 15 | 16 | 17 | this.uniforms[ "tDisp" ].value = this.generateHeightmap( dt_size ); 18 | 19 | 20 | this.material = new THREE.ShaderMaterial( { 21 | uniforms: this.uniforms, 22 | vertexShader: shader.vertexShader, 23 | fragmentShader: shader.fragmentShader 24 | } ); 25 | 26 | this.camera = new THREE.OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); 27 | this.scene = new THREE.Scene(); 28 | 29 | this.quad = new THREE.Mesh( new THREE.PlaneBufferGeometry( 2, 2 ), null ); 30 | this.scene.add( this.quad ); 31 | 32 | this.goWild = false; 33 | this.curF = 0; 34 | this.generateTrigger(); 35 | 36 | }; 37 | 38 | THREE.GlitchPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 39 | 40 | constructor: THREE.GlitchPass, 41 | 42 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 43 | 44 | this.uniforms[ "tDiffuse" ].value = readBuffer.texture; 45 | this.uniforms[ 'seed' ].value = Math.random();//default seeding 46 | this.uniforms[ 'byp' ].value = 0; 47 | 48 | if ( this.curF % this.randX == 0 || this.goWild == true ) { 49 | 50 | this.uniforms[ 'amount' ].value = Math.random() / 30; 51 | this.uniforms[ 'angle' ].value = THREE.Math.randFloat( - Math.PI, Math.PI ); 52 | this.uniforms[ 'seed_x' ].value = THREE.Math.randFloat( - 1, 1 ); 53 | this.uniforms[ 'seed_y' ].value = THREE.Math.randFloat( - 1, 1 ); 54 | this.uniforms[ 'distortion_x' ].value = THREE.Math.randFloat( 0, 1 ); 55 | this.uniforms[ 'distortion_y' ].value = THREE.Math.randFloat( 0, 1 ); 56 | this.curF = 0; 57 | this.generateTrigger(); 58 | 59 | } else if ( this.curF % this.randX < this.randX / 5 ) { 60 | 61 | this.uniforms[ 'amount' ].value = Math.random() / 90; 62 | this.uniforms[ 'angle' ].value = THREE.Math.randFloat( - Math.PI, Math.PI ); 63 | this.uniforms[ 'distortion_x' ].value = THREE.Math.randFloat( 0, 1 ); 64 | this.uniforms[ 'distortion_y' ].value = THREE.Math.randFloat( 0, 1 ); 65 | this.uniforms[ 'seed_x' ].value = THREE.Math.randFloat( - 0.3, 0.3 ); 66 | this.uniforms[ 'seed_y' ].value = THREE.Math.randFloat( - 0.3, 0.3 ); 67 | 68 | } else if ( this.goWild == false ) { 69 | 70 | this.uniforms[ 'byp' ].value = 1; 71 | 72 | } 73 | 74 | this.curF ++; 75 | this.quad.material = this.material; 76 | 77 | if ( this.renderToScreen ) { 78 | 79 | renderer.render( this.scene, this.camera ); 80 | 81 | } else { 82 | 83 | renderer.render( this.scene, this.camera, writeBuffer, this.clear ); 84 | 85 | } 86 | 87 | }, 88 | 89 | generateTrigger: function() { 90 | 91 | this.randX = THREE.Math.randInt( 120, 240 ); 92 | 93 | }, 94 | 95 | generateHeightmap: function( dt_size ) { 96 | 97 | var data_arr = new Float32Array( dt_size * dt_size * 3 ); 98 | var length = dt_size * dt_size; 99 | 100 | for ( var i = 0; i < length; i ++ ) { 101 | 102 | var val = THREE.Math.randFloat( 0, 1 ); 103 | data_arr[ i * 3 + 0 ] = val; 104 | data_arr[ i * 3 + 1 ] = val; 105 | data_arr[ i * 3 + 2 ] = val; 106 | 107 | } 108 | 109 | var texture = new THREE.DataTexture( data_arr, dt_size, dt_size, THREE.RGBFormat, THREE.FloatType ); 110 | texture.needsUpdate = true; 111 | return texture; 112 | 113 | } 114 | 115 | } ); 116 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/RenderPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.RenderPass = function ( scene, camera, overrideMaterial, clearColor, clearAlpha ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | this.scene = scene; 10 | this.camera = camera; 11 | 12 | this.overrideMaterial = overrideMaterial; 13 | 14 | this.clearColor = clearColor; 15 | this.clearAlpha = ( clearAlpha !== undefined ) ? clearAlpha : 0; 16 | 17 | this.clear = true; 18 | this.needsSwap = false; 19 | 20 | }; 21 | 22 | THREE.RenderPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 23 | 24 | constructor: THREE.RenderPass, 25 | 26 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 27 | 28 | var oldAutoClear = renderer.autoClear; 29 | renderer.autoClear = false; 30 | 31 | this.scene.overrideMaterial = this.overrideMaterial; 32 | 33 | var oldClearColor, oldClearAlpha; 34 | 35 | if ( this.clearColor ) { 36 | 37 | oldClearColor = renderer.getClearColor().getHex(); 38 | oldClearAlpha = renderer.getClearAlpha(); 39 | 40 | renderer.setClearColor( this.clearColor, this.clearAlpha ); 41 | 42 | } 43 | 44 | renderer.render( this.scene, this.camera, this.renderToScreen ? null : readBuffer, this.clear ); 45 | 46 | if ( this.clearColor ) { 47 | 48 | renderer.setClearColor( oldClearColor, oldClearAlpha ); 49 | 50 | } 51 | 52 | this.scene.overrideMaterial = null; 53 | renderer.autoClear = oldAutoClear; 54 | } 55 | 56 | } ); 57 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/SepiaShader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | * 4 | * Sepia tone shader 5 | * based on glfx.js sepia shader 6 | * https://github.com/evanw/glfx.js 7 | */ 8 | 9 | THREE.SepiaShader = { 10 | 11 | uniforms: { 12 | 13 | "tDiffuse": { value: null }, 14 | "amount": { value: 1.0 } 15 | 16 | }, 17 | 18 | vertexShader: [ 19 | 20 | "varying vec2 vUv;", 21 | 22 | "void main() {", 23 | 24 | "vUv = uv;", 25 | "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", 26 | 27 | "}" 28 | 29 | ].join( "\n" ), 30 | 31 | fragmentShader: [ 32 | 33 | "uniform float amount;", 34 | 35 | "uniform sampler2D tDiffuse;", 36 | 37 | "varying vec2 vUv;", 38 | 39 | "void main() {", 40 | 41 | "vec4 color = texture2D( tDiffuse, vUv );", 42 | "vec3 c = color.rgb;", 43 | 44 | "color.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );", 45 | "color.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );", 46 | "color.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );", 47 | 48 | "gl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );", 49 | 50 | "}" 51 | 52 | ].join( "\n" ) 53 | 54 | }; 55 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/ShaderPass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.ShaderPass = function ( shader, textureID ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | this.textureID = ( textureID !== undefined ) ? textureID : "tDiffuse"; 10 | 11 | if ( shader instanceof THREE.ShaderMaterial ) { 12 | 13 | this.uniforms = shader.uniforms; 14 | 15 | this.material = shader; 16 | 17 | } else if ( shader ) { 18 | 19 | this.uniforms = THREE.UniformsUtils.clone( shader.uniforms ); 20 | 21 | this.material = new THREE.ShaderMaterial( { 22 | 23 | defines: shader.defines || {}, 24 | uniforms: this.uniforms, 25 | vertexShader: shader.vertexShader, 26 | fragmentShader: shader.fragmentShader 27 | 28 | } ); 29 | 30 | } 31 | 32 | this.camera = new THREE.OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); 33 | this.scene = new THREE.Scene(); 34 | 35 | this.quad = new THREE.Mesh( new THREE.PlaneBufferGeometry( 2, 2 ), null ); 36 | this.scene.add( this.quad ); 37 | 38 | }; 39 | 40 | THREE.ShaderPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 41 | 42 | constructor: THREE.ShaderPass, 43 | 44 | render: function( renderer, writeBuffer, readBuffer, delta, maskActive ) { 45 | 46 | if ( this.uniforms[ this.textureID ] ) { 47 | 48 | this.uniforms[ this.textureID ].value = readBuffer.texture; 49 | 50 | } 51 | 52 | this.quad.material = this.material; 53 | 54 | if ( this.renderToScreen ) { 55 | 56 | renderer.render( this.scene, this.camera ); 57 | 58 | } else { 59 | 60 | renderer.render( this.scene, this.camera, writeBuffer, this.clear ); 61 | 62 | } 63 | 64 | } 65 | 66 | } ); 67 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/TexturePass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author alteredq / http://alteredqualia.com/ 3 | */ 4 | 5 | THREE.TexturePass = function ( map, opacity ) { 6 | 7 | THREE.Pass.call( this ); 8 | 9 | if ( THREE.CopyShader === undefined ) 10 | console.error( "THREE.TexturePass relies on THREE.CopyShader" ); 11 | 12 | var shader = THREE.CopyShader; 13 | 14 | this.map = map; 15 | this.opacity = ( opacity !== undefined ) ? opacity : 1.0; 16 | 17 | this.uniforms = THREE.UniformsUtils.clone( shader.uniforms ); 18 | 19 | this.material = new THREE.ShaderMaterial( { 20 | 21 | uniforms: this.uniforms, 22 | vertexShader: shader.vertexShader, 23 | fragmentShader: shader.fragmentShader, 24 | depthTest: false, 25 | depthWrite: false 26 | 27 | } ); 28 | 29 | this.needsSwap = false; 30 | 31 | this.camera = new THREE.OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); 32 | this.scene = new THREE.Scene(); 33 | 34 | this.quad = new THREE.Mesh( new THREE.PlaneBufferGeometry( 2, 2 ), null ); 35 | this.scene.add( this.quad ); 36 | 37 | }; 38 | 39 | THREE.TexturePass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { 40 | 41 | constructor: THREE.TexturePass, 42 | 43 | render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { 44 | 45 | var oldAutoClear = renderer.autoClear; 46 | renderer.autoClear = false; 47 | 48 | this.quad.material = this.material; 49 | 50 | this.uniforms[ "opacity" ].value = this.opacity; 51 | this.uniforms[ "tDiffuse" ].value = this.map; 52 | this.material.transparent = ( this.opacity < 1.0 ); 53 | 54 | renderer.render( this.scene, this.camera, this.renderToScreen ? null : readBuffer, this.clear ); 55 | 56 | renderer.autoClear = oldAutoClear; 57 | } 58 | 59 | } ); 60 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/TriangleBlurShader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author zz85 / http://www.lab4games.net/zz85/blog 3 | * 4 | * Triangle blur shader 5 | * based on glfx.js triangle blur shader 6 | * https://github.com/evanw/glfx.js 7 | * 8 | * A basic blur filter, which convolves the image with a 9 | * pyramid filter. The pyramid filter is separable and is applied as two 10 | * perpendicular triangle filters. 11 | */ 12 | 13 | THREE.TriangleBlurShader = { 14 | 15 | uniforms : { 16 | 17 | "texture": { value: null }, 18 | "delta": { value: new THREE.Vector2( 1, 1 ) } 19 | 20 | }, 21 | 22 | vertexShader: [ 23 | 24 | "varying vec2 vUv;", 25 | 26 | "void main() {", 27 | 28 | "vUv = uv;", 29 | "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", 30 | 31 | "}" 32 | 33 | ].join( "\n" ), 34 | 35 | fragmentShader: [ 36 | 37 | "#include ", 38 | 39 | "#define ITERATIONS 10.0", 40 | 41 | "uniform sampler2D texture;", 42 | "uniform vec2 delta;", 43 | 44 | "varying vec2 vUv;", 45 | 46 | "void main() {", 47 | 48 | "vec4 color = vec4( 0.0 );", 49 | 50 | "float total = 0.0;", 51 | 52 | // randomize the lookup values to hide the fixed number of samples 53 | 54 | "float offset = rand( vUv );", 55 | 56 | "for ( float t = -ITERATIONS; t <= ITERATIONS; t ++ ) {", 57 | 58 | "float percent = ( t + offset - 0.5 ) / ITERATIONS;", 59 | "float weight = 1.0 - abs( percent );", 60 | 61 | "color += texture2D( texture, vUv + delta * percent ) * weight;", 62 | "total += weight;", 63 | 64 | "}", 65 | 66 | "gl_FragColor = color / total;", 67 | 68 | "}" 69 | 70 | ].join( "\n" ) 71 | 72 | }; 73 | -------------------------------------------------------------------------------- /threejs-6_postprocessing/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | threejs - postprocessing 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 142 | 143 | 144 | -------------------------------------------------------------------------------- /threejs-7_models.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-7_models.zip -------------------------------------------------------------------------------- /threejs-7_models/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | threejs - models 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /threejs-7_models/monkey.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-7_models/monkey.blend -------------------------------------------------------------------------------- /threejs-7_models/monkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "faces":[35,46,0,2,44,0,0,0,0,0,35,3,1,47,45,0,1,1,1,1,35,44,2,4,42,0,2,2,2,2,35,5,3,45,43,0,3,3,3,3,35,2,8,6,4,0,4,4,4,4,35,7,9,3,5,0,5,5,5,5,35,0,10,8,2,0,6,6,6,6,35,9,11,1,3,0,7,7,7,7,35,10,12,14,8,0,8,8,8,8,35,15,13,11,9,0,9,9,9,9,35,8,14,16,6,0,10,10,10,10,35,17,15,9,7,0,11,11,11,11,35,14,20,18,16,0,12,12,12,12,35,19,21,15,17,0,13,13,13,13,35,12,22,20,14,0,14,14,14,14,35,21,23,13,15,0,15,15,15,15,35,22,24,26,20,0,16,16,16,16,35,27,25,23,21,0,17,17,17,17,35,20,26,28,18,0,18,18,18,18,35,29,27,21,19,0,19,19,19,19,35,26,32,30,28,0,20,20,20,20,35,31,33,27,29,0,21,21,21,21,35,24,34,32,26,0,22,22,22,22,35,33,35,25,27,0,23,23,23,23,35,34,36,38,32,0,24,24,24,24,35,39,37,35,33,0,25,25,25,25,35,32,38,40,30,0,26,26,26,26,35,41,39,33,31,0,27,27,27,27,35,38,44,42,40,0,28,28,28,28,35,43,45,39,41,0,29,29,29,29,35,36,46,44,38,0,30,30,30,30,35,45,47,37,39,0,31,31,31,31,35,46,36,50,48,0,32,32,32,32,35,51,37,47,49,0,33,33,33,33,35,36,34,52,50,0,34,34,34,34,35,53,35,37,51,0,35,35,35,35,35,34,24,54,52,0,36,36,36,36,35,55,25,35,53,0,37,37,37,37,35,24,22,56,54,0,38,38,38,38,35,57,23,25,55,0,39,39,39,39,35,22,12,58,56,0,40,40,40,40,35,59,13,23,57,0,41,41,41,41,35,12,10,62,58,0,42,42,42,42,35,63,11,13,59,0,43,43,43,43,35,10,0,64,62,0,44,44,44,44,35,65,1,11,63,0,45,45,45,45,35,0,46,48,64,0,46,46,46,46,35,49,47,1,65,0,47,47,47,47,34,60,64,48,0,48,48,48,34,49,65,61,0,49,49,49,34,62,64,60,0,50,50,50,34,61,65,63,0,51,51,51,34,60,58,62,0,52,52,52,34,63,59,61,0,53,53,53,34,60,56,58,0,54,54,54,34,59,57,61,0,55,55,55,34,60,54,56,0,56,56,56,34,57,55,61,0,57,57,57,34,60,52,54,0,58,58,58,34,55,53,61,0,59,59,59,34,60,50,52,0,60,60,60,34,53,51,61,0,61,61,61,34,60,48,50,0,62,62,62,34,51,49,61,0,63,63,63,35,88,173,175,90,0,64,64,64,64,35,175,174,89,90,0,65,65,65,65,35,86,171,173,88,0,66,66,66,66,35,174,172,87,89,0,67,67,67,67,35,84,169,171,86,0,68,68,68,68,35,172,170,85,87,0,69,69,69,69,35,82,167,169,84,0,70,70,70,70,35,170,168,83,85,0,71,71,71,71,35,80,165,167,82,0,72,72,72,72,35,168,166,81,83,0,73,73,73,73,35,78,91,145,163,0,74,74,74,74,35,146,92,79,164,0,75,75,75,75,35,91,93,147,145,0,76,76,76,76,35,148,94,92,146,0,77,77,77,77,35,93,95,149,147,0,78,78,78,78,35,150,96,94,148,0,79,79,79,79,35,95,97,151,149,0,80,80,80,80,35,152,98,96,150,0,81,81,81,81,35,97,99,153,151,0,82,82,82,82,35,154,100,98,152,0,83,83,83,83,35,99,101,155,153,0,84,84,84,84,35,156,102,100,154,0,85,85,85,85,35,101,103,157,155,0,86,86,86,86,35,158,104,102,156,0,87,87,87,87,35,103,105,159,157,0,88,88,88,88,35,160,106,104,158,0,89,89,89,89,35,105,107,161,159,0,90,90,90,90,35,162,108,106,160,0,91,91,91,91,35,107,66,67,161,0,92,92,92,92,35,67,66,108,162,0,93,93,93,93,35,109,127,159,161,0,94,94,94,94,35,160,128,110,162,0,95,95,95,95,35,127,178,157,159,0,96,96,96,96,35,158,179,128,160,0,97,97,97,97,35,125,155,157,178,0,98,98,98,98,35,158,156,126,179,0,99,99,99,99,35,123,153,155,125,0,100,100,100,100,35,156,154,124,126,0,101,101,101,101,35,121,151,153,123,0,102,102,102,102,35,154,152,122,124,0,103,103,103,103,35,119,149,151,121,0,104,104,104,104,35,152,150,120,122,0,105,105,105,105,35,117,147,149,119,0,106,106,106,106,35,150,148,118,120,0,107,107,107,107,35,115,145,147,117,0,108,108,108,108,35,148,146,116,118,0,109,109,109,109,35,113,163,145,115,0,110,110,110,110,35,146,164,114,116,0,111,111,111,111,35,113,180,176,163,0,112,112,112,112,35,176,181,114,164,0,113,113,113,113,35,109,161,67,111,0,114,114,114,114,35,67,162,110,112,0,115,115,115,115,35,111,67,177,182,0,116,116,116,116,35,177,67,112,183,0,117,117,117,117,35,176,180,182,177,0,118,118,118,118,35,183,181,176,177,0,119,119,119,119,35,134,136,175,173,0,120,120,120,120,35,175,136,135,174,0,121,121,121,121,35,132,134,173,171,0,122,122,122,122,35,174,135,133,172,0,123,123,123,123,35,130,132,171,169,0,124,124,124,124,35,172,133,131,170,0,125,125,125,125,35,165,186,184,167,0,126,126,126,126,35,185,187,166,168,0,127,127,127,127,35,130,169,167,184,0,128,128,128,128,35,168,170,131,185,0,129,129,129,129,35,143,189,188,186,0,130,130,130,130,35,188,189,144,187,0,131,131,131,131,35,184,186,188,68,0,132,132,132,132,35,188,187,185,68,0,133,133,133,133,35,129,130,184,68,0,134,134,134,134,35,185,131,129,68,0,135,135,135,135,35,141,192,190,143,0,136,136,136,136,35,191,193,142,144,0,137,137,137,137,35,139,194,192,141,0,138,138,138,138,35,193,195,140,142,0,139,139,139,139,35,138,196,194,139,0,140,140,140,140,35,195,197,138,140,0,141,141,141,141,35,137,70,196,138,0,142,142,142,142,35,197,70,137,138,0,143,143,143,143,35,189,143,190,69,0,144,144,144,144,35,191,144,189,69,0,145,145,145,145,35,69,190,205,207,0,146,146,146,146,35,206,191,69,207,0,147,147,147,147,35,70,198,199,196,0,148,148,148,148,35,200,198,70,197,0,149,149,149,149,35,196,199,201,194,0,150,150,150,150,35,202,200,197,195,0,151,151,151,151,35,194,201,203,192,0,152,152,152,152,35,204,202,195,193,0,153,153,153,153,35,192,203,205,190,0,154,154,154,154,35,206,204,193,191,0,155,155,155,155,35,198,203,201,199,0,156,156,156,156,35,202,204,198,200,0,157,157,157,157,35,198,207,205,203,0,158,158,158,158,35,206,207,198,204,0,159,159,159,159,35,138,139,163,176,0,160,160,160,160,35,164,140,138,176,0,161,161,161,161,35,139,141,210,163,0,162,162,162,162,35,211,142,140,164,0,163,163,163,163,35,141,143,212,210,0,164,164,164,164,35,213,144,142,211,0,165,165,165,165,35,143,186,165,212,0,166,166,166,166,35,166,187,144,213,0,167,167,167,167,35,80,208,212,165,0,168,168,168,168,35,213,209,81,166,0,169,169,169,169,35,208,214,210,212,0,170,170,170,170,35,211,215,209,213,0,171,171,171,171,35,78,163,210,214,0,172,172,172,172,35,211,164,79,215,0,173,173,173,173,35,130,129,71,221,0,174,174,174,174,35,71,129,131,222,0,175,175,175,175,35,132,130,221,219,0,176,176,176,176,35,222,131,133,220,0,177,177,177,177,35,134,132,219,217,0,178,178,178,178,35,220,133,135,218,0,179,179,179,179,35,136,134,217,216,0,180,180,180,180,35,218,135,136,216,0,181,181,181,181,35,216,217,228,230,0,182,182,182,182,35,229,218,216,230,0,183,183,183,183,35,217,219,226,228,0,184,184,184,184,35,227,220,218,229,0,185,185,185,185,35,219,221,224,226,0,186,186,186,186,35,225,222,220,227,0,187,187,187,187,35,221,71,223,224,0,188,188,188,188,35,223,71,222,225,0,189,189,189,189,35,223,230,228,224,0,190,190,190,190,35,229,230,223,225,0,191,191,191,191,34,224,228,226,0,192,192,192,34,227,229,225,0,193,193,193,35,182,180,233,231,0,194,194,194,194,35,234,181,183,232,0,195,195,195,195,35,111,182,231,253,0,196,196,196,196,35,232,183,112,254,0,197,197,197,197,35,109,111,253,255,0,198,198,198,198,35,254,112,110,256,0,199,199,199,199,35,180,113,251,233,0,200,200,200,200,35,252,114,181,234,0,201,201,201,201,35,113,115,249,251,0,202,202,202,202,35,250,116,114,252,0,203,203,203,203,35,115,117,247,249,0,204,204,204,204,35,248,118,116,250,0,205,205,205,205,35,117,119,245,247,0,206,206,206,206,35,246,120,118,248,0,207,207,207,207,35,119,121,243,245,0,208,208,208,208,35,244,122,120,246,0,209,209,209,209,35,121,123,241,243,0,210,210,210,210,35,242,124,122,244,0,211,211,211,211,35,123,125,239,241,0,212,212,212,212,35,240,126,124,242,0,213,213,213,213,35,125,178,235,239,0,214,214,214,214,35,236,179,126,240,0,215,215,215,215,35,178,127,237,235,0,216,216,216,216,35,238,128,179,236,0,217,217,217,217,35,127,109,255,237,0,218,218,218,218,35,256,110,128,238,0,219,219,219,219,35,237,255,257,275,0,220,220,220,220,35,258,256,238,276,0,221,221,221,221,35,235,237,275,277,0,222,222,222,222,35,276,238,236,278,0,223,223,223,223,35,239,235,277,273,0,224,224,224,224,35,278,236,240,274,0,225,225,225,225,35,241,239,273,271,0,226,226,226,226,35,274,240,242,272,0,227,227,227,227,35,243,241,271,269,0,228,228,228,228,35,272,242,244,270,0,229,229,229,229,35,245,243,269,267,0,230,230,230,230,35,270,244,246,268,0,231,231,231,231,35,247,245,267,265,0,232,232,232,232,35,268,246,248,266,0,233,233,233,233,35,249,247,265,263,0,234,234,234,234,35,266,248,250,264,0,235,235,235,235,35,251,249,263,261,0,236,236,236,236,35,264,250,252,262,0,237,237,237,237,35,233,251,261,279,0,238,238,238,238,35,262,252,234,280,0,239,239,239,239,35,255,253,259,257,0,240,240,240,240,35,260,254,256,258,0,241,241,241,241,35,253,231,281,259,0,242,242,242,242,35,282,232,254,260,0,243,243,243,243,35,231,233,279,281,0,244,244,244,244,35,280,234,232,282,0,245,245,245,245,35,66,107,283,72,0,246,246,246,246,35,284,108,66,72,0,247,247,247,247,35,107,105,285,283,0,248,248,248,248,35,286,106,108,284,0,249,249,249,249,35,105,103,287,285,0,250,250,250,250,35,288,104,106,286,0,251,251,251,251,35,103,101,289,287,0,252,252,252,252,35,290,102,104,288,0,253,253,253,253,35,101,99,291,289,0,254,254,254,254,35,292,100,102,290,0,255,255,255,255,35,99,97,293,291,0,256,256,256,256,35,294,98,100,292,0,257,257,257,257,35,97,95,295,293,0,258,258,258,258,35,296,96,98,294,0,259,259,259,259,35,95,93,297,295,0,260,260,260,260,35,298,94,96,296,0,261,261,261,261,35,93,91,299,297,0,262,262,262,262,35,300,92,94,298,0,263,263,263,263,35,307,308,327,337,0,264,264,264,264,35,328,308,307,338,0,265,265,265,265,35,306,307,337,335,0,266,266,266,266,35,338,307,306,336,0,267,267,267,267,35,305,306,335,339,0,268,268,268,268,35,336,306,305,340,0,269,269,269,269,35,88,90,305,339,0,270,270,270,270,35,305,90,89,340,0,271,271,271,271,35,86,88,339,333,0,272,272,272,272,35,340,89,87,334,0,273,273,273,273,35,84,86,333,329,0,274,274,274,274,35,334,87,85,330,0,275,275,275,275,35,82,84,329,331,0,276,276,276,276,35,330,85,83,332,0,277,277,277,277,35,329,335,337,331,0,278,278,278,278,35,338,336,330,332,0,279,279,279,279,35,329,333,339,335,0,280,280,280,280,35,340,334,330,336,0,281,281,281,281,35,325,331,337,327,0,282,282,282,282,35,338,332,326,328,0,283,283,283,283,35,80,82,331,325,0,284,284,284,284,35,332,83,81,326,0,285,285,285,285,35,208,341,343,214,0,286,286,286,286,35,344,342,209,215,0,287,287,287,287,35,80,325,341,208,0,288,288,288,288,35,342,326,81,209,0,289,289,289,289,35,78,214,343,345,0,290,290,290,290,35,344,215,79,346,0,291,291,291,291,35,78,345,299,91,0,292,292,292,292,35,300,346,79,92,0,293,293,293,293,35,76,323,351,303,0,294,294,294,294,35,352,324,76,303,0,295,295,295,295,35,303,351,349,77,0,296,296,296,296,35,350,352,303,77,0,297,297,297,297,35,77,349,347,304,0,298,298,298,298,35,348,350,77,304,0,299,299,299,299,35,304,347,327,308,0,300,300,300,300,35,328,348,304,308,0,301,301,301,301,35,325,327,347,341,0,302,302,302,302,35,348,328,326,342,0,303,303,303,303,35,295,297,317,309,0,304,304,304,304,35,318,298,296,310,0,305,305,305,305,35,75,315,323,76,0,306,306,306,306,35,324,316,75,76,0,307,307,307,307,35,301,357,355,302,0,308,308,308,308,35,356,358,301,302,0,309,309,309,309,35,302,355,353,74,0,310,310,310,310,35,354,356,302,74,0,311,311,311,311,35,74,353,315,75,0,312,312,312,312,35,316,354,74,75,0,313,313,313,313,35,291,293,361,363,0,314,314,314,314,35,362,294,292,364,0,315,315,315,315,35,363,361,367,365,0,316,316,316,316,35,368,362,364,366,0,317,317,317,317,35,365,367,369,371,0,318,318,318,318,35,370,368,366,372,0,319,319,319,319,35,371,369,375,373,0,320,320,320,320,35,376,370,372,374,0,321,321,321,321,35,313,377,373,375,0,322,322,322,322,35,374,378,314,376,0,323,323,323,323,35,315,353,373,377,0,324,324,324,324,35,374,354,316,378,0,325,325,325,325,35,353,355,371,373,0,326,326,326,326,35,372,356,354,374,0,327,327,327,327,35,355,357,365,371,0,328,328,328,328,35,366,358,356,372,0,329,329,329,329,35,357,359,363,365,0,330,330,330,330,35,364,360,358,366,0,331,331,331,331,35,289,291,363,359,0,332,332,332,332,35,364,292,290,360,0,333,333,333,333,35,73,359,357,301,0,334,334,334,334,35,358,360,73,301,0,335,335,335,335,35,283,285,287,289,0,336,336,336,336,35,288,286,284,290,0,337,337,337,337,35,283,289,359,73,0,338,338,338,338,35,360,290,284,73,0,339,339,339,339,34,72,283,73,0,340,340,340,34,73,284,72,0,341,341,341,35,293,295,309,361,0,342,342,342,342,35,310,296,294,362,0,343,343,343,343,35,309,311,367,361,0,344,344,344,344,35,368,312,310,362,0,345,345,345,345,35,311,381,369,367,0,346,346,346,346,35,370,382,312,368,0,347,347,347,347,35,313,375,369,381,0,348,348,348,348,35,370,376,314,382,0,349,349,349,349,35,347,349,385,383,0,350,350,350,350,35,386,350,348,384,0,351,351,351,351,35,317,383,385,319,0,352,352,352,352,35,386,384,318,320,0,353,353,353,353,35,297,299,383,317,0,354,354,354,354,35,384,300,298,318,0,355,355,355,355,35,299,343,341,383,0,356,356,356,356,35,342,344,300,384,0,357,357,357,357,34,341,347,383,0,358,358,358,34,384,348,342,0,359,359,359,34,299,345,343,0,360,360,360,34,344,346,300,0,361,361,361,35,313,321,379,377,0,362,362,362,362,35,380,322,314,378,0,363,363,363,363,35,315,377,379,323,0,364,364,364,364,35,380,378,316,324,0,365,365,365,365,35,319,385,379,321,0,366,366,366,366,35,380,386,320,322,0,367,367,367,367,35,349,351,379,385,0,368,368,368,368,35,380,352,350,386,0,369,369,369,369,34,323,379,351,0,370,370,370,34,352,380,324,0,371,371,371,35,399,387,413,401,0,372,372,372,372,35,414,388,400,402,0,373,373,373,373,35,399,401,403,397,0,374,374,374,374,35,404,402,400,398,0,375,375,375,375,35,397,403,405,395,0,376,376,376,376,35,406,404,398,396,0,377,377,377,377,35,395,405,407,393,0,378,378,378,378,35,408,406,396,394,0,379,379,379,379,35,393,407,409,391,0,380,380,380,380,35,410,408,394,392,0,381,381,381,381,35,391,409,411,389,0,382,382,382,382,35,412,410,392,390,0,383,383,383,383,35,409,419,417,411,0,384,384,384,384,35,418,420,410,412,0,385,385,385,385,35,407,421,419,409,0,386,386,386,386,35,420,422,408,410,0,387,387,387,387,35,405,423,421,407,0,388,388,388,388,35,422,424,406,408,0,389,389,389,389,35,403,425,423,405,0,390,390,390,390,35,424,426,404,406,0,391,391,391,391,35,401,427,425,403,0,392,392,392,392,35,426,428,402,404,0,393,393,393,393,35,401,413,415,427,0,394,394,394,394,35,416,414,402,428,0,395,395,395,395,35,317,319,443,441,0,396,396,396,396,35,444,320,318,442,0,397,397,397,397,35,319,389,411,443,0,398,398,398,398,35,412,390,320,444,0,399,399,399,399,35,309,317,441,311,0,400,400,400,400,35,442,318,310,312,0,401,401,401,401,35,381,429,413,387,0,402,402,402,402,35,414,430,382,388,0,403,403,403,403,35,411,417,439,443,0,404,404,404,404,35,440,418,412,444,0,405,405,405,405,35,437,445,443,439,0,406,406,406,406,35,444,446,438,440,0,407,407,407,407,35,433,445,437,435,0,408,408,408,408,35,438,446,434,436,0,409,409,409,409,35,431,447,445,433,0,410,410,410,410,35,446,448,432,434,0,411,411,411,411,35,429,447,431,449,0,412,412,412,412,35,432,448,430,450,0,413,413,413,413,35,413,429,449,415,0,414,414,414,414,35,450,430,414,416,0,415,415,415,415,35,311,447,429,381,0,416,416,416,416,35,430,448,312,382,0,417,417,417,417,35,311,441,445,447,0,418,418,418,418,35,446,442,312,448,0,419,419,419,419,34,441,443,445,0,420,420,420,34,446,444,442,0,421,421,421,35,415,449,451,475,0,422,422,422,422,35,452,450,416,476,0,423,423,423,423,35,449,431,461,451,0,424,424,424,424,35,462,432,450,452,0,425,425,425,425,35,431,433,459,461,0,426,426,426,426,35,460,434,432,462,0,427,427,427,427,35,433,435,457,459,0,428,428,428,428,35,458,436,434,460,0,429,429,429,429,35,435,437,455,457,0,430,430,430,430,35,456,438,436,458,0,431,431,431,431,35,437,439,453,455,0,432,432,432,432,35,454,440,438,456,0,433,433,433,433,35,439,417,473,453,0,434,434,434,434,35,474,418,440,454,0,435,435,435,435,35,427,415,475,463,0,436,436,436,436,35,476,416,428,464,0,437,437,437,437,35,425,427,463,465,0,438,438,438,438,35,464,428,426,466,0,439,439,439,439,35,423,425,465,467,0,440,440,440,440,35,466,426,424,468,0,441,441,441,441,35,421,423,467,469,0,442,442,442,442,35,468,424,422,470,0,443,443,443,443,35,419,421,469,471,0,444,444,444,444,35,470,422,420,472,0,445,445,445,445,35,417,419,471,473,0,446,446,446,446,35,472,420,418,474,0,447,447,447,447,35,457,455,479,477,0,448,448,448,448,35,480,456,458,478,0,449,449,449,449,35,477,479,481,483,0,450,450,450,450,35,482,480,478,484,0,451,451,451,451,35,483,481,487,485,0,452,452,452,452,35,488,482,484,486,0,453,453,453,453,35,485,487,489,491,0,454,454,454,454,35,490,488,486,492,0,455,455,455,455,35,463,475,485,491,0,456,456,456,456,35,486,476,464,492,0,457,457,457,457,35,451,483,485,475,0,458,458,458,458,35,486,484,452,476,0,459,459,459,459,35,451,461,477,483,0,460,460,460,460,35,478,462,452,484,0,461,461,461,461,35,457,477,461,459,0,462,462,462,462,35,462,478,458,460,0,463,463,463,463,35,453,473,479,455,0,464,464,464,464,35,480,474,454,456,0,465,465,465,465,35,471,481,479,473,0,466,466,466,466,35,480,482,472,474,0,467,467,467,467,35,469,487,481,471,0,468,468,468,468,35,482,488,470,472,0,469,469,469,469,35,467,489,487,469,0,470,470,470,470,35,488,490,468,470,0,471,471,471,471,35,465,491,489,467,0,472,472,472,472,35,490,492,466,468,0,473,473,473,473,34,463,491,465,0,474,474,474,34,466,492,464,0,475,475,475,35,391,389,503,501,0,476,476,476,476,35,504,390,392,502,0,477,477,477,477,35,393,391,501,499,0,478,478,478,478,35,502,392,394,500,0,479,479,479,479,35,395,393,499,497,0,480,480,480,480,35,500,394,396,498,0,481,481,481,481,35,397,395,497,495,0,482,482,482,482,35,498,396,398,496,0,483,483,483,483,35,399,397,495,493,0,484,484,484,484,35,496,398,400,494,0,485,485,485,485,35,387,399,493,505,0,486,486,486,486,35,494,400,388,506,0,487,487,487,487,35,493,501,503,505,0,488,488,488,488,35,504,502,494,506,0,489,489,489,489,35,493,495,499,501,0,490,490,490,490,35,500,496,494,502,0,491,491,491,491,34,495,497,499,0,492,492,492,34,500,498,496,0,493,493,493,35,313,381,387,505,0,494,494,494,494,35,388,382,314,506,0,495,495,495,495,35,313,505,503,321,0,496,496,496,496,35,504,506,314,322,0,497,497,497,497,35,319,321,503,389,0,498,498,498,498,35,504,322,320,390,0,499,499,499,499], 3 | "materials":[{ 4 | "depthWrite":true, 5 | "transparent":false, 6 | "colorSpecular":[0.701439,0.701439,0.701439], 7 | "colorDiffuse":[0.64,0.021693,0.03339], 8 | "visible":true, 9 | "DbgColor":15658734, 10 | "specularCoef":50, 11 | "shading":"phong", 12 | "DbgName":"Material.001", 13 | "wireframe":false, 14 | "blending":"NormalBlending", 15 | "depthTest":true, 16 | "opacity":1, 17 | "DbgIndex":0, 18 | "colorEmissive":[0,0,0] 19 | }], 20 | "name":"SuzanneGeometry.1", 21 | "metadata":{ 22 | "materials":1, 23 | "type":"Geometry", 24 | "vertices":507, 25 | "normals":500, 26 | "generator":"io_three", 27 | "uvs":0, 28 | "faces":500, 29 | "version":3 30 | }, 31 | "vertices":[0.4375,0.164063,0.765625,-0.4375,0.164063,0.765625,0.5,0.09375,0.6875,-0.5,0.09375,0.6875,0.546875,0.054688,0.578125,-0.546875,0.054688,0.578125,0.351562,-0.023437,0.617188,-0.351562,-0.023437,0.617188,0.351562,0.03125,0.71875,-0.351562,0.03125,0.71875,0.351562,0.132813,0.78125,-0.351562,0.132813,0.78125,0.273438,0.164063,0.796875,-0.273438,0.164063,0.796875,0.203125,0.09375,0.742188,-0.203125,0.09375,0.742188,0.15625,0.054688,0.648438,-0.15625,0.054688,0.648438,0.078125,0.242188,0.65625,-0.078125,0.242188,0.65625,0.140625,0.242188,0.742188,-0.140625,0.242188,0.742188,0.242188,0.242188,0.796875,-0.242188,0.242188,0.796875,0.273438,0.328125,0.796875,-0.273438,0.328125,0.796875,0.203125,0.390625,0.742188,-0.203125,0.390625,0.742188,0.15625,0.4375,0.648438,-0.15625,0.4375,0.648438,0.351562,0.515625,0.617188,-0.351562,0.515625,0.617188,0.351562,0.453125,0.71875,-0.351562,0.453125,0.71875,0.351562,0.359375,0.78125,-0.351562,0.359375,0.78125,0.4375,0.328125,0.765625,-0.4375,0.328125,0.765625,0.5,0.390625,0.6875,-0.5,0.390625,0.6875,0.546875,0.4375,0.578125,-0.546875,0.4375,0.578125,0.625,0.242188,0.5625,-0.625,0.242188,0.5625,0.5625,0.242188,0.671875,-0.5625,0.242188,0.671875,0.46875,0.242188,0.757812,-0.46875,0.242188,0.757812,0.476562,0.242188,0.773438,-0.476562,0.242188,0.773438,0.445312,0.335938,0.78125,-0.445312,0.335938,0.78125,0.351562,0.375,0.804688,-0.351562,0.375,0.804688,0.265625,0.335938,0.820312,-0.265625,0.335938,0.820312,0.226562,0.242188,0.820312,-0.226562,0.242188,0.820312,0.265625,0.15625,0.820312,-0.265625,0.15625,0.820312,0.351562,0.242188,0.828125,-0.351562,0.242188,0.828125,0.351562,0.117188,0.804688,-0.351562,0.117188,0.804688,0.445312,0.15625,0.78125,-0.445312,0.15625,0.78125,0,0.429688,0.742188,0,0.351563,0.820312,0,-0.679687,0.734375,0,-0.320312,0.78125,0,-0.1875,0.796875,0,-0.773437,0.71875,0,0.40625,0.601562,0,0.570312,0.570312,0,0.898438,-0.546875,0,0.5625,-0.851562,0,0.070312,-0.828125,0,-0.382813,-0.351562,0.203125,-0.1875,0.5625,-0.203125,-0.1875,0.5625,0.3125,-0.4375,0.570312,-0.3125,-0.4375,0.570312,0.351562,-0.695312,0.570313,-0.351562,-0.695312,0.570313,0.367188,-0.890625,0.53125,-0.367188,-0.890625,0.53125,0.328125,-0.945312,0.523438,-0.328125,-0.945312,0.523438,0.179688,-0.96875,0.554688,-0.179688,-0.96875,0.554688,0,-0.984375,0.578125,0.4375,-0.140625,0.53125,-0.4375,-0.140625,0.53125,0.632812,-0.039062,0.539062,-0.632812,-0.039062,0.539062,0.828125,0.148438,0.445312,-0.828125,0.148438,0.445312,0.859375,0.429688,0.59375,-0.859375,0.429688,0.59375,0.710938,0.484375,0.625,-0.710938,0.484375,0.625,0.492188,0.601563,0.6875,-0.492188,0.601563,0.6875,0.320312,0.757813,0.734375,-0.320312,0.757813,0.734375,0.15625,0.71875,0.757812,-0.15625,0.71875,0.757812,0.0625,0.492188,0.75,-0.0625,0.492188,0.75,0.164062,0.414063,0.773438,-0.164062,0.414063,0.773438,0.125,0.304688,0.765625,-0.125,0.304688,0.765625,0.203125,0.09375,0.742188,-0.203125,0.09375,0.742188,0.375,0.015625,0.703125,-0.375,0.015625,0.703125,0.492188,0.0625,0.671875,-0.492188,0.0625,0.671875,0.625,0.1875,0.648438,-0.625,0.1875,0.648438,0.640625,0.296875,0.648438,-0.640625,0.296875,0.648438,0.601562,0.375,0.664062,-0.601562,0.375,0.664062,0.429688,0.4375,0.71875,-0.429688,0.4375,0.71875,0.25,0.46875,0.757812,-0.25,0.46875,0.757812,0,-0.765625,0.734375,0.109375,-0.71875,0.734375,-0.109375,-0.71875,0.734375,0.117188,-0.835937,0.710938,-0.117188,-0.835937,0.710938,0.0625,-0.882812,0.695313,-0.0625,-0.882812,0.695313,0,-0.890625,0.6875,0,-0.195312,0.75,0,-0.140625,0.742188,0.101562,-0.148437,0.742188,-0.101562,-0.148437,0.742188,0.125,-0.226562,0.75,-0.125,-0.226562,0.75,0.085938,-0.289062,0.742188,-0.085938,-0.289062,0.742188,0.398438,-0.046875,0.671875,-0.398438,-0.046875,0.671875,0.617188,0.054688,0.625,-0.617188,0.054688,0.625,0.726562,0.203125,0.601562,-0.726562,0.203125,0.601562,0.742188,0.375,0.65625,-0.742188,0.375,0.65625,0.6875,0.414063,0.726562,-0.6875,0.414063,0.726562,0.4375,0.546875,0.796875,-0.4375,0.546875,0.796875,0.3125,0.640625,0.835938,-0.3125,0.640625,0.835938,0.203125,0.617188,0.851562,-0.203125,0.617188,0.851562,0.101562,0.429688,0.84375,-0.101562,0.429688,0.84375,0.125,-0.101562,0.8125,-0.125,-0.101562,0.8125,0.210938,-0.445312,0.710938,-0.210938,-0.445312,0.710938,0.25,-0.703125,0.6875,-0.25,-0.703125,0.6875,0.265625,-0.820312,0.664063,-0.265625,-0.820312,0.664063,0.234375,-0.914062,0.632813,-0.234375,-0.914062,0.632813,0.164062,-0.929688,0.632813,-0.164062,-0.929688,0.632813,0,-0.945312,0.640625,0,0.046875,0.726562,0,0.210938,0.765625,0.328125,0.476563,0.742188,-0.328125,0.476563,0.742188,0.164062,0.140625,0.75,-0.164062,0.140625,0.75,0.132812,0.210938,0.757812,-0.132812,0.210938,0.757812,0.117188,-0.6875,0.734375,-0.117188,-0.6875,0.734375,0.078125,-0.445312,0.75,-0.078125,-0.445312,0.75,0,-0.445312,0.75,0,-0.328125,0.742188,0.09375,-0.273437,0.78125,-0.09375,-0.273437,0.78125,0.132812,-0.226562,0.796875,-0.132812,-0.226562,0.796875,0.109375,-0.132812,0.78125,-0.109375,-0.132812,0.78125,0.039062,-0.125,0.78125,-0.039062,-0.125,0.78125,0,-0.203125,0.828125,0.046875,-0.148437,0.8125,-0.046875,-0.148437,0.8125,0.09375,-0.15625,0.8125,-0.09375,-0.15625,0.8125,0.109375,-0.226562,0.828125,-0.109375,-0.226562,0.828125,0.078125,-0.25,0.804688,-0.078125,-0.25,0.804688,0,-0.289062,0.804688,0.257812,-0.3125,0.554688,-0.257812,-0.3125,0.554688,0.164062,-0.242187,0.710938,-0.164062,-0.242187,0.710938,0.179688,-0.3125,0.710938,-0.179688,-0.3125,0.710938,0.234375,-0.25,0.554688,-0.234375,-0.25,0.554688,0,-0.875,0.6875,0.046875,-0.867187,0.6875,-0.046875,-0.867187,0.6875,0.09375,-0.820312,0.710938,-0.09375,-0.820312,0.710938,0.09375,-0.742187,0.726563,-0.09375,-0.742187,0.726563,0,-0.78125,0.65625,0.09375,-0.75,0.664063,-0.09375,-0.75,0.664063,0.09375,-0.8125,0.640625,-0.09375,-0.8125,0.640625,0.046875,-0.851562,0.632813,-0.046875,-0.851562,0.632813,0,-0.859375,0.632813,0.171875,0.21875,0.78125,-0.171875,0.21875,0.78125,0.1875,0.15625,0.773438,-0.1875,0.15625,0.773438,0.335938,0.429688,0.757812,-0.335938,0.429688,0.757812,0.273438,0.421875,0.773438,-0.273438,0.421875,0.773438,0.421875,0.398438,0.773438,-0.421875,0.398438,0.773438,0.5625,0.351563,0.695312,-0.5625,0.351563,0.695312,0.585938,0.289063,0.6875,-0.585938,0.289063,0.6875,0.578125,0.195313,0.679688,-0.578125,0.195313,0.679688,0.476562,0.101563,0.71875,-0.476562,0.101563,0.71875,0.375,0.0625,0.742188,-0.375,0.0625,0.742188,0.226562,0.109375,0.78125,-0.226562,0.109375,0.78125,0.179688,0.296875,0.78125,-0.179688,0.296875,0.78125,0.210938,0.375,0.78125,-0.210938,0.375,0.78125,0.234375,0.359375,0.757812,-0.234375,0.359375,0.757812,0.195312,0.296875,0.757812,-0.195312,0.296875,0.757812,0.242188,0.125,0.757812,-0.242188,0.125,0.757812,0.375,0.085938,0.726562,-0.375,0.085938,0.726562,0.460938,0.117188,0.703125,-0.460938,0.117188,0.703125,0.546875,0.210938,0.671875,-0.546875,0.210938,0.671875,0.554688,0.28125,0.671875,-0.554688,0.28125,0.671875,0.53125,0.335938,0.679688,-0.53125,0.335938,0.679688,0.414062,0.390625,0.75,-0.414062,0.390625,0.75,0.28125,0.398438,0.765625,-0.28125,0.398438,0.765625,0.335938,0.40625,0.75,-0.335938,0.40625,0.75,0.203125,0.171875,0.75,-0.203125,0.171875,0.75,0.195312,0.226563,0.75,-0.195312,0.226563,0.75,0.109375,0.460938,0.609375,-0.109375,0.460938,0.609375,0.195312,0.664062,0.617188,-0.195312,0.664062,0.617188,0.335938,0.6875,0.59375,-0.335938,0.6875,0.59375,0.484375,0.554688,0.554688,-0.484375,0.554688,0.554688,0.679688,0.453125,0.492187,-0.679688,0.453125,0.492187,0.796875,0.40625,0.460937,-0.796875,0.40625,0.460937,0.773438,0.164063,0.375,-0.773438,0.164063,0.375,0.601562,0,0.414062,-0.601562,0,0.414062,0.4375,-0.09375,0.46875,-0.4375,-0.09375,0.46875,0,0.898438,0.289062,0,0.984375,-0.078125,0,-0.195313,-0.671875,0,-0.460938,0.1875,0,-0.976562,0.460938,0,-0.804688,0.34375,0,-0.570312,0.320313,0,-0.484375,0.28125,0.851562,0.234375,0.054687,-0.851562,0.234375,0.054687,0.859375,0.320312,-0.046875,-0.859375,0.320312,-0.046875,0.773438,0.265625,-0.4375,-0.773438,0.265625,-0.4375,0.460938,0.4375,-0.703125,-0.460938,0.4375,-0.703125,0.734375,-0.046875,0.070312,-0.734375,-0.046875,0.070312,0.59375,-0.125,-0.164062,-0.59375,-0.125,-0.164062,0.640625,-0.007813,-0.429688,-0.640625,-0.007813,-0.429688,0.335938,0.054687,-0.664062,-0.335938,0.054687,-0.664062,0.234375,-0.351562,0.40625,-0.234375,-0.351562,0.40625,0.179688,-0.414062,0.257813,-0.179688,-0.414062,0.257813,0.289062,-0.710938,0.382813,-0.289062,-0.710938,0.382813,0.25,-0.5,0.390625,-0.25,-0.5,0.390625,0.328125,-0.914062,0.398438,-0.328125,-0.914062,0.398438,0.140625,-0.757812,0.367188,-0.140625,-0.757812,0.367188,0.125,-0.539062,0.359375,-0.125,-0.539062,0.359375,0.164062,-0.945312,0.4375,-0.164062,-0.945312,0.4375,0.21875,-0.28125,0.429688,-0.21875,-0.28125,0.429688,0.210938,-0.226562,0.46875,-0.210938,-0.226562,0.46875,0.203125,-0.171875,0.5,-0.203125,-0.171875,0.5,0.210938,-0.390625,0.164063,-0.210938,-0.390625,0.164063,0.296875,-0.3125,-0.265625,-0.296875,-0.3125,-0.265625,0.34375,-0.148438,-0.539062,-0.34375,-0.148438,-0.539062,0.453125,0.867188,-0.382813,-0.453125,0.867188,-0.382813,0.453125,0.929688,-0.070313,-0.453125,0.929688,-0.070313,0.453125,0.851562,0.234375,-0.453125,0.851562,0.234375,0.460938,0.523438,0.429687,-0.460938,0.523438,0.429687,0.726562,0.40625,0.335937,-0.726562,0.40625,0.335937,0.632812,0.453125,0.28125,-0.632812,0.453125,0.28125,0.640625,0.703125,0.054687,-0.640625,0.703125,0.054687,0.796875,0.5625,0.125,-0.796875,0.5625,0.125,0.796875,0.617188,-0.117188,-0.796875,0.617188,-0.117188,0.640625,0.75,-0.195313,-0.640625,0.75,-0.195313,0.640625,0.679688,-0.445313,-0.640625,0.679688,-0.445313,0.796875,0.539062,-0.359375,-0.796875,0.539062,-0.359375,0.617188,0.328125,-0.585938,-0.617188,0.328125,-0.585938,0.484375,0.023437,-0.546875,-0.484375,0.023437,-0.546875,0.820312,0.328125,-0.203125,-0.820312,0.328125,-0.203125,0.40625,-0.171875,0.148438,-0.40625,-0.171875,0.148438,0.429688,-0.195313,-0.210937,-0.429688,-0.195313,-0.210937,0.890625,0.40625,-0.234375,-0.890625,0.40625,-0.234375,0.773438,-0.140625,-0.125,-0.773438,-0.140625,-0.125,1.03906,-0.101563,-0.328125,-1.03906,-0.101563,-0.328125,1.28125,0.054687,-0.429688,-1.28125,0.054687,-0.429688,1.35156,0.320312,-0.421875,-1.35156,0.320312,-0.421875,1.23438,0.507812,-0.421875,-1.23438,0.507812,-0.421875,1.02344,0.476562,-0.3125,-1.02344,0.476562,-0.3125,1.01562,0.414062,-0.289063,-1.01562,0.414062,-0.289063,1.1875,0.4375,-0.390625,-1.1875,0.4375,-0.390625,1.26562,0.289062,-0.40625,-1.26562,0.289062,-0.40625,1.21094,0.078125,-0.40625,-1.21094,0.078125,-0.40625,1.03125,-0.039063,-0.304688,-1.03125,-0.039063,-0.304688,0.828125,-0.070313,-0.132812,-0.828125,-0.070313,-0.132812,0.921875,0.359375,-0.21875,-0.921875,0.359375,-0.21875,0.945312,0.304688,-0.289062,-0.945312,0.304688,-0.289062,0.882812,-0.023438,-0.210938,-0.882812,-0.023438,-0.210938,1.03906,-0,-0.367188,-1.03906,-0,-0.367188,1.1875,0.09375,-0.445312,-1.1875,0.09375,-0.445312,1.23438,0.25,-0.445312,-1.23438,0.25,-0.445312,1.17188,0.359375,-0.4375,-1.17188,0.359375,-0.4375,1.02344,0.34375,-0.359375,-1.02344,0.34375,-0.359375,0.84375,0.289062,-0.210938,-0.84375,0.289062,-0.210938,0.835938,0.171875,-0.273438,-0.835938,0.171875,-0.273438,0.757812,0.09375,-0.273438,-0.757812,0.09375,-0.273438,0.820312,0.085937,-0.273438,-0.820312,0.085937,-0.273438,0.84375,0.015625,-0.273438,-0.84375,0.015625,-0.273438,0.8125,-0.015625,-0.273438,-0.8125,-0.015625,-0.273438,0.726562,-0,-0.070312,-0.726562,-0,-0.070312,0.71875,-0.023438,-0.171875,-0.71875,-0.023438,-0.171875,0.71875,0.039062,-0.1875,-0.71875,0.039062,-0.1875,0.796875,0.203125,-0.210938,-0.796875,0.203125,-0.210938,0.890625,0.242187,-0.265625,-0.890625,0.242187,-0.265625,0.890625,0.234375,-0.320312,-0.890625,0.234375,-0.320312,0.8125,-0.015625,-0.320312,-0.8125,-0.015625,-0.320312,0.851562,0.015625,-0.320312,-0.851562,0.015625,-0.320312,0.828125,0.078125,-0.320312,-0.828125,0.078125,-0.320312,0.765625,0.09375,-0.320312,-0.765625,0.09375,-0.320312,0.84375,0.171875,-0.320312,-0.84375,0.171875,-0.320312,1.03906,0.328125,-0.414062,-1.03906,0.328125,-0.414062,1.1875,0.34375,-0.484375,-1.1875,0.34375,-0.484375,1.25781,0.242187,-0.492188,-1.25781,0.242187,-0.492188,1.21094,0.085937,-0.484375,-1.21094,0.085937,-0.484375,1.04688,-0,-0.421875,-1.04688,-0,-0.421875,0.882812,-0.015625,-0.265625,-0.882812,-0.015625,-0.265625,0.953125,0.289062,-0.34375,-0.953125,0.289062,-0.34375,0.890625,0.109375,-0.328125,-0.890625,0.109375,-0.328125,0.9375,0.0625,-0.335938,-0.9375,0.0625,-0.335938,1,0.125,-0.367188,-1,0.125,-0.367188,0.960938,0.171875,-0.351562,-0.960938,0.171875,-0.351562,1.01562,0.234375,-0.375,-1.01562,0.234375,-0.375,1.05469,0.1875,-0.382812,-1.05469,0.1875,-0.382812,1.10938,0.210937,-0.390625,-1.10938,0.210937,-0.390625,1.08594,0.273437,-0.390625,-1.08594,0.273437,-0.390625,1.02344,0.4375,-0.484375,-1.02344,0.4375,-0.484375,1.25,0.46875,-0.546875,-1.25,0.46875,-0.546875,1.36719,0.296875,-0.5,-1.36719,0.296875,-0.5,1.3125,0.054687,-0.53125,-1.3125,0.054687,-0.53125,1.03906,-0.085938,-0.492188,-1.03906,-0.085938,-0.492188,0.789062,-0.125,-0.328125,-0.789062,-0.125,-0.328125,0.859375,0.382812,-0.382813,-0.859375,0.382812,-0.382813], 32 | "normals":[0.664993,0.719363,0.200752,-0.664993,0.719363,0.200752,0.829427,0.468924,0.303581,-0.829427,0.468924,0.303581,0.415548,0.444931,0.79332,-0.415548,0.444931,0.79332,0.35995,0.78196,0.508895,-0.35995,0.78196,0.508895,-0.078666,0.838353,0.539423,0.078666,0.838353,0.539423,-0.269627,0.468532,0.841296,0.269627,0.468532,0.841296,-0.770656,0.541966,0.335204,0.770656,0.541966,0.335204,-0.468941,0.86165,0.194045,0.468941,0.86165,0.194045,-0.476731,0.858116,-0.190693,0.476731,0.858116,-0.190693,-0.767202,0.552142,-0.326404,0.767202,0.552142,-0.326404,-0.251927,0.518169,-0.817333,0.251927,0.518169,-0.817333,-0.094933,0.816423,-0.569597,0.094933,0.816423,-0.569597,0.366742,0.75968,-0.537015,-0.366742,0.75968,-0.537015,0.414055,0.48983,-0.767219,-0.414055,0.48983,-0.767219,0.827747,0.477141,-0.295247,-0.827747,0.477141,-0.295247,0.671345,0.714459,-0.197092,-0.671345,0.714459,-0.197092,0.811107,-0.486664,-0.324443,-0.811107,-0.486664,-0.324443,0.205152,-0.533396,-0.82061,-0.205152,-0.533396,-0.82061,-0.422314,-0.460706,-0.780641,0.422314,-0.460706,-0.780641,-0.824061,-0.465773,-0.322458,0.824061,-0.465773,-0.322458,-0.813733,-0.464991,0.348743,0.813733,-0.464991,0.348743,-0.422314,-0.460706,0.780641,0.422314,-0.460706,0.780641,0.205152,-0.533396,0.82061,-0.205152,-0.533396,0.82061,0.799477,-0.487486,0.35099,-0.799477,-0.487486,0.35099,0.400039,0.914375,0.062344,-0.400039,0.914375,0.062344,0.306937,0.935429,0.175393,-0.306937,0.935429,0.175393,0.094512,0.978473,0.183464,-0.094512,0.978473,0.183464,-0.062353,0.997652,0.028342,0.062353,0.997652,0.028342,-0.062357,0.997716,-0.025982,0.062357,0.997716,-0.025982,0.099561,0.979891,-0.172922,-0.099561,0.979891,-0.172922,0.303571,0.93831,-0.165584,-0.303571,0.93831,-0.165584,0.400163,0.914659,-0.057166,-0.400163,0.914659,-0.057166,0.123091,0.492366,0.86164,-0.123091,0.492366,0.86164,0.218986,0.45201,0.864715,-0.218986,0.45201,0.864715,0.590198,0.666788,0.455038,-0.590198,0.666788,0.455038,0.768894,0.637372,0.050585,-0.768894,0.637372,0.050585,0.779649,0.619721,-0.08996,-0.779649,0.619721,-0.08996,0.324141,0.473874,0.818765,-0.324141,0.473874,0.818765,0.38573,0.641707,0.662891,-0.38573,0.641707,0.662891,0.689468,0.590607,0.419306,-0.689468,0.590607,0.419306,0.658751,0.658751,0.363449,-0.658751,0.658751,0.363449,0.546548,0.75091,-0.370702,-0.546548,0.75091,-0.370702,0.506447,0.570645,-0.646433,-0.506447,0.570645,-0.646433,0.609244,0.601532,-0.516701,-0.609244,0.601532,-0.516701,-0.044065,0.749109,-0.660979,0.044065,0.749109,-0.660979,-0.724614,0.611014,-0.318742,0.724614,0.611014,-0.318742,-0.588034,0.588034,-0.555366,0.588034,0.588034,-0.555366,0.536054,0.748241,0.390872,-0.536054,0.748241,0.390872,0.220695,0.855193,0.468977,-0.220695,0.855193,0.468977,-0.079395,0.84294,0.532117,0.079395,0.84294,0.532117,-0.082465,0.748963,0.65746,0.082465,0.748963,0.65746,0.045703,0.822647,0.566712,-0.045703,0.822647,0.566712,0.278428,0.936532,0.21304,-0.278428,0.936532,0.21304,0.381303,0.906285,0.182362,-0.381303,0.906285,0.182362,0.335744,0.896916,0.287781,-0.335744,0.896916,0.287781,0.37624,0.924559,-0.060276,-0.37624,0.924559,-0.060276,-0.135216,0.95389,-0.267974,0.135216,0.95389,-0.267974,0.396091,0.810186,0.432099,-0.396091,0.810186,0.432099,0.185557,0.950977,0.247409,-0.185557,0.950977,0.247409,0.009907,0.980786,0.194836,-0.009907,0.980786,0.194836,0.072066,0.713796,0.696636,-0.072066,0.713796,0.696636,0.186336,0.798582,0.572317,-0.186336,0.798582,0.572317,0.315685,0.909388,0.270843,-0.315685,0.909388,0.270843,0.306302,0.951566,0.026481,-0.306302,0.951566,0.026481,0.32655,0.936111,0.13062,-0.32655,0.936111,0.13062,-0.013675,0.998256,-0.057434,0.013675,0.998256,-0.057434,-0.002626,0.99784,0.065647,0.002626,0.99784,0.065647,-0,1,-1e-06,0,1,-1e-06,0.817393,-0.044183,0.574384,-0.817393,-0.044183,0.574384,0.949363,-0.214372,-0.229685,-0.949363,-0.214372,-0.229685,0.082479,-0.412393,-0.907265,-0.082479,-0.412393,-0.907265,-0.883624,0.304698,-0.355481,0.883624,0.304698,-0.355481,0.420706,0.221827,0.879659,-0.420706,0.221827,0.879659,0.287348,0.766261,0.574696,-0.287348,0.766261,0.574696,-0.654224,0.457957,-0.601886,0.654224,0.457957,-0.601886,0.105227,0.605054,-0.7892,-0.105227,0.605054,-0.7892,0.758175,0.583212,-0.291606,-0.758175,0.583212,-0.291606,0.388922,0.583383,0.713024,-0.388922,0.583383,0.713024,0.046274,0.971764,-0.231372,-0.046274,0.971764,-0.231372,0.03348,0.915131,0.401765,-0.03348,0.915131,0.401765,-0.445163,0.880854,0.161016,0.445163,0.880854,0.161016,-0.218218,0.872872,0.436436,0.218218,0.872872,0.436436,0.434064,0.891591,0.129046,-0.434064,0.891591,0.129046,0.300753,0.952384,-0.050125,-0.300753,0.952384,-0.050125,0.812285,0.499568,-0.301039,-0.812285,0.499568,-0.301039,0.87531,0.409336,-0.257444,-0.87531,0.409336,-0.257444,0.938484,0.305959,-0.160113,-0.938484,0.305959,-0.160113,0.223706,0.722743,0.65391,-0.223706,0.722743,0.65391,-0.15361,0.967743,0.199693,0.15361,0.967743,0.199693,-0.273275,0.956462,0.102478,0.273275,0.956462,0.102478,-0.09759,0.9759,-0.19518,0.09759,0.9759,-0.19518,-0.158235,0.271259,-0.94941,0.158235,0.271259,-0.94941,-0.69343,0.132784,-0.708184,0.69343,0.132784,-0.708184,-1,0,-0,1,0,0,0.305141,0.11812,0.944953,-0.305141,0.11812,0.944953,0.029814,0.954056,0.298142,-0.029814,0.954056,0.298142,0.135293,0.92772,0.347895,-0.135293,0.92772,0.347895,-0.508542,0.815786,0.27546,0.508542,0.815786,0.27546,-0.384277,0.922265,0.041921,0.384277,0.922265,0.041921,-0.208288,0.977353,-0.037385,0.208288,0.977353,-0.037385,-0.572078,0.667424,0.476731,0.572078,0.667424,0.476731,-0.136922,0.643534,0.753071,0.136922,0.643534,0.753071,0.408843,0.681405,0.60707,-0.408843,0.681405,0.60707,0.57403,0.707038,0.413022,-0.57403,0.707038,0.413022,0.566534,0.818328,0.096843,-0.566534,0.818328,0.096843,0.570336,0.812892,-0.118,-0.570336,0.812892,-0.118,0.482289,0.671879,-0.562117,-0.482289,0.671879,-0.562117,0.260407,0.747255,-0.61139,-0.260407,0.747255,-0.61139,0.163956,0.918156,-0.360704,-0.163956,0.918156,-0.360704,-0.01782,0.968216,-0.249479,0.01782,0.968216,-0.249479,0.327339,0.848105,0.416613,-0.327339,0.848105,0.416613,0.28107,0.923516,0.260994,-0.28107,0.923516,0.260994,-0.254193,0.714916,0.651368,0.254193,0.714916,0.651368,-0.026016,0.533323,0.845512,0.026016,0.533323,0.845512,-0.351808,0.899066,0.260599,0.351808,0.899066,0.260599,-0.352308,0.935819,0.01101,0.352308,0.935819,0.01101,-0.131654,0.877691,-0.460788,0.131654,0.877691,-0.460788,-0.034219,0.787044,-0.615947,0.034219,0.787044,-0.615947,0.360263,0.727731,-0.583626,-0.360263,0.727731,-0.583626,0.498784,0.685828,-0.529958,-0.498784,0.685828,-0.529958,0.666667,0.666667,0.333333,-0.666667,0.666667,0.333333,0.816466,0.572745,0.073116,-0.816466,0.572745,0.073116,0.78401,0.609785,-0.11615,-0.78401,0.609785,-0.11615,-0.530629,-0.246147,-0.811076,0.530629,-0.246147,-0.811076,-0.851109,-0.372958,-0.36948,0.851109,-0.372958,-0.36948,-0.244586,-0.433121,-0.867516,0.244586,-0.433121,-0.867516,0.592382,-0.303006,-0.746506,-0.592382,-0.303006,-0.746506,0.368548,-0.311777,-0.875767,-0.368548,-0.311777,-0.875767,0.28214,-0.287988,-0.915128,-0.28214,-0.287988,-0.915128,0.856131,-0.499077,-0.134021,-0.856131,-0.499077,-0.134021,0.534226,-0.437577,0.723276,-0.534226,-0.437577,0.723276,0.384903,-0.4368,0.813053,-0.384903,-0.4368,0.813053,0.233519,-0.780017,0.580553,-0.233519,-0.780017,0.580553,0.244866,-0.967802,0.058301,-0.244866,-0.967802,0.058301,0.116271,-0.883661,0.453458,-0.116271,-0.883661,0.453458,0.115196,-0.138826,0.983594,-0.115196,-0.138826,0.983594,0.118366,-0.225972,0.966916,-0.118366,-0.225972,0.966916,0.959736,-0.280774,0.008508,-0.959736,-0.280774,0.008508,0.931868,-0.324194,-0.162851,-0.931868,-0.324194,-0.162851,0.162606,-0.986474,-0.020695,-0.162606,-0.986474,-0.020695,-0.018766,-0.975838,0.217687,0.018766,-0.975838,0.217687,0.753776,-0.588391,0.292605,-0.753776,-0.588391,0.292605,0.919601,-0.36784,-0.13794,-0.919601,-0.36784,-0.13794,0.929736,-0.194399,-0.312729,-0.929736,-0.194399,-0.312729,0.912018,-0.232856,-0.337641,-0.912018,-0.232856,-0.337641,0.940691,-0.06069,-0.333793,-0.940691,-0.06069,-0.333793,0.17609,-0.440225,0.880451,-0.17609,-0.440225,0.880451,0.370784,-0.799083,0.47327,-0.370784,-0.799083,0.47327,0.310668,-0.466002,0.828449,-0.310668,-0.466002,0.828449,0.279339,-0.128692,0.951529,-0.279339,-0.128692,0.951529,0.313873,-0.180715,0.932108,-0.313873,-0.180715,0.932108,0.976161,-0.060864,0.208341,-0.976161,-0.060864,0.208341,0.826725,0.244727,0.506592,-0.826725,0.244727,0.506592,0.344853,-0.931486,0.1158,-0.344853,-0.931486,0.1158,0.120261,0.235495,-0.964406,-0.120261,0.235495,-0.964406,0.127513,-0.185137,-0.974405,-0.127513,-0.185137,-0.974405,0.349226,-0.724139,-0.594697,-0.349226,-0.724139,-0.594697,0.415251,-0.144855,-0.8981,-0.415251,-0.144855,-0.8981,0.18454,0.686258,-0.703559,-0.18454,0.686258,-0.703559,0.605564,0.160824,-0.779377,-0.605564,0.160824,-0.779377,0.703301,-0.205264,-0.680614,-0.703301,-0.205264,-0.680614,0.667944,-0.716631,-0.200725,-0.667944,-0.716631,-0.200725,0.494774,-0.752756,-0.434231,-0.494774,-0.752756,-0.434231,0.642323,-0.176121,-0.745924,-0.642323,-0.176121,-0.745924,0.718225,0.152966,-0.678788,-0.718225,0.152966,-0.678788,0.738828,0.544366,-0.39724,-0.738828,0.544366,-0.39724,0.342771,-0.157888,-0.926056,-0.342771,-0.157888,-0.926056,0.226983,0.786746,-0.57403,-0.226983,0.786746,-0.57403,-0.172189,-0.979491,-0.104638,0.172189,-0.979491,-0.104638,0.04246,0.401319,-0.914954,-0.04246,0.401319,-0.914954,-0.161572,0.969432,-0.184654,0.161572,0.969432,-0.184654,0.979149,0.048332,-0.197308,-0.979149,0.048332,-0.197308,0.946968,0.307922,-0.091845,-0.946968,0.307922,-0.091845,0.97945,-0.066136,-0.190536,-0.97945,-0.066136,-0.190536,0.993775,-0.106953,-0.031195,-0.993775,-0.106953,-0.031195,0.711563,0.05006,0.700836,-0.711563,0.05006,0.700836,0.37216,0.084651,0.9243,-0.37216,0.084651,0.9243,0.446529,0.23101,0.864434,-0.446529,0.23101,0.864434,0.606579,0.240489,0.757778,-0.606579,0.240489,0.757778,0.732489,0.240675,0.636817,-0.732489,0.240675,0.636817,0.263732,0.853252,0.449896,-0.263732,0.853252,0.449896,0.556817,-0.767332,0.318051,-0.556817,-0.767332,0.318051,0.500431,-0.818999,0.28073,-0.500431,-0.818999,0.28073,0.318954,-0.420484,0.849389,-0.318954,-0.420484,0.849389,0.719759,-0.279303,0.635561,-0.719759,-0.279303,0.635561,0.497205,-0.747333,0.440774,-0.497205,-0.747333,0.440774,0.350559,0.855666,-0.380715,-0.350559,0.855666,-0.380715,0.456551,0.873014,-0.171485,-0.456551,0.873014,-0.171485,0.258262,0.960298,-0.105487,-0.258262,0.960298,-0.105487,0.245528,0.966063,0.080238,-0.245528,0.966063,0.080238,0.464292,0.883653,0.059909,-0.464292,0.883653,0.059909,0.622462,0.720981,0.304514,-0.622462,0.720981,0.304514,0.450021,0.602706,-0.658959,-0.450021,0.602706,-0.658959,-0.266664,0.488415,-0.830868,0.266664,0.488415,-0.830868,-0.828395,0.511137,-0.22913,0.828395,0.511137,-0.22913,-0.525062,0.772732,0.356645,0.525062,0.772732,0.356645,0.454637,0.687284,0.566521,-0.454637,0.687284,0.566521,0.699601,0.555239,0.449743,-0.699601,0.555239,0.449743,0.72201,-0.112644,0.682652,-0.72201,-0.112644,0.682652,-0.191904,0.938824,-0.285975,0.191904,0.938824,-0.285975,0.904808,-0.204748,0.373365,-0.904808,-0.204748,0.373365,0.103418,0.982467,-0.155126,-0.103418,0.982467,-0.155126,0.084056,0.353037,-0.931826,-0.084056,0.353037,-0.931826,0.644606,0.759399,0.088302,-0.644606,0.759399,0.088302,0.430935,0.767848,-0.474029,-0.430935,0.767848,-0.474029,0.803235,0.346222,0.484711,-0.803235,0.346222,0.484711,0.581121,0.701354,0.412797,-0.581121,0.701354,0.412797,0.591001,0.682205,0.430482,-0.591001,0.682205,0.430482,0.981815,-0.059145,0.180394,-0.981815,-0.059145,0.180394,0.910486,-0.117482,0.396502,-0.910486,-0.117482,0.396502,0.997202,-0.072524,0.018131,-0.997202,-0.072524,0.018131,0.73131,0.19245,0.65433,-0.73131,0.19245,0.65433,0.786718,0.10728,0.607919,-0.786718,0.10728,0.607919,0.702247,0.117041,0.702247,-0.702247,0.117041,0.702247,0.184048,-0.051124,-0.981587,-0.184048,-0.051124,-0.981587,0.93519,0.128359,-0.330067,-0.93519,0.128359,-0.330067,0.663348,0.055279,0.746267,-0.663348,0.055279,0.746267,-0.008522,0.076694,-0.997018,0.008522,0.076694,-0.997018,0.623691,0.335381,0.706065,-0.623691,0.335381,0.706065,0.273312,0.358722,0.892535,-0.273312,0.358722,0.892535,-0.832769,-0.219977,0.508042,0.832769,-0.219977,0.508042,-0.833909,-0.498081,-0.237721,0.833909,-0.498081,-0.237721,-0.565464,-0.253882,-0.784726,0.565464,-0.253882,-0.784726,-0.055965,0.067158,-0.996172,0.055965,0.067158,-0.996172,0.144498,0.989255,-0.02223,-0.144498,0.989255,-0.02223,0.327452,0.942664,-0.064498,-0.327452,0.942664,-0.064498,0.312667,0.94958,-0.023161,-0.312667,0.94958,-0.023161,0.170988,0.984893,-0.027358,-0.170988,0.984893,-0.027358,0.348658,0.892906,-0.28488,-0.348658,0.892906,-0.28488,0.400582,0.915617,0.034336,-0.400582,0.915617,0.034336,0.257194,0.964478,0.06028,-0.257194,0.964478,0.06028,0.063697,0.997913,0.010616,-0.063697,0.997913,0.010616,-0.3637,0.610078,-0.703936,0.3637,0.610078,-0.703936,0.629882,0.775881,-0.035457,-0.629882,0.775881,-0.035457,0.44721,0.871726,0.200243,-0.44721,0.871726,0.200243,0.507163,0.834843,0.214062,-0.507163,0.834843,0.214062,0.525823,0.809259,-0.261934,-0.525823,0.809259,-0.261934,0.297964,0.757979,-0.580246,-0.297964,0.757979,-0.580246,0.093038,-0.080501,0.992403,-0.093038,-0.080501,0.992403,0.50058,0.007971,0.865653,-0.50058,0.007971,0.865653,0.928516,0.274791,0.249696,-0.928516,0.274791,0.249696,0.83926,-0.03778,-0.542416,-0.83926,-0.03778,-0.542416,-0.235535,-0.258908,-0.936744,0.235535,-0.258908,-0.936744,-0.449919,-0.128548,-0.883769,0.449919,-0.128548,-0.883769,-0.538364,-0.842656,0.009753,0.538364,-0.842656,0.009753,-0.19104,-0.981286,0.024097,0.19104,-0.981286,0.024097,0.404624,-0.914097,-0.026581,-0.404624,-0.914097,-0.026581,-0.781868,0.019678,-0.623133,0.781868,0.019678,-0.623133,0.542773,-0.81416,0.206254,-0.542773,-0.81416,0.206254,-0.247398,-0.294522,0.923066,0.247398,-0.294522,0.923066], 33 | "uvs":[] 34 | } -------------------------------------------------------------------------------- /threejs-7_models/monkey_animated.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-7_models/monkey_animated.blend -------------------------------------------------------------------------------- /threejs-7_models/monkey_animated.blend1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-7_models/monkey_animated.blend1 -------------------------------------------------------------------------------- /threejs-7b_models.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-7b_models.zip -------------------------------------------------------------------------------- /threejs-7b_models/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | threejs - models 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /threejs-7b_models/untitled.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diving-in/threejs/604de6a44940e822d9c38c73fb23273cf98091b3/threejs-7b_models/untitled.glb --------------------------------------------------------------------------------