glsl-barrel-pincushion
Version:
Distort UV using barrel or pincushion
41 lines (27 loc) • 1.08 kB
Markdown
# glsl-barrel-pincushion
[](http://github.com/badges/stability-badges)
Distort the UV with barrel or pincushion effect.
Adapted from [this shadertoy](https://www.shadertoy.com/view/lttXD4).

### Installation :package:
```bash
npm i glsl-barrel-pincushion -S
```
### Usage :book:
#### barrelPincushion(vec2 st, float strength)
strength > 0 for barrel distortion, strength < 0 for pincushion.
### Example :floppy_disk:
```glsl
uniform float uTime;
#pragma glslify: barrelPincushion = require(glsl-barrel-pincushion)
#pragma glslify: rectangle = require(glsl-2d-primitives/rectangle)
attribute vec2 vUv;
void main() {
vec2 st = barrelPincushion(vUv, sin(uTime));
float shape = rectangle(st, vec2(0.5));
gl_FragColor = vec4(color, shape);
}
```
[Demo](http://thebookofshaders.com/edit.php?log=180726191628)
### License :pencil:
MIT. See [LICENSE](http://github.com/ayamflow/glsl-barrel-pincushion/blob/master/LICENSE) for details.