diff options
Diffstat (limited to 'source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl index 73baacb35d4..0f1665b73c2 100644 --- a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl +++ b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl @@ -8,6 +8,12 @@ uniform vec4 colormix; uniform float mix_stroke_factor; uniform int shading_type[2]; +uniform int fade_layer; +uniform float fade_layer_factor; +uniform bool fade_ob; +uniform vec3 fade_color; +uniform float fade_ob_factor; + in vec4 mColor; in vec2 mTexCoord; in vec2 uvfac; @@ -88,4 +94,17 @@ void main() if (fragColor.a < 0.0035) { discard; } + + /* Apply paper opacity */ + if (fade_layer == 1) { + /* Layer is below, mix with background. */ + fragColor.rgb = mix(fade_color.rgb, fragColor.rgb, fade_layer_factor); + } + else if (fade_layer == 2) { + /* Layer is above, change opacity. */ + fragColor.a *= fade_layer_factor; + } + else if (fade_ob == true) { + fragColor.rgb = mix(fade_color.rgb, fragColor.rgb, fade_ob_factor); + } } |