dolphin/Data/Sys/Shaders/bad_bloom.glsl

44 lines
1.6 KiB
Text
Raw Normal View History

2013-03-07 19:51:57 +01:00
uniform sampler2D samp9;
2011-01-31 01:08:06 +01:00
2013-03-07 19:51:57 +01:00
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main()
2011-01-31 01:08:06 +01:00
{
2013-03-07 19:51:57 +01:00
float4 c_center = texture(samp9, uv0);
2011-01-31 01:08:06 +01:00
float4 bloom_sum = float4(0.0, 0.0, 0.0, 0.0);
2013-03-07 19:51:57 +01:00
vec2 pos = uv0 + float2(0.3, 0.3) * resolution.zw;
float2 radius1 = 1.3 * resolution.zw;
bloom_sum += texture(samp9, pos + float2(-1.5, -1.5) * radius1);
bloom_sum += texture(samp9, pos + float2(-2.5, 0) * radius1);
bloom_sum += texture(samp9, pos + float2(-1.5, 1.5) * radius1);
bloom_sum += texture(samp9, pos + float2(0, 2.5) * radius1);
bloom_sum += texture(samp9, pos + float2(1.5, 1.5) * radius1);
bloom_sum += texture(samp9, pos + float2(2.5, 0) * radius1);
bloom_sum += texture(samp9, pos + float2(1.5, -1.5) * radius1);
bloom_sum += texture(samp9, pos + float2(0, -2.5) * radius1);
float2 radius2 = 4.6 * resolution.zw;
bloom_sum += texture(samp9, pos + float2(-1.5, -1.5) * radius2);
bloom_sum += texture(samp9, pos + float2(-2.5, 0) * radius2);
bloom_sum += texture(samp9, pos + float2(-1.5, 1.5) * radius2);
bloom_sum += texture(samp9, pos + float2(0, 2.5) * radius2);
bloom_sum += texture(samp9, pos + float2(1.5, 1.5) * radius2);
bloom_sum += texture(samp9, pos + float2(2.5, 0) * radius2);
bloom_sum += texture(samp9, pos + float2(1.5, -1.5) * radius2);
bloom_sum += texture(samp9, pos + float2(0, -2.5) * radius2);
2011-01-31 01:08:06 +01:00
bloom_sum *= 0.07;
bloom_sum -= float4(0.3, 0.3, 0.3, 0.3);
bloom_sum = max(bloom_sum, float4(0,0,0,0));
2013-03-07 19:51:57 +01:00
float2 vpos = (uv0 - float2(.5, .5)) * 2;
2011-01-31 01:08:06 +01:00
float dist = (dot(vpos, vpos));
dist = 1 - 0.4*dist;
ocol0 = (c_center * 0.7 + bloom_sum) * dist;
}