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; }
private static void SetRendererOptions(DarkKn5ObjectRenderer renderer, DarkPreviewsOptions options) { // 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.ShowWireframe = options.WireframeMode; renderer.MeshDebug = options.MeshDebugMode; // Flat mirror renderer.FlatMirror = options.FlatMirror; renderer.FlatMirrorBlurred = options.FlatMirrorBlurred; renderer.FlatMirrorReflectiveness = (float)options.FlatMirrorReflectiveness; // 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; // 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); // Color renderer.ToneMapping = options.ToneMapping; 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.PcssLightScale = (float)options.PcssLightScale; renderer.PcssSceneScale = (float)options.PcssSceneScale; renderer.AoOpacity = (float)options.SsaoOpacity; // DOF renderer.UseDof = options.UseDof; renderer.DofFocusPlane = (float)options.DofFocusPlane; renderer.DofScale = (float)options.DofScale; renderer.UseAccumulationDof = options.UseAccumulationDof; renderer.AccumulationDofIterations = options.AccumulationDofIterations; renderer.AccumulationDofApertureSize = (float)options.AccumulationDofApertureSize; // Lights AcToolsLogging.Write(options.SerializedLights); renderer.DeserializeLights(DarkLightTag.Extra, JArray.Parse(options.SerializedLights ?? @"[]").OfType <JObject>()); }