Skip to content

Commit

Permalink
Gloom: More tone mapping
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Sep 1, 2019
1 parent 49703d1 commit d2d8ff3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
6 changes: 4 additions & 2 deletions doomsday/tests/test_gloom/gloom/render/tonemap.cpp
Expand Up @@ -133,11 +133,13 @@ void Tonemap::advanceTime(TimeSpan elapsed)
float brightest = 0;
for (const auto &s : sample)
{
brightest = de::max(de::max(s.x * 0.666f, s.y, s.z * 0.334f), brightest);
//brightest = de::max(de::max(s.x * 0.666f, s.y, s.z * 0.334f), brightest);
brightest = de::max(s.max(), brightest);
}

// The adjustment is kept below 1.0 to avoid overbrightening dark scenes.
d->exposure.setValue(de::min(1.0f, 2.25f / brightest), 1.0);
// d->exposure.setValue(de::min(1.0f, 2.25f / brightest), 1.0);
d->exposure.setValue(de::min(1.0f, 0.8f / brightest), 1.0);
}

GLTexture &Tonemap::brightnessSample(int index) const
Expand Down
Expand Up @@ -8,10 +8,14 @@ uniform float uExposure;
DENG_VAR vec2 vUV;

void main(void) {
const float gamma = 0.5; //1.4;
vec3 hdr = textureLod(uFramebuf, vUV, 0).rgb;
// vec3 mapped = hdr * uExposure;
vec3 mapped = 1.0 - exp(-hdr * uExposure);
mapped = pow(mapped, 1.0 / vec3(gamma));
vec3 hdr = texelFetch(uFramebuf, ivec2(gl_FragCoord.xy), 0).rgb;

// const float gamma = 0.5;
vec3 mapped = hdr * uExposure;

// const float gamma = 0.5; //1.4;
// vec3 mapped = 1.0 - exp(-hdr * uExposure);

// mapped = pow(mapped, 1.0 / vec3(gamma));
out_FragColor = vec4(mapped, 1.0);
}

0 comments on commit d2d8ff3

Please sign in to comment.