stuff
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
#version 330 core
|
||||
out vec4 FragColor;
|
||||
|
||||
in vec2 TexCoords;
|
||||
|
||||
uniform sampler2D screenTexture;
|
||||
uniform float threshold;
|
||||
|
||||
void main()
|
||||
{
|
||||
// Averaged, since a quarter size target would otherwise skip most of the screen's pixels
|
||||
vec2 texel = 1.0 / vec2(textureSize(screenTexture, 0));
|
||||
vec3 color = (texture(screenTexture, TexCoords + texel * vec2(-1.0, -1.0)).rgb
|
||||
+ texture(screenTexture, TexCoords + texel * vec2(1.0, -1.0)).rgb
|
||||
+ texture(screenTexture, TexCoords + texel * vec2(-1.0, 1.0)).rgb
|
||||
+ texture(screenTexture, TexCoords + texel * vec2(1.0, 1.0)).rgb) * 0.25;
|
||||
|
||||
// A single blown out specular pixel would otherwise flash a huge glow
|
||||
color = min(color, vec3(20.0));
|
||||
|
||||
// Keeps the hue of whatever is over the threshold, and fades in instead of cutting off
|
||||
float brightness = max(color.r, max(color.g, color.b));
|
||||
float contribution = max(brightness - threshold, 0.0) / max(brightness, 1e-4);
|
||||
|
||||
FragColor = vec4(color * contribution, 1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user