Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 120
- varying vec3 vertex;
- varying vec4 color;
- const float gaussD3 = 0.0044318;
- const float gaussD2 = 0.0539910;
- const float gaussD1 = 0.2419710;
- const float faussD0 = 0.3989423;
- uniform sampler3D tex;
- uniform vec3 direction;
- // Simple gaussian blur in the specified direction (set direction.x, direction.y, direction.z)
- // standard deviation is 1, sample rate is 1 per pixel in a 3 pixel radius
- void main() {
- vec4 sum = vec4(0.0);
- sum += texture3D(tex, vec3(vertex.x - 3*direction.x, vertex.y - 3*direction.y, vertex.z - 3*direction.z)) * gaussD3;
- sum += texture3D(tex, vec3(vertex.x - 2*direction.x, vertex.y - 2*direction.y, vertex.z - 2*direction.z)) * gaussD2;
- sum += texture3D(tex, vec3(vertex.x - 1*direction.x, vertex.y - 1*direction.y, vertex.z - 1*direction.z)) * gaussD1;
- sum += texture3D(tex, vec3(vertex.x, vertex.y, vertex.z)) * gaussD0;
- sum += texture3D(tex, vec3(vertex.x + 1*direction.x, vertex.y + 1*direction.y, vertex.z + 1*direction.z)) * gaussD1;
- sum += texture3D(tex, vec3(vertex.x + 2*direction.x, vertex.y + 2*direction.y, vertex.z + 2*direction.z)) * gaussD2;
- sum += texture3D(tex, vec3(vertex.x + 3*direction.x, vertex.y + 3*direction.y, vertex.z + 3*direction.z)) * gaussD3;
- gl_FragColor = color * sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement