30 lines
No EOL
639 B
GLSL
30 lines
No EOL
639 B
GLSL
#version 330
|
|
|
|
in vec2 vTexture;
|
|
in vec2 TransformedTexture;
|
|
|
|
uniform sampler2D Scene;
|
|
uniform sampler2D Bloom;
|
|
|
|
uniform float MinAmount;
|
|
uniform float MaxAmount;
|
|
uniform sampler2D AmountMap;
|
|
uniform bool HasAmountMap;
|
|
|
|
uniform float Exposure;
|
|
uniform bool HDR;
|
|
|
|
layout(location = 0) out vec4 color;
|
|
|
|
void main() {
|
|
vec3 result = texture(Bloom, vTexture).rgb;
|
|
if (HasAmountMap) result *= clamp(length(texture(AmountMap, TransformedTexture).rgb) * (MaxAmount - MinAmount) + MinAmount, 0, 1);
|
|
if (!HDR) {
|
|
result = vec3(1.0) - exp(-result * Exposure);
|
|
}
|
|
|
|
|
|
result = texture(Scene, vTexture).rgb + result;
|
|
|
|
color = vec4(result, 1);
|
|
} |