Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-09-30 16:11:27 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-09-30 16:11:27 +0400
commitae25238f41a949696cd95d1aeecd778ddb7cdce1 (patch)
treea5c0e8796f62c9920a5494c30eb3574d2a4aef56 /source/blender/gpu/shaders
parent31e6181187926f4dfb1bf3c62605b0e2b5bc237c (diff)
Fix #36882: cycles gamma node not working with glsl materials.
Diffstat (limited to 'source/blender/gpu/shaders')
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index bab677da842..633112095a7 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -2134,6 +2134,20 @@ void node_fresnel(float ior, vec3 N, vec3 I, out float result)
result = fresnel_dielectric(I, N, (gl_FrontFacing)? eta: 1.0/eta);
}
+/* gamma */
+
+void node_gamma(vec4 col, float gamma, out vec4 outcol)
+{
+ outcol = col;
+
+ if(col.r > 0.0)
+ outcol.r = compatible_pow(col.r, gamma);
+ if(col.g > 0.0)
+ outcol.g = compatible_pow(col.g, gamma);
+ if(col.b > 0.0)
+ outcol.b = compatible_pow(col.b, gamma);
+}
+
/* geometry */
void node_attribute(vec3 attr_uv, out vec4 outcol, out vec3 outvec, out float outf)