Overlay: face orientation
authorJeroen Bakker <j.bakker@atmind.nl>
Sun, 22 Apr 2018 10:58:11 +0000 (12:58 +0200)
committerJeroen Bakker <j.bakker@atmind.nl>
Sun, 22 Apr 2018 10:58:11 +0000 (12:58 +0200)
- fixed the blending with solid drawtype

source/blender/draw/modes/overlay_mode.c
source/blender/draw/modes/shaders/overlay_face_orientation_frag.glsl

index 7538899debc2f67c8532b3200c429365726df102..e4a137b06f3e5deec8c79a37317bf81f6b313298 100644 (file)
@@ -94,16 +94,8 @@ static void overlay_cache_init(void *vedata)
        }
 
        View3D *v3d = DCS->v3d;
-       int bm_face_orientation = DRW_STATE_ADDITIVE;
        if (v3d) {
                stl->g_data->overlays = v3d->overlays;
-
-               /*
-                   Solid flat/studio lighting gives strange results when blending with the defaults.
-               */
-               if (v3d->drawtype == OB_SOLID) {
-                       bm_face_orientation = DRW_STATE_BLEND;
-               }
        }
        else {
                stl->g_data->overlays = 0;
@@ -111,7 +103,7 @@ static void overlay_cache_init(void *vedata)
 
        /* Face Orientation Pass */
        if (stl->g_data->overlays & V3D_OVERLAY_FACE_ORIENTATION) {
-               int state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_EQUAL | bm_face_orientation;
+               int state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_EQUAL | DRW_STATE_BLEND;
                psl->face_orientation_pass = DRW_pass_create("Face Orientation", state);
                stl->g_data->face_orientation_shgrp = DRW_shgroup_create(e_data.face_orientation_sh, psl->face_orientation_pass);
        }
index 21ed07683f029cd3cd5aaca2d353cc69776d59f3..5b0ad7863d19f6c8544d168b686c56443840401c 100644 (file)
@@ -6,5 +6,5 @@ out vec4 fragColor;
 
 void main()
 {
-       fragColor = vec4(gl_FrontFacing ? color_towards: color_outwards, 1.0);
+       fragColor = vec4(gl_FrontFacing ? color_towards: color_outwards, 0.7);
 }