       u_mouse: {value: new THREE.Vector2()},
     }
 
-    @mesh1 = null
-    @mesh2 = null
+    @mesh = null
+    @geometry = new THREE.PlaneBufferGeometry(2, 2);
 
     @_update()
 

    return unless @uniforms[textureId]?

    @uniforms[textureId].value.dispose()

    @uniforms[textureId].value.needsUpdate = true

    @mesh2.material.needsUpdate = true

    delete @uniforms[textureId]

    @renderShader(@fragShader, true)

      'uniform vec2 u_resolution;'
      'uniform vec2 u_mouse;'
      'uniform float u_time;'
    ].join('\n')

  attached: ->
