/// <summary>
        /// Updates per directional light variables
        /// </summary>
        /// <param name="light">Light</param>
        /// <param name="shadowMaps">Shadow map flags</param>
        /// <param name="shadowMap">Shadow map</param>
        public void UpdatePerLight(
            SceneLightDirectional light,
            IShadowMap shadowMap)
        {
            this.DirectionalLight = new BufferLightDirectional(light);

            this.ShadowMapDirectional = shadowMap?.Texture;
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="light">Light</param>
 public BufferLightDirectional(SceneLightDirectional light)
 {
     this.DirToLight       = -light.Direction;
     this.CastShadow       = light.CastShadow ? 1 : 0;
     this.LightColor       = light.DiffuseColor * light.Brightness;
     this.ToCascadeOffsetX = light.ToCascadeOffsetX;
     this.ToCascadeOffsetY = light.ToCascadeOffsetY;
     this.ToCascadeScale   = light.ToCascadeScale;
     this.ToShadowSpace    = Matrix.Transpose(light.ToShadowSpace);
 }