glsl-blend-overlay
Version:
blend mode 'overlay' for GLSL
40 lines (24 loc) • 1.02 kB
Markdown
# glsl-blend-overlay
[](http://github.com/badges/stability-badges)
[(click for demo)](http://jam3.github.io/glsl-blend-overlay/)
Photoshop-like "overlay" blend mode for GLSL.
```glsl
#pragma glslify: blend = require(../)
void main() {
vec4 bgColor = texture2D(bg, vUv);
vec4 fgColor = texture2D(foreground, vUv);
vec3 color = blend(bgColor.rgb, fgColor.rgb);
gl_FragColor = vec4(color, 1.0);
}
```
## Usage
[](https://nodei.co/npm/glsl-blend-overlay/)
#### `blend(vec3 background, vec3 foreground)`
Blends background and foreground with an "overlay" blend mode. The algorithm for each channel is as follows:
```
bg < 0.5 ? (2.0 * bg * fg) : (1.0 - 2.0 * (1.0 - bg) * (1.0 - fg))
```
## Contributing
See [stackgl/contributing](https://github.com/stackgl/contributing).
## License
MIT. See [LICENSE.md](http://github.com/Jam3/glsl-blend-overlay/blob/master/LICENSE.md) for details.