From 79bad75e6c63f58313178d8fb7ce0c8fac0fa7a9 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sat, 13 Jun 2020 13:27:49 -0300 Subject: [PATCH] very good settings for tracing paper effect. --- .../Media/ExperimentalAcrylicMaterial.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Visuals/Media/ExperimentalAcrylicMaterial.cs b/src/Avalonia.Visuals/Media/ExperimentalAcrylicMaterial.cs index 503554be2d..dd74269297 100644 --- a/src/Avalonia.Visuals/Media/ExperimentalAcrylicMaterial.cs +++ b/src/Avalonia.Visuals/Media/ExperimentalAcrylicMaterial.cs @@ -180,9 +180,9 @@ namespace Avalonia.Media const double midPoint = 0.5; // Mid point of HsvV range that these calculations are based on. This is here for easy tuning. - const double whiteMaxOpacity = 0.45; // 100% luminosity - const double midPointMaxOpacity = 0.50; // 50% luminosity - const double blackMaxOpacity = 0.45; // 0% luminosity + const double whiteMaxOpacity = 0.15; // 100% luminosity + const double midPointMaxOpacity = 0.45; // 50% luminosity + const double blackMaxOpacity = 0.40; // 0% luminosity var hsv = RgbToHsv(tintColor); @@ -325,13 +325,15 @@ namespace Avalonia.Media var max = (float)RGBMax(TintColor) / 255.0f; var min = (float)RGBMin(TintColor) / 255.0f; - var lightness = (max + min) / 2.0; + var lightness = (max + min) / 2.0; // 0 opacity closer to white, 1 opacity, close to the lightness of the pixel. - // TintOpacity multiplied in, so we endup with pure white if there is no TintOpacity. - lightness = 1 - (1 - lightness) * luminosityOpacity.Value * TintOpacity; + lightness = 1 -((1 - lightness) * luminosityOpacity.Value); - var luminosityColor = new Color(255, Trim(lightness), Trim(lightness), Trim(lightness)); + lightness = 0.13 + (lightness * 0.74); + var luminosityColor = new Color(255, Trim(lightness), Trim(lightness), Trim(lightness)); + + //luminosityColor = new Color(255, Trim(lightness * modifier), Trim(lightness * modifier), Trim(lightness * modifier)); //var compensationMultiplier = 1 - PlatformTransparencyCompensationLevel; //return new Color((byte)(255 * Math.Max(Math.Min(PlatformTransparencyCompensationLevel + ( luminosityOpacity.Value * compensationMultiplier), 1.0), 0.0)), luminosityColor.R, luminosityColor.G, luminosityColor.B);