diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2018-05-30 21:34:29 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2018-05-30 21:34:29 +0300 |
commit | f5f25b843ee0edd559187abcfaf4fefbf1901d86 (patch) | |
tree | 4403ffa0d00b47c1e106f1c7c1813c71cd441586 /source/blender/draw/engines | |
parent | eb0fcd4574aaac732045058dce71a17f6900384c (diff) |
Removed Object color from workbench. Added Highlights to FLAT shading.
Diffstat (limited to 'source/blender/draw/engines')
5 files changed, 18 insertions, 5 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl index 525b934d3be..7374dfbe79e 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl @@ -69,8 +69,15 @@ void main() vec3 shaded_color = diffuse_light * diffuse_color.rgb + specular_color; #else /* V3D_LIGHTING_STUDIO */ + #ifdef V3D_SHADING_SPECULAR_HIGHLIGHT + vec3 specular_color = get_world_specular_light(world_data, normal_viewport, vec3(0.0, 0.0, 1.0)); + vec3 shaded_color = diffuse_color.rgb + specular_color; + + #else /* V3D_SHADING_SPECULAR_HIGHLIGHT */ vec3 shaded_color = diffuse_color.rgb; + #endif /* V3D_SHADING_SPECULAR_HIGHLIGHT */ + #endif /* V3D_LIGHTING_STUDIO */ #ifdef V3D_SHADING_SHADOW 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 6585bac9289..d0e3305cc70 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 @@ -41,7 +41,15 @@ void main() vec3 shaded_color = diffuse_light * diffuse_color.rgb + specular_color; #else /* V3D_LIGHTING_STUDIO */ + #ifdef V3D_SHADING_SPECULAR_HIGHLIGHT + vec3 specular_color = get_world_specular_light(world_data, normal_viewport, vec3(0.0, 0.0, 1.0)); + vec3 shaded_color = diffuse_color.rgb + specular_color; + + #else /* V3D_SHADING_SPECULAR_HIGHLIGHT */ vec3 shaded_color = diffuse_color.rgb; + + #endif /* V3D_SHADING_SPECULAR_HIGHLIGHT */ + #endif /* V3D_LIGHTING_STUDIO */ float alpha = 0.5 ; diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c index f0494325475..e7655eee940 100644 --- a/source/blender/draw/engines/workbench/workbench_deferred.c +++ b/source/blender/draw/engines/workbench/workbench_deferred.c @@ -100,7 +100,7 @@ static char *workbench_build_composite_frag(WORKBENCH_PrivateData *wpd) BLI_dynstr_append(ds, datatoc_workbench_common_lib_glsl); BLI_dynstr_append(ds, datatoc_workbench_background_lib_glsl); - if (wpd->shading.light & V3D_LIGHTING_STUDIO) { + if ((wpd->shading.light & V3D_LIGHTING_STUDIO) || (wpd->shading.flag & V3D_SHADING_SPECULAR_HIGHLIGHT)) { BLI_dynstr_append(ds, datatoc_workbench_world_light_lib_glsl); } if (wpd->shading.flag & V3D_SHADING_OBJECT_OUTLINE) { diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c index 785a01c7621..fb9b73c48b0 100644 --- a/source/blender/draw/engines/workbench/workbench_materials.c +++ b/source/blender/draw/engines/workbench/workbench_materials.c @@ -26,9 +26,6 @@ void workbench_material_get_solid_color(WORKBENCH_PrivateData *wpd, Object *ob, float hsv[3] = {offset, HSV_SATURATION, HSV_VALUE}; hsv_to_rgb_v(hsv, color); } - else if (color_type == V3D_SHADING_OBJECT_COLOR) { - copy_v3_v3(color, ob->col); - } else { /* V3D_SHADING_MATERIAL_COLOR */ if (mat) { diff --git a/source/blender/draw/engines/workbench/workbench_private.h b/source/blender/draw/engines/workbench/workbench_private.h index 918715581d9..54cf82c59bb 100644 --- a/source/blender/draw/engines/workbench/workbench_private.h +++ b/source/blender/draw/engines/workbench/workbench_private.h @@ -42,7 +42,8 @@ #define OBJECT_ID_PASS_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_OBJECT_OUTLINE) #define SHADOW_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_SHADOW) -#define NORMAL_VIEWPORT_PASS_ENABLED(wpd) (wpd->shading.light & V3D_LIGHTING_STUDIO || SHADOW_ENABLED(wpd)) +#define SPECULAR_HIGHLIGHT_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_SPECULAR_HIGHLIGHT) +#define NORMAL_VIEWPORT_PASS_ENABLED(wpd) (wpd->shading.light & V3D_LIGHTING_STUDIO || SHADOW_ENABLED(wpd) || SPECULAR_HIGHLIGHT_ENABLED (wpd)) #define NORMAL_ENCODING_ENABLED() (true) #define WORKBENCH_REVEALAGE_ENABLED #define STUDIOLIGHT_ORIENTATION_WORLD_ENABLED(wpd) (wpd->studio_light->flag & STUDIOLIGHT_ORIENTATION_WORLD) |