Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uniform float bgl_RenderedTextureWidth;
- uniform float bgl_RenderedTextureHeight;
- uniform sampler2D bgl_RenderedTexture;
- //render attachment bloom disabled
- //uniform sampler2D bgl_DataTextures[7];
- uniform sampler2D iChannel0;
- //REplaced bge_RenderedTexture with this^^^
- vec2 iResolution = vec2(bgl_RenderedTextureWidth, bgl_RenderedTextureHeight); // viewport resolution (in pixels)
- vec3 makeBloom(float lod, vec2 offset, vec2 bCoord){
- vec2 pixelSize = 1.0 / vec2(iResolution.x, iResolution.y);
- offset += pixelSize;
- float lodFactor = exp2(lod);
- vec3 bloom = vec3(0.0);
- vec3 bloom2 = vec3(0.0);
- vec2 scale = lodFactor * pixelSize;
- vec2 coord = (bCoord.xy-offset)*lodFactor;
- float totalWeight = 0.0;
- if (any(greaterThanEqual(abs(coord - 0.5), scale + 0.5)))
- return vec3(0.0);
- for (int i = -5; i < 5; i++) {
- for (int j = -5; j < 5; j++) {
- float wg = pow(1.0-length(vec2(i,j)) * 0.125,6.0);
- bloom = pow(texture(iChannel0,gl_FragCoord.xy/ iResolution.xy).rgb,vec3(2.2))*wg + bloom;
- //New bloom falloff has instant FX but tapers off over time
- bloom = bloom* .99975;
- bloom = bloom*63;
- bloom2 = pow(texture(bgl_RenderedTexture,vec2(i,j) * scale + lodFactor * pixelSize + coord, lod).rgb,vec3(2.2))*wg + bloom2;
- bloom = vec3(bloom[0]+bloom2[0],bloom[1]+bloom2[1],bloom[2]+bloom2[2]);
- bloom = bloom /64;
- totalWeight += wg;
- }
- }
- bloom /= totalWeight;
- return bloom;
- }
- void mainImage( out vec4 fragColor, in vec2 fragCoord )
- {
- vec2 uv = fragCoord / iResolution.xy;
- vec3 blur = makeBloom(2.,vec2(0.0,0.0), uv);
- blur += makeBloom(3.,vec2(0.3,0.0), uv);
- blur += makeBloom(4.,vec2(0.0,0.3), uv);
- blur += makeBloom(5.,vec2(0.1,0.3), uv);
- blur += makeBloom(6.,vec2(0.2,0.3), uv);
- fragColor = vec4(pow(blur, vec3(1.0 / 2.2)),1.0);
- }
- void main() {
- vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
- mainImage(color, gl_FragCoord.xy);
- gl_FragColor = color;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement