/// <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); }