diff --git a/assets/img/atlas-guide.png b/assets/img/atlas-guide.png index 1536af7..b327d12 100644 Binary files a/assets/img/atlas-guide.png and b/assets/img/atlas-guide.png differ diff --git a/assets/img/atlas.png b/assets/img/atlas.png index a6eb0ee..d14c90a 100644 Binary files a/assets/img/atlas.png and b/assets/img/atlas.png differ diff --git a/assets/models/leftlaser.obj b/assets/models/leftlaser.obj new file mode 100644 index 0000000..aa5e7fa --- /dev/null +++ b/assets/models/leftlaser.obj @@ -0,0 +1,35 @@ +# Blender v2.79 (sub 0) OBJ File: 'stage.blend' +# www.blender.org +v -0.056853 -136.244156 0.100000 +v -0.056853 136.244156 0.100000 +v -0.082947 -136.244141 -0.100000 +v -0.082947 136.244141 -0.100000 +v 0.056853 -136.244156 0.100000 +v 0.056853 136.244156 0.100000 +v 0.082947 -136.244141 -0.100000 +v 0.082947 136.244141 -0.100000 +v -4.780099 -165.906036 -0.242529 +v -4.780099 165.906036 -0.242529 +v 4.780099 -165.906036 -0.242529 +v 4.780099 165.906036 -0.242529 +vt 0.760463 0.015416 +vt 0.760176 0.006970 +vt 0.760176 0.015416 +vt 0.624640 0.498774 +vt 0.501254 0.001458 +vt 0.624640 0.001458 +vt 0.762000 0.006970 +vt 0.761713 0.015416 +vt 0.762000 0.015416 +vt 0.761713 0.006970 +vt 0.760463 0.006970 +vt 0.501254 0.498774 +s off +f 1/1 4/2 3/3 +f 12/4 9/5 11/6 +f 8/7 5/8 7/9 +f 6/10 1/1 5/8 +f 1/1 2/11 4/2 +f 12/4 10/12 9/5 +f 8/7 6/10 5/8 +f 6/10 2/11 1/1 diff --git a/assets/models/rightlaser.obj b/assets/models/rightlaser.obj new file mode 100644 index 0000000..4fea789 --- /dev/null +++ b/assets/models/rightlaser.obj @@ -0,0 +1,35 @@ +# Blender v2.79 (sub 0) OBJ File: 'stage.blend' +# www.blender.org +v -0.056853 -150.000031 0.100000 +v -0.056853 150.000031 0.100000 +v -0.082947 -150.000015 -0.100000 +v -0.082947 150.000015 -0.100000 +v 0.056853 -150.000031 0.100000 +v 0.056853 150.000031 0.100000 +v 0.082947 -150.000015 -0.100000 +v 0.082947 150.000015 -0.100000 +v -4.780099 -165.906036 -0.242529 +v -4.780099 165.906036 -0.242529 +v 4.780099 -165.906036 -0.242529 +v 4.780099 165.906036 -0.242529 +vt 0.760463 0.006970 +vt 0.760176 0.015416 +vt 0.760463 0.015416 +vt 0.749735 0.498774 +vt 0.626349 0.001458 +vt 0.749735 0.001458 +vt 0.762000 0.006970 +vt 0.761713 0.015416 +vt 0.762000 0.015416 +vt 0.761713 0.006970 +vt 0.760176 0.006970 +vt 0.626349 0.498774 +s off +f 2/1 3/2 1/3 +f 12/4 9/5 11/6 +f 8/7 5/8 7/9 +f 6/10 1/3 5/8 +f 2/1 4/11 3/2 +f 12/4 10/12 9/5 +f 8/7 6/10 5/8 +f 6/10 2/1 1/3 diff --git a/assets/models/stageadditive.obj b/assets/models/stageadditive.obj index 745a552..342d810 100644 --- a/assets/models/stageadditive.obj +++ b/assets/models/stageadditive.obj @@ -21,27 +21,27 @@ f 1/1 4/2 2/3 f 5/4 8/5 7/6 f 1/1 3/7 4/2 f 5/4 6/8 8/5 -v 12.863472 5.606542 -33.581116 -v 5.505581 12.964426 -33.581116 -v 14.446635 7.189702 -33.454609 -v 7.088743 14.547589 -33.454609 -v -12.863472 5.606542 -33.581116 -v -5.505581 12.964426 -33.581116 -v -14.446635 7.189702 -33.454609 -v -7.088743 14.547589 -33.454609 -vt 0.888596 0.749152 -vt 0.900723 0.500182 -vt 0.888596 0.500182 -vt 0.888596 0.749152 -vt 0.900723 0.500182 -vt 0.900723 0.749152 +v 13.064644 5.472427 -33.581116 +v 5.058533 13.523236 -33.581116 +v 14.647807 7.055587 -33.454609 +v 6.641695 15.106400 -33.454609 +v -13.064644 5.472427 -33.581116 +v -5.058533 13.523236 -33.581116 +v -14.647807 7.055587 -33.454609 +v -6.641695 15.106400 -33.454609 vt 0.900723 0.749152 vt 0.888596 0.500182 +vt 0.888596 0.749152 +vt 0.888596 0.500182 +vt 0.900723 0.749152 +vt 0.888596 0.749152 +vt 0.900723 0.500182 +vt 0.900723 0.500182 s off -f 9/9 12/10 10/11 -f 13/12 16/13 15/14 -f 9/9 11/15 12/10 -f 13/12 14/16 16/13 +f 11/9 10/10 9/11 +f 14/12 15/13 13/14 +f 11/9 12/15 10/10 +f 14/12 16/16 15/13 v 15.178578 1.075909 -27.463730 v 1.075902 15.178576 -27.463730 v 19.149137 5.046469 -27.146448 @@ -63,27 +63,27 @@ f 17/17 20/18 18/19 f 21/20 24/21 23/22 f 17/17 19/23 20/18 f 21/20 22/24 24/21 -v 12.863472 5.606542 -27.129221 -v 5.505581 12.964426 -27.129221 -v 14.446635 7.189702 -27.002712 -v 7.088743 14.547589 -27.002712 -v -12.863472 5.606542 -27.129221 -v -5.505581 12.964426 -27.129221 -v -14.446635 7.189702 -27.002712 -v -7.088743 14.547589 -27.002712 -vt 0.888596 0.749152 -vt 0.900723 0.500182 -vt 0.888596 0.500182 -vt 0.888596 0.749152 -vt 0.900723 0.500182 -vt 0.900723 0.749152 +v 13.042291 5.472427 -27.129221 +v 5.058533 13.567941 -27.129221 +v 14.625454 7.055587 -27.002712 +v 6.641695 15.151104 -27.002712 +v -13.042291 5.472427 -27.129221 +v -5.058533 13.567941 -27.129221 +v -14.625454 7.055587 -27.002712 +v -6.641695 15.151104 -27.002712 vt 0.900723 0.749152 vt 0.888596 0.500182 +vt 0.888596 0.749152 +vt 0.888596 0.500182 +vt 0.900723 0.749152 +vt 0.888596 0.749152 +vt 0.900723 0.500182 +vt 0.900723 0.500182 s off -f 25/25 28/26 26/27 -f 29/28 32/29 31/30 -f 25/25 27/31 28/26 -f 29/28 30/32 32/29 +f 27/25 26/26 25/27 +f 30/28 31/29 29/30 +f 27/25 28/31 26/26 +f 30/28 32/32 31/29 v 15.178578 1.075909 -21.022888 v 1.075902 15.178576 -21.022886 v 19.149137 5.046469 -20.705606 @@ -105,27 +105,27 @@ f 33/33 36/34 34/35 f 37/36 40/37 39/38 f 33/33 35/39 36/34 f 37/36 38/40 40/37 -v 12.863472 5.606542 -20.677326 -v 5.505581 12.964426 -20.677326 -v 14.446635 7.189702 -20.550817 -v 7.088743 14.547589 -20.550817 -v -12.863472 5.606542 -20.677326 -v -5.505581 12.964426 -20.677326 -v -14.446635 7.189702 -20.550817 -v -7.088743 14.547589 -20.550817 -vt 0.888596 0.749152 -vt 0.900723 0.500182 -vt 0.888596 0.500182 -vt 0.888596 0.749152 -vt 0.900723 0.500182 -vt 0.900723 0.749152 +v 13.064644 5.472427 -20.677326 +v 5.036180 13.523236 -20.677326 +v 14.647807 7.055587 -20.550817 +v 6.619342 15.106400 -20.550817 +v -13.064644 5.472427 -20.677326 +v -5.036180 13.523236 -20.677326 +v -14.647807 7.055587 -20.550817 +v -6.619342 15.106400 -20.550817 vt 0.900723 0.749152 vt 0.888596 0.500182 +vt 0.888596 0.749152 +vt 0.888596 0.500182 +vt 0.900723 0.749152 +vt 0.888596 0.749152 +vt 0.900723 0.500182 +vt 0.900723 0.500182 s off -f 41/41 44/42 42/43 -f 45/44 48/45 47/46 -f 41/41 43/47 44/42 -f 45/44 46/48 48/45 +f 43/41 42/42 41/43 +f 46/44 47/45 45/46 +f 43/41 44/47 42/42 +f 46/44 48/48 47/45 v 15.178578 1.075909 -14.582047 v 1.075902 15.178576 -14.582046 v 19.149137 5.046469 -14.264764 @@ -147,27 +147,27 @@ f 49/49 52/50 50/51 f 53/52 56/53 55/54 f 49/49 51/55 52/50 f 53/52 54/56 56/53 -v 12.863472 5.606542 -14.225430 -v 5.505581 12.964426 -14.225430 -v 14.446635 7.189702 -14.098923 -v 7.088743 14.547589 -14.098923 -v -12.863472 5.606542 -14.225430 -v -5.505581 12.964426 -14.225430 -v -14.446635 7.189702 -14.098923 -v -7.088743 14.547589 -14.098923 -vt 0.888596 0.749152 -vt 0.900723 0.500182 -vt 0.888596 0.500182 -vt 0.888596 0.749152 -vt 0.900723 0.500182 -vt 0.900723 0.749152 +v 13.042291 5.472427 -14.225430 +v 5.036181 13.545589 -14.225430 +v 14.625454 7.055587 -14.098923 +v 6.619343 15.128753 -14.098923 +v -13.042291 5.472427 -14.225430 +v -5.036181 13.545589 -14.225430 +v -14.625454 7.055587 -14.098923 +v -6.619343 15.128753 -14.098923 vt 0.900723 0.749152 vt 0.888596 0.500182 +vt 0.888596 0.749152 +vt 0.888596 0.500182 +vt 0.900723 0.749152 +vt 0.888596 0.749152 +vt 0.900723 0.500182 +vt 0.900723 0.500182 s off -f 57/57 60/58 58/59 -f 61/60 64/61 63/62 -f 57/57 59/63 60/58 -f 61/60 62/64 64/61 +f 59/57 58/58 57/59 +f 62/60 63/61 61/62 +f 59/57 60/63 58/58 +f 62/60 64/64 63/61 v 4.693238 0.813037 19.789230 v 4.693230 0.813042 -82.453156 v 4.350243 0.470041 19.789230 @@ -176,14 +176,14 @@ v -4.693238 0.813037 19.789230 v -4.693230 0.813042 -82.453156 v -4.350243 0.470041 19.789230 v -4.350235 0.470047 -82.453156 -vt 0.887984 0.500428 -vt 0.887984 0.749582 -vt 0.875393 0.749582 -vt 0.887984 0.500428 -vt 0.875392 0.500428 -vt 0.875393 0.749582 -vt 0.875392 0.500428 -vt 0.887984 0.749582 +vt 0.999332 0.500428 +vt 0.999332 0.749582 +vt 0.986741 0.749582 +vt 0.999332 0.500428 +vt 0.986741 0.500428 +vt 0.986741 0.749582 +vt 0.986741 0.500428 +vt 0.999332 0.749582 s off f 65/65 66/66 68/67 f 69/68 71/69 72/70 @@ -201,18 +201,18 @@ v -3.277436 0.390707 -7.080121 v -3.277424 0.390714 -58.498669 v -3.762470 0.875742 -7.385828 v -3.277435 0.390707 -7.385828 -vt 0.875212 0.517649 -vt 0.888051 0.517649 -vt 0.888052 0.749677 -vt 0.875212 0.500256 -vt 0.888051 0.500256 -vt 0.888052 0.749677 -vt 0.888051 0.517649 -vt 0.875212 0.517649 -vt 0.888051 0.500256 -vt 0.875212 0.500256 -vt 0.875212 0.749677 -vt 0.875212 0.749677 +vt 0.986050 0.517649 +vt 0.998890 0.517649 +vt 0.998890 0.749677 +vt 0.986050 0.500256 +vt 0.998890 0.500256 +vt 0.998890 0.749677 +vt 0.998890 0.517649 +vt 0.986050 0.517649 +vt 0.998890 0.500256 +vt 0.986050 0.500256 +vt 0.986050 0.749677 +vt 0.986050 0.749677 s off f 78/73 77/74 74/75 f 75/76 73/77 77/74 @@ -222,36 +222,3 @@ f 78/73 74/75 76/83 f 75/76 77/74 78/73 f 80/78 84/80 82/84 f 83/79 81/82 84/80 -v 1.374993 -0.006546 -1.379147 -v 1.595471 -0.006546 -1.599395 -v -1.597251 -0.006546 1.593773 -v 1.595413 -0.006546 1.593600 -v -1.376857 -0.006546 1.373170 -v 1.374951 -0.006546 1.373394 -v -1.376821 -0.006546 -1.379086 -v -1.597157 -0.006546 -1.597492 -vt 0.875646 0.711989 -vt 0.887532 0.531546 -vt 0.875646 0.517147 -vt 0.875646 0.517020 -vt 0.887532 0.736731 -vt 0.887532 0.531418 -vt 0.875646 0.517020 -vt 0.887532 0.736731 -vt 0.887532 0.531418 -vt 0.875646 0.517147 -vt 0.887532 0.736731 -vt 0.887532 0.531546 -vt 0.887532 0.736731 -vt 0.875646 0.711989 -vt 0.875646 0.711989 -vt 0.875646 0.711989 -s off -f 85/85 92/86 91/87 -f 87/88 90/89 89/90 -f 89/91 92/92 87/93 -f 88/94 85/95 90/96 -f 85/85 86/97 92/86 -f 87/88 88/98 90/89 -f 89/91 91/99 92/92 -f 88/94 86/100 85/95 diff --git a/assets/shaders/stageAdditive.js b/assets/shaders/stageAdditive.js index 1cb09eb..5a5a124 100644 --- a/assets/shaders/stageAdditive.js +++ b/assets/shaders/stageAdditive.js @@ -14,13 +14,31 @@ module.exports = { varying vec2 uvs; varying vec3 worldPos; uniform vec3 tunnelNeon; + uniform vec3 leftLaser; + uniform vec3 rightLaser; + uniform vec3 floorNeon; uniform sampler2D src; void main() { + float mask; vec4 col = texture2D(src, uvs); - float mask = min(step(0.87, uvs.x), step(0.5, uvs.y)); - mask = min(mask, 1.0 - step(0.75, uvs.y)); + + // tunnel neon + mask = step(0.87, uvs.x) * step(0.5, uvs.y) * (1.0 - step(0.935, uvs.x)) * ( 1.0 - step(0.75, uvs.y)); col.xyz = mix(col.xyz, col.xyz * tunnelNeon, mask); + + // floor & corridor neons + mask = step(0.935, uvs.x) * step(0.5, uvs.y) * ( 1.0 - step(0.75, uvs.y)); + col.xyz = mix(col.xyz, col.xyz * floorNeon, mask); + + // left laser + mask = step(0.5, uvs.x) * (1.0 - step(0.625, uvs.x)) * (1.0 - step(0.5, uvs.y)); + col.xyz = mix(col.xyz, col.xyz * leftLaser, mask); + + // right laser + mask = step(0.625, uvs.x) * (1.0 - step(0.75, uvs.x)) * (1.0 - step(0.5, uvs.y)); + col.xyz = mix(col.xyz, col.xyz * rightLaser, mask); + gl_FragColor = col; } ` diff --git a/src/assets.html b/src/assets.html index e8898bc..8c292af 100644 --- a/src/assets.html +++ b/src/assets.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,9 @@ + + + @@ -153,6 +156,8 @@ animation__mouseleave2="property: scale; to: 1 1 1; from: 1.1 1.1 1.1; startEvents: mouseleave; pauseEvents: mouseenter; dur: 150"> + + - + + + + diff --git a/src/components/beat-loader.js b/src/components/beat-loader.js index 87443d3..16bd170 100644 --- a/src/components/beat-loader.js +++ b/src/components/beat-loader.js @@ -286,31 +286,27 @@ AFRAME.registerComponent('beat-loader', { case 1: this.stageColors.setColor('tunnel', event._value); break; - case 200: - this.stageColors.setColor('leftStageLaser0', event._value); - this.stageColors.setColor('leftStageLaser1', event._value); - this.stageColors.setColor('leftStageLaser2', event._value); + case 2: + this.stageColors.setColor('leftlaser', event._value); break; - case 300: - this.stageColors.setColor('rightStageLaser0', event._value); - this.stageColors.setColor('rightStageLaser1', event._value); - this.stageColors.setColor('rightStageLaser2', event._value); + case 3: + this.stageColors.setColor('rightlaser', event._value); break; case 400: this.stageColors.setColor('floor', event._value); this.stageColors.setColor('stageNeon', event._value); break; - case 800: + case 8: this.twister.components.twister.pulse(event._value); break; - case 900: + case 9: // zoom was a bit disturbing this.twister.components.twister.pulse(event._value); break; - case 1200: + case 12: this.leftStageLasers.components['stage-lasers'].pulse(event._value); break; - case 1300: + case 13: this.rightStageLasers.components['stage-lasers'].pulse(event._value); break; } diff --git a/src/components/beat.js b/src/components/beat.js index 3f355b9..08550c7 100644 --- a/src/components/beat.js +++ b/src/components/beat.js @@ -629,7 +629,6 @@ AFRAME.registerComponent('beat', { returnToPool: function (force) { if (!this.backToPool && !force) { return; } - console.log('returning ' + this.poolName + ' to pool'); this.el.sceneEl.components[this.poolName].returnEntity(this.el); }, diff --git a/src/components/materials.js b/src/components/materials.js index 4393ece..1bfa332 100644 --- a/src/components/materials.js +++ b/src/components/materials.js @@ -9,7 +9,7 @@ AFRAME.registerSystem('materials', { this.stageNormal = new THREE.ShaderMaterial({ uniforms: { - color: {value: new THREE.Vector3(0, 0.48, 0.72) }, + color: {value: new THREE.Vector3(0, 0.48, 0.72)}, src: {value: new THREE.TextureLoader().load(document.getElementById('atlasImg').src)}, }, vertexShader: stageNormalShaders.vertexShader, @@ -20,7 +20,10 @@ AFRAME.registerSystem('materials', { this.stageAdditive = new THREE.ShaderMaterial({ uniforms: { - tunnelNeon: {value: new THREE.Vector3(0, 0, 1) }, + tunnelNeon: {value: new THREE.Vector3(0, 0, 1)}, + floorNeon: {value: new THREE.Vector3(0, 0, 1)}, + leftLaser: {value: new THREE.Vector3(0, 0, 1)}, + rightLaser: {value: new THREE.Vector3(0, 0, 1)}, src: {value: new THREE.TextureLoader().load(document.getElementById('atlasImg').src)}, }, vertexShader: stageAdditiveShaders.vertexShader, diff --git a/src/index.html b/src/index.html index 746ad5b..49a2fb3 100644 --- a/src/index.html +++ b/src/index.html @@ -18,7 +18,7 @@ - - - - + + + - - - - - + + + - - - + + + + + + + material="src: #atlasImg; fog: false; shader: flat; transparent: true;"> @@ -145,3 +146,4 @@ rotation="-45 0 0"> +f \ No newline at end of file