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:
authorJeroen Bakker <j.bakker@atmind.nl>2018-05-30 15:40:57 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2018-05-30 15:42:07 +0300
commitacaf46db0ea7103aaa3f46092b3582611d37ca0f (patch)
treebfd0adacdbbb6852c49cbf9b3ac73503e62bb638 /source/blender/draw/engines/workbench/shaders/workbench_world_light_lib.glsl
parent29f9a197088e0e1ea56cae675803f61165d790c1 (diff)
Workbench: Specular Highlights
Added specular highlights for: - Solid studio shading - Texture studio shading
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders/workbench_world_light_lib.glsl')
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_world_light_lib.glsl16
1 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_world_light_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_world_light_lib.glsl
index 6507f1ec707..7e476080b64 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_world_light_lib.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_world_light_lib.glsl
@@ -18,3 +18,19 @@ vec3 get_camera_diffuse_light(WorldData world_data, vec3 N)
result = mix(result, world_data.diffuse_light_y_neg, clamp(-N.z, 0.0, 1.0));
return result.xyz;
}
+
+/* N And I are in View Space. */
+vec3 get_world_specular_light(WorldData world_data, vec3 N, vec3 I)
+{
+#ifdef V3D_SHADING_SPECULAR_HIGHLIGHTS
+ vec3 reflection_vector = reflect(I, N);
+ vec3 specular_light = vec3(1.0);
+ /* Simple frontal specular highlights. */
+ float specular_influence = pow(max(0.0, dot(world_data.light_direction_vs.xyz, reflection_vector)), world_data.specular_sharpness);
+ vec3 specular_color = specular_light * specular_influence;
+
+#else /* V3D_SHADING_SPECULAR_HIGHLIGHTS */
+ vec3 specular_color = vec3(0.0);
+#endif /* V3D_SHADING_SPECULAR_HIGHLIGHTS */
+ return specular_color;
+}