public FloatingColor Filter(FloatingColor Base, FloatingColor Blend) { if (Blend.Luminosity() > .5) { return new FloatingColor() { R = Math.Max(Base.R, Blend.R), G = Math.Max(Base.G, Blend.G), B = Math.Max(Base.B, Blend.B), A = Base.A } } ; else { return new FloatingColor() { R = Math.Min(Base.R, Blend.R), G = Math.Min(Base.G, Blend.G), B = Math.Min(Base.B, Blend.B), A = Base.A } }; } }
public FloatingColor Filter(FloatingColor Base, FloatingColor Blend) { if (Blend.Luminosity() > .5) { return(1 + 2 * Blend * (1 - Base)); } else { return(2 * Base * Blend); } }
public FloatingColor Filter(FloatingColor Base, FloatingColor Blend) { if (Blend.Luminosity() > .5) { return(1 - (1 - Blend) * (1.5f - Base)); } else { return(Blend * (Base + .5f)); } }
public FloatingColor Filter(FloatingColor Base, FloatingColor Blend) { if (Blend.Luminosity() > .5) { return(1 - (1 - Blend) * (-2 * Base)); } else { return(Blend / (1 - 2 * Base)); } }
public FloatingColor Evaluate(FloatingColor C) { return(Evaluate(C.Luminosity())); }