aboutsummaryrefslogtreecommitdiff
path: root/cube/cube.frag
diff options
context:
space:
mode:
Diffstat (limited to 'cube/cube.frag')
-rw-r--r--cube/cube.frag18
1 files changed, 17 insertions, 1 deletions
diff --git a/cube/cube.frag b/cube/cube.frag
index 5bf6507a..c68b9854 100644
--- a/cube/cube.frag
+++ b/cube/cube.frag
@@ -29,10 +29,26 @@ layout (location = 0) out vec4 uFragColor;
const vec3 lightDir= vec3(0.424, 0.566, 0.707);
+float linearToSrgb(float linear) {
+ if (linear <= 0.0031308) {
+ return linear * 12.92;
+ } else {
+ return (1.055 * pow(linear, 1.0/2.4)) - 0.055;
+ }
+}
+
+vec3 linearToSrgb(vec3 linear) {
+ return vec3(linearToSrgb(linear.r), linearToSrgb(linear.g), linearToSrgb(linear.b));
+}
+
+vec4 linearToSrgb(vec4 linear) {
+ return vec4(linearToSrgb(linear.rgb), linear.a);
+}
+
void main() {
vec3 dX = dFdx(frag_pos);
vec3 dY = dFdy(frag_pos);
vec3 normal = normalize(cross(dX,dY));
float light = max(0.0, dot(lightDir, normal));
- uFragColor = light * texture(tex, texcoord.xy);
+ uFragColor = linearToSrgb(light * texture(tex, texcoord.xy));
}