Example #1
0
        private static void SetRendererOptions([NotNull] string acRoot, [NotNull] DarkKn5ObjectRenderer renderer, [NotNull] DarkPreviewsOptions options)
        {
            var showroomKn5 = GetShowroomKn5(acRoot, options.Showroom);

            if (showroomKn5 != renderer.CurrentShowroomKn5)
            {
                renderer.SetShowroom(showroomKn5);
            }

            // Obvious fixed settings
            renderer.AutoRotate           = false;
            renderer.AutoAdjustTarget     = false;
            renderer.AsyncTexturesLoading = false;

            // UI should be off!
            renderer.VisibleUi = false;

            // Size-related options
            renderer.Width  = (int)(options.PreviewWidth * options.SsaaMultiplier);
            renderer.Height = (int)(options.PreviewHeight * options.SsaaMultiplier);
            renderer.ResolutionMultiplier = 1d;
            renderer.UseFxaa         = options.UseFxaa;
            renderer.UseSmaa         = options.UseSmaa;
            renderer.UseMsaa         = options.UseMsaa;
            renderer.MsaaSampleCount = options.MsaaSampleCount;

            // Switches
            renderer.WireframeMode = options.WireframeMode ? WireframeMode.LinesOnly : WireframeMode.Disabled;
            renderer.MeshDebug     = options.MeshDebugMode;

            // Flat mirror
            renderer.AnyGround                 = options.AnyGround;
            renderer.FlatMirror                = options.FlatMirror;
            renderer.FlatMirrorBlurred         = options.FlatMirrorBlurred;
            renderer.FlatMirrorBlurMuiltiplier = (float)options.FlatMirrorBlurMuiltiplier;
            renderer.FlatMirrorReflectiveness  = (float)options.FlatMirrorReflectiveness;
            renderer.FlatMirrorReflectedLight  = options.FlatMirrorReflectedLight;

            // Cool effects
            renderer.CubemapAmbient      = options.CubemapAmbient;
            renderer.CubemapAmbientWhite = options.CubemapAmbientWhite;
            renderer.UseBloom            = options.UseBloom;
            renderer.EnableShadows       = options.EnableShadows;
            renderer.UsePcss             = options.UsePcss;
            renderer.ShadowMapSize       = options.ShadowMapSize;
            renderer.UseSslr             = options.UseSslr;
            renderer.UseAo  = options.UseAo;
            renderer.AoType = options.AoType;
            renderer.ReflectionCubemapAtCamera     = options.ReflectionCubemapAtCamera;
            renderer.ReflectionsWithShadows        = options.ReflectionsWithShadows;
            renderer.ReflectionsWithMultipleLights = options.ReflectionsWithMultipleLights;

            // Colors
            renderer.BackgroundColor = options.BackgroundColor;
            renderer.LightColor      = options.LightColor;
            renderer.AmbientUp       = options.AmbientUp;
            renderer.AmbientDown     = options.AmbientDown;

            // Brightnesses
            renderer.AmbientBrightness    = (float)options.AmbientBrightness;
            renderer.BackgroundBrightness = (float)options.BackgroundBrightness;
            renderer.LightBrightness      = (float)options.LightBrightness;
            renderer.Light = ToVector3(options.LightDirection);

            // Custom reflections
            renderer.UseCustomReflectionCubemap = options.UseCustomReflectionCubemap;
            renderer.CustomReflectionBrightness = (float)options.CustomReflectionBrightness;
            renderer.CustomReflectionCubemap    = options.CustomReflectionCubemapData;

            // Color
            renderer.ToneMapping      = options.ToneMapping;
            renderer.UseDither        = options.UseDither;
            renderer.UseColorGrading  = options.UseColorGrading;
            renderer.ToneExposure     = (float)options.ToneExposure;
            renderer.ToneGamma        = (float)options.ToneGamma;
            renderer.ToneWhitePoint   = (float)options.ToneWhitePoint;
            renderer.ColorGradingData = options.ColorGradingData;

            // Extra
            renderer.BloomRadiusMultiplier   = (float)(options.SsaaMultiplier * options.BloomRadiusMultiplier);
            renderer.MaterialsReflectiveness = (float)options.MaterialsReflectiveness;
            renderer.CarShadowsOpacity       = (float)options.CarShadowsOpacity;
            renderer.PcssLightScale          = (float)options.PcssLightScale;
            renderer.PcssSceneScale          = (float)options.PcssSceneScale;
            renderer.AoOpacity = (float)options.AoOpacity;
            renderer.AoRadius  = (float)options.AoRadius;

            // DOF
            renderer.UseDof                      = options.UseDof;
            renderer.DofFocusPlane               = (float)options.DofFocusPlane;
            renderer.DofScale                    = (float)options.DofScale;
            renderer.UseAccumulationDof          = options.UseAccumulationDof;
            renderer.AccumulationDofBokeh        = options.AccumulationDofBokeh;
            renderer.AccumulationDofIterations   = options.AccumulationDofIterations;
            renderer.AccumulationDofApertureSize = (float)options.AccumulationDofApertureSize;

            // Lights
            renderer.DeserializeLights(DarkLightTag.Extra, JArray.Parse(options.SerializedLights ?? @"[]").OfType <JObject>());
            renderer.TryToGuessCarLights = options.TryToGuessCarLights;
            renderer.LoadCarLights       = options.LoadCarLights;
            renderer.LoadShowroomLights  = options.LoadShowroomLights;
        }