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:
authorClément Foucault <foucault.clem@gmail.com>2019-09-14 00:02:45 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-09-14 00:03:10 +0300
commitfd5c1972cd5c8a826c0d40effb0e2d367389666a (patch)
tree6a093944267ff888e9fb4323bac22d52468ab7ec /source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
parentc80564ef9f557fadd235b87533b24d126e2138c9 (diff)
Revert "DRW: Refactor to support draw call batching"
This reverts commit ce34a6b0d727bbde6ae373afa8ec6c42bc8980ce.
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl')
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl28
1 files changed, 10 insertions, 18 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
index f799ce41cb2..3333dfeff38 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
@@ -8,7 +8,8 @@ uniform float alpha = 0.5;
uniform vec2 invertedViewportSize;
uniform vec4 viewvecs[3];
-uniform vec4 materialColorAndMetal;
+uniform vec3 materialDiffuseColor;
+uniform vec3 materialSpecularColor;
uniform float materialRoughness;
uniform float shadowMultiplier = 0.5;
@@ -41,17 +42,17 @@ layout(location = 1) out
void main()
{
- vec4 base_color;
+ vec4 diffuse_color;
#if defined(V3D_SHADING_TEXTURE_COLOR)
- base_color = workbench_sample_texture(image, uv_interp, imageNearest, imagePremultiplied);
- if (base_color.a < ImageTransparencyCutoff) {
+ diffuse_color = workbench_sample_texture(image, uv_interp, imageNearest, imagePremultiplied);
+ if (diffuse_color.a < ImageTransparencyCutoff) {
discard;
}
#elif defined(V3D_SHADING_VERTEX_COLOR)
- base_color.rgb = vertexColor;
+ diffuse_color = vec4(vertexColor, 1.0);
#else
- base_color.rgb = materialColorAndMetal.rgb;
+ diffuse_color = vec4(materialDiffuseColor, 1.0);
#endif /* V3D_SHADING_TEXTURE_COLOR */
vec2 uv_viewport = gl_FragCoord.xy * invertedViewportSize;
@@ -63,7 +64,7 @@ void main()
/* -------- SHADING --------- */
#ifdef V3D_LIGHTING_FLAT
- vec3 shaded_color = base_color.rgb;
+ vec3 shaded_color = diffuse_color.rgb;
#elif defined(V3D_LIGHTING_MATCAP)
bool flipped = world_data.matcap_orientation != 0;
@@ -74,20 +75,11 @@ void main()
# else
vec3 matcap_specular = vec3(0.0);
# endif
- vec3 shaded_color = matcap_diffuse * base_color.rgb + matcap_specular;
+ vec3 shaded_color = matcap_diffuse * diffuse_color.rgb + matcap_specular;
#elif defined(V3D_LIGHTING_STUDIO)
-# ifdef V3D_SHADING_SPECULAR_HIGHLIGHT
- float metallic = materialColorAndMetal.a;
- vec3 specular_color = mix(vec3(0.05), base_color.rgb, metallic);
- vec3 diffuse_color = mix(base_color.rgb, vec3(0.0), metallic);
-# else
- vec3 specular_color = vec3(0.0);
- vec3 diffuse_color = base_color.rgb;
-# endif
-
vec3 shaded_color = get_world_lighting(
- world_data, diffuse_color, specular_color, materialRoughness, nor, I_vs);
+ world_data, diffuse_color.rgb, materialSpecularColor, materialRoughness, nor, I_vs);
#endif
#ifdef V3D_SHADING_SHADOW