diff options
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders')
3 files changed, 12 insertions, 18 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl index 2d913c63b00..99bacea4b27 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl @@ -15,9 +15,3 @@ struct WorldData { float background_alpha; int pad[1]; }; - -struct MaterialData { - vec4 diffuse_color; - vec4 specular_color; - float roughness; -}; 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 c21dd2af684..110b5a51fa5 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 @@ -7,6 +7,10 @@ uniform float alpha = 0.5; uniform vec2 invertedViewportSize; uniform vec4 viewvecs[3]; +uniform vec4 materialDiffuseColor; +uniform vec4 materialSpecularColor; +uniform float materialRoughness; + #ifdef NORMAL_VIEWPORT_PASS_ENABLED in vec3 normal_viewport; #endif /* NORMAL_VIEWPORT_PASS_ENABLED */ @@ -21,10 +25,6 @@ layout(std140) uniform world_block { WorldData world_data; }; -layout(std140) uniform material_block { - MaterialData material_data; -}; - layout(location=0) out vec4 transparentAccum; layout(location=1) out float revealageAccum; /* revealage actually stored in transparentAccum.a */ @@ -36,7 +36,7 @@ void main() #ifdef V3D_SHADING_TEXTURE_COLOR diffuse_color = texture(image, uv_interp); #else - diffuse_color = material_data.diffuse_color; + diffuse_color = materialDiffuseColor; #endif /* V3D_SHADING_TEXTURE_COLOR */ vec2 uv_viewport = gl_FragCoord.xy * invertedViewportSize; @@ -53,7 +53,7 @@ void main() #endif #ifdef V3D_SHADING_SPECULAR_HIGHLIGHT - vec3 specular_color = get_world_specular_lights(world_data, vec4(material_data.specular_color.rgb, material_data.roughness), nor, I_vs); + vec3 specular_color = get_world_specular_lights(world_data, vec4(materialSpecularColor.rgb, materialRoughness), nor, I_vs); #else vec3 specular_color = vec3(0.0); #endif diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl index 6aeb912377c..8752afb09c1 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl @@ -1,8 +1,8 @@ uniform int object_id = 0; -layout(std140) uniform material_block { - MaterialData material_data; -}; +uniform vec4 materialDiffuseColor; +uniform vec4 materialSpecularColor; +uniform float materialRoughness; #ifdef V3D_SHADING_TEXTURE_COLOR uniform sampler2D image; @@ -43,9 +43,9 @@ void main() #ifdef V3D_SHADING_TEXTURE_COLOR diffuseColor = texture(image, uv_interp); #else - diffuseColor = vec4(material_data.diffuse_color.rgb, 0.0); + diffuseColor = vec4(materialDiffuseColor.rgb, 0.0); # ifdef STUDIOLIGHT_ORIENTATION_VIEWNORMAL - specularColor = vec4(material_data.diffuse_color.rgb, 0.0); + specularColor = vec4(materialDiffuseColor.rgb, 0.0); # endif #endif /* V3D_SHADING_TEXTURE_COLOR */ @@ -56,7 +56,7 @@ void main() #endif #ifdef V3D_SHADING_SPECULAR_HIGHLIGHT - specularColor = vec4(material_data.specular_color.rgb, material_data.roughness); + specularColor = vec4(materialSpecularColor.rgb, materialRoughness); # ifdef HAIR_SHADER specularColor.rgb = clamp(specularColor.rgb - hair_color_variation, 0.0, 1.0); # endif |