public Func <TextureSize> TargetSize; // Not saved

            public SuperRes()
            {
                TargetSize = () => Renderer.TargetSize;

                Passes   = 2;
                Strength = 1.0f;
                Softness = 0.0f;

                LegacyDownscaling = false;

                var EWASincJinc = new EwaScalerScaler
                {
                    Settings = new EwaScaler
                    {
                        Scaler              = new SincJinc(),
                        TapCount            = ScalerTaps.Six,
                        AntiRingingEnabled  = true,
                        AntiRingingStrength = 1.0f, // No need to hold back, SuperRes should lessen possible artefacts
                    }
                }.ToPreset("EWA Sinc-Jinc");

                var fastSuperXbrUi = new Hylian.SuperXbr.SuperXbrUi
                {
                    Settings = new Hylian.SuperXbr.SuperXbr
                    {
                        FastMethod = true,
                        ThirdPass  = false
                    }
                }.ToPreset("Super-xBR (Fast)");

                PrescalerGroup = new RenderScriptGroup
                {
                    Options = (new[] { EWASincJinc, fastSuperXbrUi })
                              .Concat(
                        new List <IRenderChainUi>
                    {
                        new Hylian.SuperXbr.SuperXbrUi(),
                        new Nedi.NediScaler(),
                        new NNedi3.NNedi3Scaler(),
                        new Mpdn.OclNNedi3.OclNNedi3Scaler()
                    }.Select(x => x.ToPreset()))
                              .ToList(),
                    SelectedIndex = 0
                };

                PrescalerGroup.Name = "SuperRes Prescaler";
            }
Example #2
0
            public Func <TextureSize> TargetSize; // Not saved

            public SSSR()
            {
                TargetSize = () => Renderer.TargetSize;

                Passes      = 2;
                LinearLight = true;
                OverSharp   = 0.0f;
                Locality    = 4.0f;

                Mode = SSSRMode.Hybrid;

                var EWASincJinc = new EwaScalerScaler
                {
                    Settings = new EwaScaler
                    {
                        Scaler             = new SincJinc(),
                        TapCount           = ScalerTaps.Six,
                        AntiRingingEnabled = false // Not needed
                    }
                }.ToPreset("EWA Sinc-Jinc");

                var fastSuperXbrUi = new Hylian.SuperXbr.SuperXbrUi
                {
                    Settings = new Hylian.SuperXbr.SuperXbr
                    {
                        FastMethod = true,
                        ThirdPass  = false
                    }
                }.ToPreset("Super-xBR (Fast)");

                PrescalerGroup = new RenderScriptGroup
                {
                    Options = (new[] { EWASincJinc, fastSuperXbrUi })
                              .Concat(
                        new List <IRenderChainUi>
                    {
                        new Hylian.SuperXbr.SuperXbrUi(),
                        new Nedi.NediScaler(),
                        new NNedi3.NNedi3Scaler(),
                        new Mpdn.OclNNedi3.OclNNedi3Scaler()
                    }.Select(x => x.ToPreset()))
                              .ToList(),
                    SelectedIndex = 0
                };

                PrescalerGroup.Name = "SSSR Prescaler";
            }