summaryrefslogtreecommitdiffstats
path: root/src/extras/shaders/rhi/skybox.frag
diff options
context:
space:
mode:
authorJean-Michaël Celerier <jean-michael.celerier@kdab.com>2020-03-13 15:23:50 +0100
committerJean-Michaël Celerier <jean-michael.celerier@kdab.com>2020-04-21 16:36:47 +0200
commita01dbe5b0e1b912c7210abc304700020e685aff0 (patch)
tree7516339103b75068133654e6984c8bc45bd6cb7f /src/extras/shaders/rhi/skybox.frag
parent18b319f919f71c6b476675d832d1b8a2bda118c2 (diff)
rhi: Handle RHI-required information in QShaderGraph
Change-Id: I705843bbb1f6928c2e36b327469882e11fb9613e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/extras/shaders/rhi/skybox.frag')
-rw-r--r--src/extras/shaders/rhi/skybox.frag24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/extras/shaders/rhi/skybox.frag b/src/extras/shaders/rhi/skybox.frag
new file mode 100644
index 000000000..ceb13b628
--- /dev/null
+++ b/src/extras/shaders/rhi/skybox.frag
@@ -0,0 +1,24 @@
+#version 330
+
+in vec3 texCoord0;
+out vec4 fragColor;
+uniform samplerCube skyboxTexture;
+
+// Gamma correction
+uniform float gamma = 2.2;
+
+uniform float gammaStrength;
+
+vec3 gammaCorrect(const in vec3 color)
+{
+ return pow(color, vec3(1.0 / gamma));
+}
+
+void main()
+{
+ vec4 baseColor = texture(skyboxTexture, texCoord0);
+ vec4 gammaColor = vec4(gammaCorrect(baseColor.rgb), 1.0);
+ // This is an odd way to enable or not gamma correction,
+ // but this is a way to avoid branching until we can generate shaders
+ fragColor = mix(baseColor, gammaColor, gammaStrength);
+}