67 lines
No EOL
1.9 KiB
GLSL
67 lines
No EOL
1.9 KiB
GLSL
#version 330 core
|
|
layout (std140) uniform uPostProcess {
|
|
int curTime;
|
|
|
|
int dt;
|
|
vec3 colorMod;
|
|
float blurIntensity;
|
|
float blurDuration;
|
|
float shakeIntensity;
|
|
float shakeDuration;
|
|
int effects;
|
|
|
|
vec3 colorMod_hud;
|
|
float blurIntensity_hud;
|
|
float blurDuration_hud;
|
|
float shakeIntensity_hud;
|
|
float shakeDuration_hud;
|
|
int effects_hud;
|
|
};
|
|
out vec4 FragColor;
|
|
|
|
in vec2 texCoord;
|
|
|
|
uniform int edge_kernel[9];
|
|
uniform float blur_kernel[9];
|
|
|
|
const float offset = 1.0 / 300.0;
|
|
|
|
uniform sampler2D screenTexture;
|
|
uniform bool worldOrHud;
|
|
|
|
void main()
|
|
{
|
|
if (worldOrHud == false)
|
|
{
|
|
if ((effects & 1) != 0) // BLUR
|
|
{
|
|
vec4 result = vec4(0.0);
|
|
vec2 offsets[9] = vec2[](
|
|
vec2(-offset, offset), // top-left
|
|
vec2( 0.0f, offset), // top-center
|
|
vec2( offset, offset), // top-right
|
|
vec2(-offset, 0.0f), // center-left
|
|
vec2( 0.0f, 0.0f), // center-center
|
|
vec2( offset, 0.0f), // center-right
|
|
vec2(-offset, -offset), // bottom-left
|
|
vec2( 0.0f, -offset), // bottom-center
|
|
vec2( offset, -offset) // bottom-right
|
|
);
|
|
vec4 sampleTex[9];
|
|
for (int i = 0; i < 9; i++)
|
|
{
|
|
sampleTex[i] = vec4(texture(screenTexture, texCoord.st + offsets[i]));
|
|
}
|
|
for (int i = 0; i < 9; i++)
|
|
result += sampleTex[i] * blur_kernel[i];
|
|
//FragColor = mix(texture(screenTexture, texCoord), vec4(1.0, 0.8, 0.0, 1.0), 0.3 - (1.0 / shakeTime) * shakeIntensity);
|
|
//FragColor = vec4(1.0 / blurDuration, 1.0, 0.0, 1.0);
|
|
FragColor = vec4(result);
|
|
}
|
|
else
|
|
{
|
|
//FragColor = vec4(1.0, 0.0, 1.0 / blurDuration, 1.0);
|
|
FragColor = texture(screenTexture, texCoord);
|
|
}
|
|
}
|
|
} |