public override void AfterGpuStroke(PaintCommand.ForPainterComponent command) //Brush br, Stroke st, BrushTypes.Base type)
 {
     if (painter.Is3DBrush(command.Brush) && painter.IsAtlased())
     {
         PainterShaderVariables.BRUSH_ATLAS_SECTION_AND_ROWS.GlobalValue = new Vector4(0, 0, 1, 0);
     }
 }
        public override void BeforeGpuStroke(PaintCommand.ForPainterComponent command) //Brush br, Stroke st, BrushTypes.Base type)
        {
            if (!painter.Is3DBrush(command.Brush) || !painter.IsAtlased())
            {
                return;
            }

            var ats = GetAtlasedSection();

            PainterShaderVariables.BRUSH_ATLAS_SECTION_AND_ROWS.GlobalValue = new Vector4(ats.x, ats.y, atlasRows, 1);
        }
        }                                                                                //Brush br, Stroke st, BrushTypes.Base type) { }

        public virtual void AfterGpuStroke(PaintCommand.ForPainterComponent command)
        {
        }                                                                              //Brush br, Stroke st, BrushTypes.Base type) {