Пример #1
0
        protected override string GetInformationString()
        {
#if SSLR_PARAMETRIZED
            if (SslrAdjustCurrentMode != SslrAdjustMode.None)
            {
                return($@"Mode: {SslrAdjustCurrentMode}
Start from: {_sslrStartFrom}
Fix multiplier: {_sslrFixMultiplier}
Offset: {_sslrOffset}
Grow fix: {_sslrGrowFix}
Distance threshold: {_sslrDistanceThreshold}");
            }
#endif

            var aa = new[] {
                UseMsaa?MsaaSampleCount + "xMSAA" : null,
                UseSsaa ? $"{Math.Pow(ResolutionMultiplier, 2d).Round()}xSSAA{(TemporaryFlag ? " (exp.)" : "")}" : null,
                UseFxaa ? "FXAA" : null,
            }.NonNull().JoinToString(", ");

            var se = new[] {
                UseSslr ? "SSLR" : null,
                UseAo ? AoType.GetDescription() : null,
                UseBloom ? "Bloom" : null,
            }.NonNull().JoinToString(", ");

            var pp = new[] {
                ToneMapping != ToneMappingFn.None ? "Tone Mapping" : null,
                UseColorGrading&& ColorGradingData != null ? "Color Grading" : null
            }.NonNull().JoinToString(", ");

            if (ToneMapping != ToneMappingFn.None)
            {
                pp += $"\r\nTone Mapping Func.: {ToneMapping.GetDescription()}";
                pp += $"\r\nExp./Gamma/White P.: {ToneExposure:F2}, {ToneGamma:F2}, {ToneWhitePoint:F2}";
            }

            return(CarNode?.DebugString ?? $@"
FPS: {FramesPerSecond:F0}{(SyncInterval ? " (limited)" : "")} ({Width}×{Height})
Triangles: {CarNode?.TrianglesCount:D}
AA: {(string.IsNullOrEmpty(aa) ? "None" : aa)}
Shadows: {(EnableShadows ? $"{(UsePcss ? "Yes, PCSS" : "Yes")} ({ShadowMapSize})" : "No")}
Effects: {(string.IsNullOrEmpty(se) ? "None" : se)}
Color: {(string.IsNullOrWhiteSpace(pp) ? "Original" : pp)}".Trim());
        }
Пример #2
0
        private void UpdateColorGrading()
        {
            try
            {
                ToneMapping        vanillaToneMapping        = _camera.gameObject.GetComponent <ToneMapping>();
                ColorCorrectionLut vanillaColorCorrectionLut = _camera.gameObject.GetComponent <ColorCorrectionLut>();

                ColorGradingModel.Settings settings = _colorGradingModel.settings;

                if (ModProperties.Instance.ActiveProfile.ColorGradingEnabled)
                {
                    vanillaToneMapping.enabled        = ModProperties.Instance.ActiveProfile.CGVanillaTonemappingEnabled;
                    vanillaColorCorrectionLut.enabled = ModProperties.Instance.ActiveProfile.CGVanillaColorCorrectionLUTEnabled;
                    settings.basic.postExposure       = ModProperties.Instance.ActiveProfile.CGPostExposure;
                    settings.basic.temperature        = ModProperties.Instance.ActiveProfile.CGTemperature;
                    settings.basic.tint                    = ModProperties.Instance.ActiveProfile.CGTint;
                    settings.basic.hueShift                = ModProperties.Instance.ActiveProfile.CGHueShift;
                    settings.basic.saturation              = ModProperties.Instance.ActiveProfile.CGSaturation;
                    settings.basic.contrast                = ModProperties.Instance.ActiveProfile.CGContrast;
                    settings.tonemapping.tonemapper        = (ColorGradingModel.Tonemapper)ModProperties.Instance.ActiveProfile.CGTonemapper;
                    settings.tonemapping.neutralBlackIn    = ModProperties.Instance.ActiveProfile.CGNeutralBlackIn;
                    settings.tonemapping.neutralWhiteIn    = ModProperties.Instance.ActiveProfile.CGNeutralWhiteIn;
                    settings.tonemapping.neutralBlackOut   = ModProperties.Instance.ActiveProfile.CGNeutralBlackOut;
                    settings.tonemapping.neutralWhiteOut   = ModProperties.Instance.ActiveProfile.CGNeutralWhiteOut;
                    settings.tonemapping.neutralWhiteLevel = ModProperties.Instance.ActiveProfile.CGNeutralWhiteLevel;
                    settings.tonemapping.neutralWhiteClip  = ModProperties.Instance.ActiveProfile.CGNeutralWhiteClip;
                    _colorGradingModel.settings            = settings;
                    _colorGradingModel.enabled             = true;
                }
                else
                {
                    vanillaToneMapping.enabled        = true;
                    vanillaColorCorrectionLut.enabled = true;
                    _colorGradingModel.enabled        = false;
                }

                _postProcessingBehaviour.profile.colorGrading.settings = _colorGradingModel.settings;
                _postProcessingBehaviour.profile.colorGrading.enabled  = _colorGradingModel.enabled;
            }
            catch (Exception e)
            {
                Debug.Log("[Render It!] ModManager:UpdateColorGrading -> Exception: " + e.Message);
            }
        }
        protected override string GetInformationString()
        {
            var aa = new[] {
                UseMsaa?MsaaSampleCount + "xMSAA" : null,
                UseSsaa ? $"{Math.Pow(ResolutionMultiplier, 2d).Round()}xSSAA" : null,
                UseFxaa ? "FXAA" : null,
            }.NonNull().JoinToString(", ");

            var se = new[] {
                UseDof?UseAccumulationDof ? "Acc. DOF" : "DOF" : null,
                UseSslr ? "SSLR" : null,
                UseAo ? AoType.GetDescription() : null,
                UseBloom ? "HDR" : null,
            }.NonNull().JoinToString(", ");

            var pp = new[] {
                ToneMapping != ToneMappingFn.None ? "Tone Mapping" : null,
                UseColorGrading&& ColorGradingData != null ? "Color Grading" : null
            }.NonNull().JoinToString(", ");

            if (ToneMapping != ToneMappingFn.None)
            {
                pp += $"\r\nTone Mapping Func.: {ToneMapping.GetDescription()}";
                pp += $"\r\nExp./Gamma/White P.: {ToneExposure:F2}, {ToneGamma:F2}, {ToneWhitePoint:F2}";
            }

            return(CarNode?.DebugString ?? $@"
FPS: {FramesPerSecond:F0}{(SyncInterval ? " (limited)" : "")} ({Width}×{Height})
Triangles: {CarNode?.TrianglesCount:D}
AA: {(string.IsNullOrEmpty(aa) ? "None" : aa)}
Shadows: {(EnableShadows ? $"{(UsePcss ? "Yes, PCSS" : "Yes")} ({ShadowMapSize})" : "No")}
Effects: {(string.IsNullOrEmpty(se) ? "None" : se)}
Color: {(string.IsNullOrWhiteSpace(pp) ? "Original" : pp)}
Shaders set: {_darkMode}
Lights: {_lights.Count(x => x.ActuallyEnabled)} (shadows: {(EnableShadows ? 1 + _lights.Count(x => x.ActuallyEnabled && x.ShadowsActive) : 0)})
Skin editing: {(ImageUtils.IsMagickSupported ? MagickOverride ? "Magick.NET av., enabled" : "Magick.NET av., disabled" : "Magick.NET not available")}".Trim());
        }
    public void Update_ColorGrading(Camera mainCamera, bool enabled, ToneMapping mode, float exposure, float contrast, float gamma, float saturation, float r, float g, float b, float vignette)
    {
        if (enabled)
        {
            if (!mainCamera.GetComponent <MobileColorGrading> ())
            {
                mainCamera.gameObject.AddComponent <MobileColorGrading> ();
            }

            MobileColorGrading colorGrading = mainCamera.GetComponent <MobileColorGrading> ();
                        #if UNITY_EDITOR
            if (mainCamera.GetComponent <AudioListener> ())
            {
                UnityEditorInternal.ComponentUtility.MoveComponentDown(mainCamera.GetComponent <AudioListener> ());
            }

            if (mainCamera.GetComponent <MobileColorGrading> ())
            {
                UnityEditorInternal.ComponentUtility.MoveComponentDown(mainCamera.GetComponent <MobileColorGrading> ());
                UnityEditorInternal.ComponentUtility.MoveComponentDown(mainCamera.GetComponent <MobileColorGrading> ());
            }

            if (mainCamera.GetComponent <BloomOptimized> ())
            {
                UnityEditorInternal.ComponentUtility.MoveComponentDown(mainCamera.GetComponent <BloomOptimized> ());
                UnityEditorInternal.ComponentUtility.MoveComponentDown(mainCamera.GetComponent <BloomOptimized> ());
            }

            if (mainCamera.GetComponent <DepthOfFieldDeprecated> ())
            {
                UnityEditorInternal.ComponentUtility.MoveComponentDown(mainCamera.GetComponent <DepthOfFieldDeprecated> ());
                UnityEditorInternal.ComponentUtility.MoveComponentDown(mainCamera.GetComponent <DepthOfFieldDeprecated> ());
            }
                        #endif
            if (!colorGrading.shader)
            {
                colorGrading.shader = Shader.Find("Hidden/ALIyerEdon/ColorGrading");
            }
            colorGrading.Exposure          = exposure;
            colorGrading.toneMapping       = mode;
            colorGrading.Contrast          = contrast;
            colorGrading.Gamma             = gamma;
            colorGrading.Saturation        = saturation;
            colorGrading.R                 = r;
            colorGrading.G                 = g;
            colorGrading.B                 = b;
            colorGrading.vignetteIntensity = vignette;
        }
        else
        {
            if (mainCamera.GetComponent <MobileColorGrading> ())
            {
                if (Application.isPlaying)
                {
                    Destroy(mainCamera.GetComponent <MobileColorGrading> ());
                }
                else
                {
                    DestroyImmediate(mainCamera.GetComponent <MobileColorGrading> ());
                }
            }
        }
    }