Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl
- This file was added.
| uniform int color_type; | |||||
| uniform sampler2D myTexture; | |||||
| in vec4 mColor; | |||||
| in vec2 mTexCoord; | |||||
| in float uvfac; | |||||
| out vec4 fragColor; | |||||
| #define texture2D texture | |||||
| /* keep this list synchronized with list in gpencil_engine.h */ | |||||
| #define GPENCIL_COLOR_SOLID 0 | |||||
| #define GPENCIL_COLOR_TEXTURE 1 | |||||
| #define GPENCIL_COLOR_PATTERN 2 | |||||
| void main() | |||||
| { | |||||
| vec4 tColor = vec4(mColor); | |||||
| /* if alpha < 0, then encap (only solid mode ) */ | |||||
| if ((mColor.a < 0) && (color_type == GPENCIL_COLOR_SOLID)) { | |||||
| vec2 center = vec2(uvfac, 1.0); | |||||
| tColor.a = tColor.a * -1.0; | |||||
| float dist = length(mTexCoord - center); | |||||
| if (dist > 0.50) { | |||||
| discard; | |||||
| } | |||||
| } | |||||
| /* Solid */ | |||||
| if (color_type == GPENCIL_COLOR_SOLID) { | |||||
| fragColor = tColor; | |||||
| } | |||||
| /* texture */ | |||||
| if (color_type == GPENCIL_COLOR_TEXTURE) { | |||||
| fragColor = texture2D(myTexture, mTexCoord); | |||||
| /* mult both alpha factor to use strength factor */ | |||||
| fragColor.a = min(fragColor.a * tColor.a, fragColor.a); | |||||
| } | |||||
| /* pattern */ | |||||
| if (color_type == GPENCIL_COLOR_PATTERN) { | |||||
| vec4 text_color = texture2D(myTexture, mTexCoord); | |||||
| fragColor = tColor; | |||||
| /* mult both alpha factor to use strength factor with color alpha limit */ | |||||
| fragColor.a = min(text_color.a * tColor.a, tColor.a); | |||||
| } | |||||
| } | |||||