puppet particles
diff --git a/player/index.html b/player/index.html index 2a56c09..aa57f62 100644 --- a/player/index.html +++ b/player/index.html
@@ -68,6 +68,7 @@ } </style> + <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.5/dat.gui.min.js"></script> <!-- build:js lottie.js --> <script src="js/main.js"></script> <script src="js/utils/common.js"></script> @@ -243,6 +244,12 @@ }, 1000); + const global_options = { + spring_force: 0.5 + } + var gui = new dat.GUI() + + gui.add(global_options, 'spring_force', 0, 1).step(.01) /*var elem = document.getElementById('lottie2');
diff --git a/player/js/elements/webglElements/effects/WebGLPuppetPin.js b/player/js/elements/webglElements/effects/WebGLPuppetPin.js index dd85416..c09ba16 100644 --- a/player/js/elements/webglElements/effects/WebGLPuppetPin.js +++ b/player/js/elements/webglElements/effects/WebGLPuppetPin.js
@@ -98,42 +98,50 @@ gl.bufferData(gl.ARRAY_BUFFER, this.texture_positions, gl.STATIC_DRAW); } +function WPuppetPinParticle(x, y) { + this.x = x; + this.y = y; +} + +WPuppetPinParticle.prototype.addForce = function(x, y) { + this.x += x; + this.y += y; +} + WPuppetPinEffect.prototype.renderFrame = function(forceRender, buffer){ var effectElements = this.filterManager.effectElements; var gl = this.gl; this.gl.useProgram(this.program); - + //POSITION + var particles = [] var positions = []; var i, j, len = 10, jlen = 10; for(j = 0; j < jlen; j += 1) { for(i = 0; i < len; i += 1) { - /*positions.push(i/10); - positions.push(j/10); - positions.push((i+1)/10); - positions.push(j/10); - positions.push(i/10); - positions.push((j+1)/10); - positions.push((i+1)/10); - positions.push(j/10); - positions.push((i+1)/10); - positions.push((j+1)/10); - positions.push(i/10); - positions.push((j+1)/10);*/ - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); - positions.push(Math.random()); + particles.push(new WPuppetPinParticle(i / 10, j / 10)); + particles.push(new WPuppetPinParticle((i + 1) / 10, j / 10)); + particles.push(new WPuppetPinParticle(i / 10, (j + 1) / 10)); + particles.push(new WPuppetPinParticle((i + 1) / 10, j / 10)); + particles.push(new WPuppetPinParticle((i + 1) / 10, (j + 1) / 10)); + particles.push(new WPuppetPinParticle(i / 10, (j + 1) / 10)); + + /*particles.push(new WPuppetPinParticle(Math.random(), Math.random())); + particles.push(new WPuppetPinParticle(Math.random(), Math.random())); + particles.push(new WPuppetPinParticle(Math.random(), Math.random())); + particles.push(new WPuppetPinParticle(Math.random(), Math.random())); + particles.push(new WPuppetPinParticle(Math.random(), Math.random())); + particles.push(new WPuppetPinParticle(Math.random(), Math.random()));*/ + } } + for(i = 0; i < particles.length; i += 1) { + if(i > 40 && i < 70) { + particles[i].addForce(0.01,0.01); + } + positions.push(particles[i].x); + positions.push(particles[i].y); + } this.positions = new Float32Array(positions); this.positionBuffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, this.positionBuffer);