The shader uses several stored attributes, primarily the original PositionX and NormalX created in Group 1. These attributes are combined in the shader nodes to extract color information from the object. Depending on the rendering engine, two different methods are utilized to work with Cycles and Eevee in Blender 4.2+.

The final element of the shader involves overlaying a texture atlas of over 130 different brush strokes onto the planes, using them as alpha masks to make the strokes appear more painterly and organic. Depending on the stroke density, the filter may leave holes in the strokes, allowing the background to show through and fill these gaps. This approach also benefits lower-performance systems, as maintaining a lower density level can significantly improve performance and reduce the risk of crashes.

This system effectively combines multiple techniques to achieve a cohesive painterly effect that is both visually expressive and efficient for real-time rendering. By integrating attributes, managing depth, and refining shader techniques, this approach provides a versatile and powerful solution for achieving traditional art styles in modern 3D environments. This holistic approach not only captures the essence of traditional brushstrokes but also allows for flexibility and adaptability, making it suitable for a wide range of artistic and practical applications in animation and rendering.

Cycles

In Cycles, the new Ray Portal node is used to pull the color directly from the original point distribution location. Since this information is stored, the portal effect is used to link the flattened strokes to the corresponding locations they represent. The NormalX attribute is then scaled to -1 to ensure the portal faces the object rather than the view direction. This technique provides an optimal way to extract color information from the object, regardless of its material, allowing for rapid changes to the object shader while the filter adapts to the current colors and textures.

EEvEE

In Eevee, a Refraction Shader is used to zoom in from the filter to the object. This approach utilizes screen space reflections to bring the color data towards the filter, much like a small zoom lens applied to each stroke. Although effective, this method has encountered issues in Blender 4.2 with Eevee Next due to the new ray tracing used in the refraction shader. These changes can cause unwanted refractions on the strokes, particularly when there is no background for the strokes to sample color from, resulting in them pulling color from the HDRI instead.