/// <summary> /// Returns a pre-set effect configuration scaled between 0 and 1 /// </summary> /// <param name="amount">0 to 1 intensity of effect</param> /// <returns></returns> public static OldMovieConfiguration PreSet(float amount) { amount = Clamper.Clamp(amount, 0.0f, 1.0f); return(new OldMovieConfiguration { Intensity = amount, Scratch = 0.02f * (1.8f * amount), Noise = 0.2f * amount, RndShiftCutOff = 0.5f + (amount * 2.0f), RndShiftScalar = 0.6f * amount, Dim = 1.0f * amount, ProbabilityRollStarts = 0.002f + (amount * 0.04f), ProbabilityRollEnds = 0.09f + ((1.0f - amount) * 0.09f), RollSpeedMin = 3.5f + (3.8f * amount), RollSpeedMax = 5.6f + (2.0f * amount), RollAccelerationMin = 2.3f + (2.2f * amount), RollAccelerationMax = 3.2f + (3.7f * amount), RollShakeFactor = 0.02f + (amount * 0.45f), RollOverallScale = 0.1f * (0.6f * amount), OverExposureProbabilityStart = 0.001f + (amount * 0.01f), OverExposureFlickerTimeMin = 3.6f + (12.5f * amount), OverExposureFlickerTimeMax = 16.0f + (16.0f * amount), OverExposureIntensityMin = 1.3f * (3.7f * amount), OverExposureIntensityMax = 2.4f * (4.7f * amount), OverExposureOscillationsMin = 1 + (int)(amount * 4), OverExposureOscillationsMax = 2 + (int)(amount * 8) }); }
/// <summary> /// Returns a pre-set effect configuration scaled between 0 and 1 (uses Freichen) /// </summary> /// <param name="amount">0 to 1 intensity of effect</param> /// <returns></returns> public static EdgeDetectionConfiguration PreSet(float amount) { amount = Clamper.Clamp(amount, 0.0f, 1.0f); return(new EdgeDetectionConfiguration { Intensity = amount, IsFreichen = true }); }
/// <summary> /// Returns a pre-set effect configuration scaled between 0 and 1 (uses 2.0 as texel scalar) /// </summary> /// <param name="amount">0 to 1 intensity of effect</param> /// <returns></returns> public static StaticConfiguration PreSet(float amount) { amount = Clamper.Clamp(amount, 0.0f, 1.0f); return(new StaticConfiguration { IgnoreTransparent = 0, Intensity = amount, TexelScaler = 2.0f, TimeSpeed = 10.0f }); }
/// <summary> /// Returns a pre-set effect configuration scaled between 0 and 1 /// </summary> /// <param name="amount">0 to 1 intensity of effect (reflects size of 'pixels')</param> /// <param name="aspect">Aspect ratio (width / height)</param> /// <returns></returns> public static CrtEffectConfiguration PreSet(float amount, float aspect) { amount = Clamper.Clamp(amount, 0.0f, 1.0f); var filtersHorizontally = 96; return(new CrtEffectConfiguration { NumRgbFiltersHorizontally = filtersHorizontally, NumRgbFiltersVertically = (int)(filtersHorizontally * (1.0f / aspect)), RgbPixelFilterAmount = amount, RgbPixelFilterIntensity = amount, SimpleScanlinesIntensity = amount }); }
/// <summary> /// Returns a pre-set effect configuration scaled between 0 and 1 /// </summary> /// <param name="amount">0 to 1 intensity of effect (reflects size of 'pixels')</param> /// <returns></returns> public static PixellateConfiguration PreSet(float amount) { amount = Clamper.Clamp(amount, 0.0f, 1.0f); var pow = 4.0f + ((1.0f - amount) * 7.0f); var numDivisions = (int)Math.Pow(2.0f, pow); return(new PixellateConfiguration { Intensity = 1.0f, NumXDivisions = numDivisions, NumYDivisions = numDivisions }); }