Smoke
By Ayfri
Image
precision mediump float;
uniform float uAspect;
uniform float uDeltaTime;
uniform float uFrameRate;
uniform float uTime;
uniform int uFrameCount;
uniform vec2 uResolution;
uniform vec3 uMouse;
uniform vec4 uDate;
uniform sampler2D uChannel0;
void main()
{
vec2 uv = gl_FragCoord.xy / uResolution.xy;
gl_FragColor = texture2D(uChannel0, uv);
}
Buffer 1
precision mediump float;
uniform float uAspect;
uniform float uDeltaTime;
uniform float uFrameRate;
uniform float uTime;
uniform int uFrameCount;
uniform vec2 uResolution;
uniform vec3 uMouse;
uniform vec4 uDate;
uniform sampler2D uChannel0;
void main()
{
vec4 white = vec4(1.0);
vec4 black = vec4(0.0);
vec2 px = 1.0 / uResolution.xy; // 1px in percent
vec2 uv = gl_FragCoord.xy / uResolution.xy; // current percent
if (distance(vec4(uMouse.xy, uMouse.z > 0.5 ? uMouse.xy : vec2(0.0)).xy, gl_FragCoord.xy) < 1.0 && vec4(uMouse.xy, uMouse.z > 0.5 ? uMouse.xy : vec2(0.0)).z > 0.0) {
gl_FragColor = white;
} else {
gl_FragColor = black;
}
vec4 left = texture2D(uChannel0, uv + vec2(px.x, 0.0));
vec4 right = texture2D(uChannel0, uv + vec2(-px.x, 0.0));
vec4 top = texture2D(uChannel0, uv + vec2(0.0, px.y));
vec4 bottom = texture2D(uChannel0, uv + vec2(0.0, -px.y));
vec4 neightboorMax = (left + right + top + bottom) / 4.0;
gl_FragColor += neightboorMax;
}