Commit: d47127623ed7bd51efdd40b7bcee784b52092f66
Author: Antonio Vazquez
Date: Sun Sep 13 15:51:21 2020 +0200
Branches: greasepencil-object
https://developer.blender.org/rBd47127623ed7bd51efdd40b7bcee784b52092f66
GPencil: Use Texture alpha for Holdout
The holdout only is applied when texture alpha is > 0.
===================================================================
M source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl
===================================================================
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl
b/source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl
index 2d2d99bfe66..6a117b28398 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl
@@ -91,8 +91,14 @@ void main()
/* Holdout materials. */
if (GP_FLAG_TEST(matFlag, GP_STROKE_HOLDOUT | GP_FILL_HOLDOUT)) {
- revealColor = vec4(1.0 - fragColor.aaa, 1.0);
- fragColor = vec4(fragColor.rgb, 1.0);
+ /* If texture, use only the visible area of the texture for holdout. */
+ if (GP_FLAG_TEST(matFlag, GP_STROKE_TEXTURE_USE | GP_FILL_TEXTURE_USE)) {
+ revealColor = vec4(col.aaa * fragColor.aaa, 1.0);
+ }
+ else {
+ revealColor = vec4(1.0 - fragColor.aaa, 1.0);
+ fragColor = vec4(fragColor.rgb, 1.0);
+ }
}
else {
/* NOT holdout materials.
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs