44 lines
1.1 KiB
GLSL
44 lines
1.1 KiB
GLSL
#version 430
|
|
|
|
uniform vec4 Color;
|
|
uniform vec4 FillColor;
|
|
uniform float FillPercentage;
|
|
uniform float ScaleX;
|
|
uniform float ScaleY;
|
|
uniform mat4 P;
|
|
|
|
layout (binding = 1) uniform sampler2D DiffuseTexture;
|
|
layout (binding = 2) uniform sampler2D GlowMapTexture;
|
|
|
|
|
|
in VertexData{
|
|
vec3 Position;
|
|
vec3 Normal;
|
|
vec2 TextureCoordinate;
|
|
}Input;
|
|
|
|
|
|
out vec4 sceneColor;
|
|
out vec4 bloomColor;
|
|
|
|
void main()
|
|
{
|
|
vec4 diffuseTexel = texture2D(DiffuseTexture, vec2(Input.TextureCoordinate.x*ScaleX, Input.TextureCoordinate.y*ScaleY));
|
|
vec4 glowTexel = texture2D(GlowMapTexture, vec2(Input.TextureCoordinate.x*ScaleX, Input.TextureCoordinate.y*ScaleY));
|
|
|
|
vec4 color_result = Color * diffuseTexel;
|
|
|
|
float pos = ((P * vec4(Input.Position, 1)).y + 1.0)/2.0;
|
|
float fillResult = clamp(floor(pos/FillPercentage), 0, 1);
|
|
|
|
color_result = FillColor*diffuseTexel.a*(1 - fillResult) + color_result*fillResult;
|
|
|
|
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
|
|
|
//bloomColor = vec4(clamp((glowTexel.xyz*3) - 1.0, 0, 100), 1.0);
|
|
bloomColor = vec4(max(color_result.xyz - 1.0, 0.0), clamp(color_result.a, 0, 1));
|
|
//bloomColor = vec4(1.0, 1.0, 1.0, 0.0);
|
|
}
|
|
|
|
|