static void Drawer_SectionLightingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).currentPlatformRenderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); var area = OverridableFrameSettingsArea.GetGroupContent(1, defaultFrameSettings, serialized); area.AmmendInfo(FrameSettingsField.Shadowmask, overrideable: () => hdrpSettings.supportShadowMask); area.AmmendInfo(FrameSettingsField.SSR, overrideable: () => hdrpSettings.supportSSR); area.AmmendInfo(FrameSettingsField.TransparentSSR, overrideable: () => (hdrpSettings.supportSSR && hdrpSettings.supportSSRTransparent)); area.AmmendInfo(FrameSettingsField.SSAO, overrideable: () => hdrpSettings.supportSSAO); // SSS area.AmmendInfo( FrameSettingsField.SubsurfaceScattering, overridedDefaultValue: hdrpSettings.supportSubsurfaceScattering, overrideable: () => hdrpSettings.supportSubsurfaceScattering ); area.AmmendInfo( FrameSettingsField.SssQualityMode, overridedDefaultValue: SssQualityMode.FromQualitySettings, customGetter: () => serialized.sssQualityMode.GetEnumValue <SssQualityMode>(), customSetter: v => serialized.sssQualityMode.SetEnumValue((SssQualityMode)v), customOverrideable: () => hdrpSettings.supportSubsurfaceScattering && (serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false), hasMixedValues: serialized.sssQualityMode.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.SssQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.sssQualityLevel.intValue, // 3 levels customSetter: v => serialized.sssQualityLevel.intValue = Math.Max(0, Math.Min((int)v, 2)), // Levels 0-2 customOverrideable: () => hdrpSettings.supportSubsurfaceScattering && (serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false) && (serialized.sssQualityMode.GetEnumValue <SssQualityMode>() == SssQualityMode.FromQualitySettings), hasMixedValues: serialized.sssQualityLevel.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.SssCustomSampleBudget, overridedDefaultValue: (int)DefaultSssSampleBudgetForQualityLevel.Low, customGetter: () => serialized.sssCustomSampleBudget.intValue, customSetter: v => serialized.sssCustomSampleBudget.intValue = Math.Max(1, Math.Min((int)v, (int)DefaultSssSampleBudgetForQualityLevel.Max)), customOverrideable: () => hdrpSettings.supportSubsurfaceScattering && (serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false) && (serialized.sssQualityMode.GetEnumValue <SssQualityMode>() != SssQualityMode.FromQualitySettings), hasMixedValues: serialized.sssCustomSampleBudget.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.Volumetrics, overrideable: () => hdrpSettings.supportVolumetrics); area.AmmendInfo(FrameSettingsField.ReprojectionForVolumetrics, overrideable: () => hdrpSettings.supportVolumetrics); area.AmmendInfo(FrameSettingsField.LightLayers, overrideable: () => hdrpSettings.supportLightLayers); area.AmmendInfo(FrameSettingsField.ProbeVolume, overrideable: () => hdrpSettings.supportProbeVolume); area.AmmendInfo(FrameSettingsField.ScreenSpaceShadows, overrideable: () => hdrpSettings.hdShadowInitParams.supportScreenSpaceShadows); area.Draw(withOverride); }
static internal void Drawer_SectionLightingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { bool isGUIenabled = GUI.enabled; FrameSettings? defaultFrameSettings = GetDefaultFrameSettingsFor(owner); var hdrpAsset = GetHDRPAssetFor(owner); RenderPipelineSettings qualityLevelSettings = hdrpAsset?.currentPlatformRenderPipelineSettings ?? default; var area = OverridableFrameSettingsArea.GetGroupContent(1, defaultFrameSettings, serialized); area.AmmendInfo(FrameSettingsField.Volumetrics, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.ReprojectionForVolumetrics, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.TransparentSSR, ignoreDependencies: true); //TODO: Remove hideUI when out of experimental. I don't like hideUI it make things more difficult to add a FrameSettings at a given position. // This should not be used except for experimental stuff (it is not compliant with the remaining of UX flows anyway) area.AmmendInfo(FrameSettingsField.ProbeVolume, hideInUI: !HDRenderPipelineGlobalSettings.Ensure().supportProbeVolumes); area.AmmendInfo(FrameSettingsField.NormalizeReflectionProbeWithProbeVolume, hideInUI: !HDRenderPipelineGlobalSettings.Ensure().supportProbeVolumes); area.AmmendInfo( FrameSettingsField.SssQualityMode, overridedDefaultValue: SssQualityMode.FromQualitySettings, customGetter: () => serialized.sssQualityMode.GetEnumValue <SssQualityMode>(), customSetter: v => serialized.sssQualityMode.SetEnumValue((SssQualityMode)v), overrideable: () => serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false, ignoreDependencies: true, hasMixedValues: serialized.sssQualityMode.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.SssQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.sssQualityLevel.intValue, // 3 levels customSetter: v => serialized.sssQualityLevel.intValue = Math.Max(0, Math.Min((int)v, 2)), // Levels 0-2 overrideable: () => (serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false) && (serialized.sssQualityMode.GetEnumValue <SssQualityMode>() == SssQualityMode.FromQualitySettings), ignoreDependencies: true, hasMixedValues: serialized.sssQualityLevel.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.SssCustomSampleBudget, overridedDefaultValue: (int)DefaultSssSampleBudgetForQualityLevel.Low, customGetter: () => serialized.sssCustomSampleBudget.intValue, customSetter: v => serialized.sssCustomSampleBudget.intValue = Math.Max(1, Math.Min((int)v, (int)DefaultSssSampleBudgetForQualityLevel.Max)), overrideable: () => (serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false) && (serialized.sssQualityMode.GetEnumValue <SssQualityMode>() != SssQualityMode.FromQualitySettings), ignoreDependencies: true, hasMixedValues: serialized.sssCustomSampleBudget.hasMultipleDifferentValues ); area.Draw(withOverride); GUI.enabled = isGUIenabled; }
static void Drawer_SectionLightingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).currentPlatformRenderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); var area = OverridableFrameSettingsArea.GetGroupContent(1, defaultFrameSettings, serialized); area.AmmendInfo(FrameSettingsField.ShadowMask, overrideable: () => hdrpSettings.supportShadowMask); area.AmmendInfo(FrameSettingsField.SSR, overrideable: () => hdrpSettings.supportSSR); area.AmmendInfo(FrameSettingsField.SSAO, overrideable: () => hdrpSettings.supportSSAO); area.AmmendInfo(FrameSettingsField.SubsurfaceScattering, overrideable: () => hdrpSettings.supportSubsurfaceScattering); area.AmmendInfo(FrameSettingsField.Volumetrics, overrideable: () => hdrpSettings.supportVolumetrics); area.AmmendInfo(FrameSettingsField.ReprojectionForVolumetrics, overrideable: () => hdrpSettings.supportVolumetrics); area.AmmendInfo(FrameSettingsField.LightLayers, overrideable: () => hdrpSettings.supportLightLayers); area.Draw(withOverride); }
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { // RTAO CopySetting(ref m_RayLength, settings.lightingQualitySettings.RTAORayLength[level]); CopySetting(ref m_SampleCount, settings.lightingQualitySettings.RTAOSampleCount[level]); CopySetting(ref m_Denoise, settings.lightingQualitySettings.RTAODenoise[level]); CopySetting(ref m_DenoiserRadius, settings.lightingQualitySettings.RTAODenoiserRadius[level]); // SSAO CopySetting(ref m_MaximumRadiusInPixels, settings.lightingQualitySettings.AOMaximumRadiusPixels[level]); CopySetting(ref m_FullResolution, settings.lightingQualitySettings.AOFullRes[level]); CopySetting(ref m_StepCount, settings.lightingQualitySettings.AOStepCount[level]); CopySetting(ref m_DirectionCount, settings.lightingQualitySettings.AODirectionCount[level]); CopySetting(ref m_BilateralUpsample, settings.lightingQualitySettings.AOBilateralUpsample[level]); }
static void Drawer_SectionRenderingPasses(SerializedFrameSettings serialized, Editor owner, bool withOverride) { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).renderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); OverridableSettingsArea area = new OverridableSettingsArea(8); area.Add(serialized.enableTransparentPrepass, transparentPrepassContent, () => serialized.overridesTransparentPrepass, a => serialized.overridesTransparentPrepass = a, defaultValue: defaultFrameSettings.enableTransparentPrepass); area.Add(serialized.enableTransparentPostpass, transparentPostpassContent, () => serialized.overridesTransparentPostpass, a => serialized.overridesTransparentPostpass = a, defaultValue: defaultFrameSettings.enableTransparentPostpass); area.Add(serialized.enableMotionVectors, motionVectorContent, () => serialized.overridesMotionVectors, a => serialized.overridesMotionVectors = a, () => hdrpSettings.supportMotionVectors, defaultValue: defaultFrameSettings.enableMotionVectors); area.Add(serialized.enableObjectMotionVectors, objectMotionVectorsContent, () => serialized.overridesObjectMotionVectors, a => serialized.overridesObjectMotionVectors = a, () => hdrpSettings.supportMotionVectors && serialized.enableMotionVectors.boolValue, defaultValue: defaultFrameSettings.enableObjectMotionVectors, indent: 1); area.Add(serialized.enableDecals, decalsContent, () => serialized.overridesDecals, a => serialized.overridesDecals = a, () => hdrpSettings.supportDecals, defaultValue: defaultFrameSettings.enableDecals); area.Add(serialized.enableRoughRefraction, roughRefractionContent, () => serialized.overridesRoughRefraction, a => serialized.overridesRoughRefraction = a, defaultValue: defaultFrameSettings.enableRoughRefraction); area.Add(serialized.enableDistortion, distortionContent, () => serialized.overridesDistortion, a => serialized.overridesDistortion = a, () => hdrpSettings.supportDistortion, defaultValue: defaultFrameSettings.enableDistortion); area.Add(serialized.enablePostprocess, postprocessContent, () => serialized.overridesPostprocess, a => serialized.overridesPostprocess = a, defaultValue: defaultFrameSettings.enablePostprocess); area.Draw(withOverride); }
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { // RTGI CopySetting(ref m_RayLength, settings.lightingQualitySettings.RTGIRayLength[level]); CopySetting(ref m_ClampValue, settings.lightingQualitySettings.RTGIClampValue[level]); CopySetting(ref m_FullResolution, settings.lightingQualitySettings.RTGIFullResolution[level]); CopySetting(ref m_UpscaleRadius, settings.lightingQualitySettings.RTGIUpScaleRadius[level]); CopySetting(ref m_Denoise, settings.lightingQualitySettings.RTGIDenoise[level]); CopySetting(ref m_HalfResolutionDenoiser, settings.lightingQualitySettings.RTGIHalfResDenoise[level]); CopySetting(ref m_DenoiserRadius, settings.lightingQualitySettings.RTGIDenoiserRadius[level]); CopySetting(ref m_SecondDenoiserPass, settings.lightingQualitySettings.RTGISecondDenoise[level]); // SSGI CopySetting(ref m_RaySteps, settings.lightingQualitySettings.SSGIRaySteps[level]); CopySetting(ref m_FilterRadius, settings.lightingQualitySettings.SSGIFilterRadius[level]); }
static void Drawer_SectionRenderingSettings(FrameSettingsUI s, SerializedFrameSettings p, Editor owner, bool withOverride) { //disable temporarily as FrameSettings are not supported for Baked probe at the moment using (new EditorGUI.DisabledScope((owner is HDProbeEditor) && (owner as HDProbeEditor).GetTarget(owner.target).mode != ReflectionProbeMode.Realtime || (owner is HDRenderPipelineEditor) && HDRenderPipelineUI.selectedFrameSettings == HDRenderPipelineUI.SelectedFrameSettings.BakedOrCustomReflection)) { RenderPipelineSettings hdrpSettings = (GraphicsSettings.renderPipelineAsset as HDRenderPipelineAsset).renderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); OverridableSettingsArea area = new OverridableSettingsArea(6); LitShaderMode defaultShaderLitMode; switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: defaultShaderLitMode = LitShaderMode.Forward; break; case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: defaultShaderLitMode = LitShaderMode.Deferred; break; case RenderPipelineSettings.SupportedLitShaderMode.Both: defaultShaderLitMode = defaultFrameSettings.shaderLitMode; break; default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } area.Add(p.litShaderMode, litShaderModeContent, () => p.overridesShaderLitMode, a => p.overridesShaderLitMode = a, () => !GL.wireframe && hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.Both, defaultValue: defaultShaderLitMode); bool assetAllowMSAA = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly && hdrpSettings.supportMSAA; bool frameSettingsAllowMSAA = p.litShaderMode.enumValueIndex == (int)LitShaderMode.Forward && p.overridesShaderLitMode || !p.overridesShaderLitMode && defaultShaderLitMode == LitShaderMode.Forward; area.Add(p.enableMSAA, msaaContent, () => p.overridesMSAA, a => p.overridesMSAA = a, () => !GL.wireframe && assetAllowMSAA && frameSettingsAllowMSAA, defaultValue: defaultFrameSettings.enableMSAA && hdrpSettings.supportMSAA && !GL.wireframe && (hdrpSettings.supportedLitShaderMode & RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly) != 0 && (p.overridesShaderLitMode && p.litShaderMode.enumValueIndex == (int)LitShaderMode.Forward || !p.overridesShaderLitMode && defaultFrameSettings.shaderLitMode == (int)LitShaderMode.Forward)); area.Add(p.enableDepthPrepassWithDeferredRendering, depthPrepassWithDeferredRenderingContent, () => p.overridesDepthPrepassWithDeferredRendering, a => p.overridesDepthPrepassWithDeferredRendering = a, () => (defaultFrameSettings.shaderLitMode == LitShaderMode.Deferred && !p.overridesShaderLitMode || p.overridesShaderLitMode && p.litShaderMode.enumValueIndex == (int)LitShaderMode.Deferred) && (hdrpSettings.supportedLitShaderMode & RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly) != 0, defaultValue: defaultFrameSettings.enableDepthPrepassWithDeferredRendering && (hdrpSettings.supportedLitShaderMode & RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly) != 0 && p.litShaderMode.enumValueIndex == (int)LitShaderMode.Deferred); area.Add(p.enableAsyncCompute, asyncComputeContent, () => p.overridesAsyncCompute, a => p.overridesAsyncCompute = a, () => SystemInfo.supportsAsyncCompute, defaultValue: defaultFrameSettings.enableAsyncCompute); area.Add(p.enableOpaqueObjects, opaqueObjectsContent, () => p.overridesOpaqueObjects, a => p.overridesOpaqueObjects = a, defaultValue: defaultFrameSettings.enableOpaqueObjects); area.Add(p.enableTransparentObjects, transparentObjectsContent, () => p.overridesTransparentObjects, a => p.overridesTransparentObjects = a, defaultValue: defaultFrameSettings.enableTransparentObjects); area.Add(p.enableRealtimePlanarReflection, realtimePlanarReflectionContent, () => p.overridesRealtimePlanarReflection, a => p.overridesRealtimePlanarReflection = a, defaultValue: defaultFrameSettings.enableRealtimePlanarReflection); area.Draw(withOverride); } }
static internal void Drawer_SectionLightingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { bool isGUIenabled = GUI.enabled; FrameSettings? defaultFrameSettings = GetDefaultFrameSettingsFor(owner); var hdrpAsset = GetHDRPAssetFor(owner); RenderPipelineSettings qualityLevelSettings = hdrpAsset?.currentPlatformRenderPipelineSettings ?? default; var area = OverridableFrameSettingsArea.GetGroupContent(1, defaultFrameSettings, serialized); area.AmmendInfo(FrameSettingsField.Volumetrics, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.ReprojectionForVolumetrics, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.TransparentSSR, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.ProbeVolume, hideInUI: !HDRenderPipelineGlobalSettings.Ensure().supportProbeVolumes); area.AmmendInfo( FrameSettingsField.SssQualityMode, overridedDefaultValue: SssQualityMode.FromQualitySettings, customGetter: () => serialized.sssQualityMode.GetEnumValue <SssQualityMode>(), customSetter: v => serialized.sssQualityMode.SetEnumValue((SssQualityMode)v), overrideable: () => serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false, ignoreDependencies: true, hasMixedValues: serialized.sssQualityMode.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.SssQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.sssQualityLevel.intValue, // 3 levels customSetter: v => serialized.sssQualityLevel.intValue = Math.Max(0, Math.Min((int)v, 2)), // Levels 0-2 overrideable: () => (serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false) && (serialized.sssQualityMode.GetEnumValue <SssQualityMode>() == SssQualityMode.FromQualitySettings), ignoreDependencies: true, hasMixedValues: serialized.sssQualityLevel.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.SssCustomSampleBudget, overridedDefaultValue: (int)DefaultSssSampleBudgetForQualityLevel.Low, customGetter: () => serialized.sssCustomSampleBudget.intValue, customSetter: v => serialized.sssCustomSampleBudget.intValue = Math.Max(1, Math.Min((int)v, (int)DefaultSssSampleBudgetForQualityLevel.Max)), overrideable: () => (serialized.IsEnabled(FrameSettingsField.SubsurfaceScattering) ?? false) && (serialized.sssQualityMode.GetEnumValue <SssQualityMode>() != SssQualityMode.FromQualitySettings), ignoreDependencies: true, hasMixedValues: serialized.sssCustomSampleBudget.hasMultipleDifferentValues ); area.Draw(withOverride); GUI.enabled = isGUIenabled; }
static void Drawer_SectionRenderingSettings(FrameSettingsUI s, SerializedFrameSettings p, Editor owner, bool withOverride) { //disable temporarily as FrameSettings are not supported for Baked probe at the moment using (new EditorGUI.DisabledScope((owner is HDProbeEditor) && (owner as HDProbeEditor).GetTarget(owner.target).mode != ReflectionProbeMode.Realtime || (owner is HDRenderPipelineEditor) && HDRenderPipelineUI.selectedFrameSettings == HDRenderPipelineUI.SelectedFrameSettings.BakedOrCustomReflection)) { RenderPipelineSettings hdrpSettings = (GraphicsSettings.renderPipelineAsset as HDRenderPipelineAsset).renderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); OverridableSettingsArea area = new OverridableSettingsArea(6); area.Add(p.enableForwardRenderingOnly, forwardRenderingOnlyContent, () => p.overridesForwardRenderingOnly, a => p.overridesForwardRenderingOnly = a, () => !GL.wireframe && !hdrpSettings.supportOnlyForward, defaultValue: defaultFrameSettings.enableForwardRenderingOnly || hdrpSettings.supportOnlyForward); area.Add(p.enableMSAA, msaaContent, () => p.overridesMSAA, a => p.overridesMSAA = a, () => hdrpSettings.supportMSAA && (p.enableForwardRenderingOnly.boolValue || (GL.wireframe || hdrpSettings.supportOnlyForward) && (defaultFrameSettings.enableForwardRenderingOnly || hdrpSettings.supportOnlyForward)), defaultValue: defaultFrameSettings.enableMSAA && hdrpSettings.supportMSAA && !GL.wireframe && !hdrpSettings.supportOnlyForward && p.enableForwardRenderingOnly.boolValue, indent: 1); area.Add(p.enableDepthPrepassWithDeferredRendering, depthPrepassWithDeferredRenderingContent, () => p.overridesDepthPrepassWithDeferredRendering, a => p.overridesDepthPrepassWithDeferredRendering = a, () => (!defaultFrameSettings.enableForwardRenderingOnly && !p.overridesForwardRenderingOnly || p.overridesForwardRenderingOnly && !p.enableForwardRenderingOnly.boolValue) && !hdrpSettings.supportOnlyForward, defaultValue: defaultFrameSettings.enableDepthPrepassWithDeferredRendering && !hdrpSettings.supportOnlyForward && !p.enableForwardRenderingOnly.boolValue); area.Add(p.enableAsyncCompute, asyncComputeContent, () => p.overridesAsyncCompute, a => p.overridesAsyncCompute = a, () => SystemInfo.supportsAsyncCompute, defaultValue: defaultFrameSettings.enableAsyncCompute); area.Add(p.enableOpaqueObjects, opaqueObjectsContent, () => p.overridesOpaqueObjects, a => p.overridesOpaqueObjects = a, defaultValue: defaultFrameSettings.enableOpaqueObjects); area.Add(p.enableTransparentObjects, transparentObjectsContent, () => p.overridesTransparentObjects, a => p.overridesTransparentObjects = a, defaultValue: defaultFrameSettings.enableTransparentObjects); area.Add(p.enableRealtimePlanarReflection, realtimePlanarReflectionContent, () => p.overridesRealtimePlanarReflection, a => p.overridesRealtimePlanarReflection = a, defaultValue: defaultFrameSettings.enableRealtimePlanarReflection); area.Draw(withOverride); } }
public static void SendDefaultValuesEvent() { if (!EditorAnalytics.enabled) { return; } if (EditorAnalytics.RegisterEventWithLimit(k_DefaultsEventName, k_MaxEventsPerHour, k_MaxNumberOfElements, k_VendorKey) != AnalyticsResult.Ok) { return; } RenderPipelineSettings defaults = RenderPipelineSettings.NewDefault(); var data = new DefaultsEventData(AllSettings(defaults)); EditorAnalytics.SendEventWithLimit(k_DefaultsEventName, data); }
static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).renderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); OverridableSettingsArea area = new OverridableSettingsArea(6); LitShaderMode defaultShaderLitMode; switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: defaultShaderLitMode = LitShaderMode.Forward; break; case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: defaultShaderLitMode = LitShaderMode.Deferred; break; case RenderPipelineSettings.SupportedLitShaderMode.Both: defaultShaderLitMode = defaultFrameSettings.shaderLitMode; break; default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } area.Add(serialized.litShaderMode, litShaderModeContent, () => serialized.overridesShaderLitMode, a => serialized.overridesShaderLitMode = a, () => !GL.wireframe && hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.Both, defaultValue: defaultShaderLitMode); bool assetAllowMSAA = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly && hdrpSettings.supportMSAA; bool frameSettingsAllowMSAA = serialized.litShaderMode.enumValueIndex == (int)LitShaderMode.Forward && serialized.overridesShaderLitMode || !serialized.overridesShaderLitMode && defaultShaderLitMode == LitShaderMode.Forward; area.Add(serialized.enableMSAA, msaaContent, () => serialized.overridesMSAA, a => serialized.overridesMSAA = a, () => !GL.wireframe && assetAllowMSAA && frameSettingsAllowMSAA, defaultValue: defaultFrameSettings.enableMSAA && hdrpSettings.supportMSAA && !GL.wireframe && (hdrpSettings.supportedLitShaderMode & RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly) != 0 && (serialized.overridesShaderLitMode && serialized.litShaderMode.enumValueIndex == (int)LitShaderMode.Forward || !serialized.overridesShaderLitMode && defaultFrameSettings.shaderLitMode == (int)LitShaderMode.Forward)); area.Add(serialized.enableDepthPrepassWithDeferredRendering, depthPrepassWithDeferredRenderingContent, () => serialized.overridesDepthPrepassWithDeferredRendering, a => serialized.overridesDepthPrepassWithDeferredRendering = a, () => (defaultFrameSettings.shaderLitMode == LitShaderMode.Deferred && !serialized.overridesShaderLitMode || serialized.overridesShaderLitMode && serialized.litShaderMode.enumValueIndex == (int)LitShaderMode.Deferred) && (hdrpSettings.supportedLitShaderMode & RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly) != 0, defaultValue: defaultFrameSettings.enableDepthPrepassWithDeferredRendering && (hdrpSettings.supportedLitShaderMode & RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly) != 0 && serialized.litShaderMode.enumValueIndex == (int)LitShaderMode.Deferred); area.Add(serialized.enableOpaqueObjects, opaqueObjectsContent, () => serialized.overridesOpaqueObjects, a => serialized.overridesOpaqueObjects = a, defaultValue: defaultFrameSettings.enableOpaqueObjects); area.Add(serialized.enableTransparentObjects, transparentObjectsContent, () => serialized.overridesTransparentObjects, a => serialized.overridesTransparentObjects = a, defaultValue: defaultFrameSettings.enableTransparentObjects); area.Add(serialized.enableRealtimePlanarReflection, realtimePlanarReflectionContent, () => serialized.overridesRealtimePlanarReflection, a => serialized.overridesRealtimePlanarReflection = a, defaultValue: defaultFrameSettings.enableRealtimePlanarReflection); area.Draw(withOverride); }
static void Drawer_SectionRenderingPasses(FrameSettingsUI s, SerializedFrameSettings p, Editor owner, bool withOverride) { //disable temporarily as FrameSettings are not supported for Baked probe at the moment using (new EditorGUI.DisabledScope((owner is HDProbeEditor) && (owner as HDProbeEditor).GetTarget(owner.target).mode != ReflectionProbeMode.Realtime || (owner is HDRenderPipelineEditor) && HDRenderPipelineUI.selectedFrameSettings == HDRenderPipelineUI.SelectedFrameSettings.BakedOrCustomReflection)) { RenderPipelineSettings hdrpSettings = (GraphicsSettings.renderPipelineAsset as HDRenderPipelineAsset).renderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); OverridableSettingsArea area = new OverridableSettingsArea(8); area.Add(p.enableTransparentPrepass, transparentPrepassContent, () => p.overridesTransparentPrepass, a => p.overridesTransparentPrepass = a, defaultValue: defaultFrameSettings.enableTransparentPrepass); area.Add(p.enableTransparentPostpass, transparentPostpassContent, () => p.overridesTransparentPostpass, a => p.overridesTransparentPostpass = a, defaultValue: defaultFrameSettings.enableTransparentPostpass); area.Add(p.enableMotionVectors, motionVectorContent, () => p.overridesMotionVectors, a => p.overridesMotionVectors = a, () => hdrpSettings.supportMotionVectors, defaultValue: defaultFrameSettings.enableMotionVectors); area.Add(p.enableObjectMotionVectors, objectMotionVectorsContent, () => p.overridesObjectMotionVectors, a => p.overridesObjectMotionVectors = a, () => hdrpSettings.supportMotionVectors && p.enableMotionVectors.boolValue, defaultValue: defaultFrameSettings.enableObjectMotionVectors, indent: 1); area.Add(p.enableDecals, decalsContent, () => p.overridesDecals, a => p.overridesDecals = a, () => hdrpSettings.supportDecals, defaultValue: defaultFrameSettings.enableDecals); area.Add(p.enableRoughRefraction, roughRefractionContent, () => p.overridesRoughRefraction, a => p.overridesRoughRefraction = a, defaultValue: defaultFrameSettings.enableRoughRefraction); area.Add(p.enableDistortion, distortionContent, () => p.overridesDistortion, a => p.overridesDistortion = a, defaultValue: defaultFrameSettings.enableDistortion); area.Add(p.enablePostprocess, postprocessContent, () => p.overridesPostprocess, a => p.overridesPostprocess = a, defaultValue: defaultFrameSettings.enablePostprocess); area.Draw(withOverride); } }
static void Drawer_SectionLightingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).renderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); OverridableSettingsArea area = new OverridableSettingsArea(10); area.Add(serialized.enableShadow, shadowContent, () => serialized.overridesShadow, a => serialized.overridesShadow = a, defaultValue: defaultFrameSettings.enableShadow); area.Add(serialized.enableContactShadow, contactShadowContent, () => serialized.overridesContactShadow, a => serialized.overridesContactShadow = a, defaultValue: defaultFrameSettings.enableContactShadows); area.Add(serialized.enableShadowMask, shadowMaskContent, () => serialized.overridesShadowMask, a => serialized.overridesShadowMask = a, () => hdrpSettings.supportShadowMask, defaultValue: defaultFrameSettings.enableShadowMask); area.Add(serialized.enableSSR, ssrContent, () => serialized.overridesSSR, a => serialized.overridesSSR = a, () => hdrpSettings.supportSSR, defaultValue: defaultFrameSettings.enableSSR); area.Add(serialized.enableSSAO, ssaoContent, () => serialized.overridesSSAO, a => serialized.overridesSSAO = a, () => hdrpSettings.supportSSAO, defaultValue: defaultFrameSettings.enableSSAO); area.Add(serialized.enableSubsurfaceScattering, subsurfaceScatteringContent, () => serialized.overridesSubsurfaceScattering, a => serialized.overridesSubsurfaceScattering = a, () => hdrpSettings.supportSubsurfaceScattering, defaultValue: defaultFrameSettings.enableSubsurfaceScattering); area.Add(serialized.enableTransmission, transmissionContent, () => serialized.overridesTransmission, a => serialized.overridesTransmission = a, defaultValue: defaultFrameSettings.enableTransmission); area.Add(serialized.enableAtmosphericScattering, atmosphericScatteringContent, () => serialized.overridesAtmosphericScaterring, a => serialized.overridesAtmosphericScaterring = a, defaultValue: defaultFrameSettings.enableAtmosphericScattering); area.Add(serialized.enableVolumetrics, volumetricContent, () => serialized.overridesVolumetrics, a => serialized.overridesVolumetrics = a, () => hdrpSettings.supportVolumetrics && serialized.enableAtmosphericScattering.boolValue, defaultValue: defaultFrameSettings.enableAtmosphericScattering, indent: 1); area.Add(serialized.enableReprojectionForVolumetrics, reprojectionForVolumetricsContent, () => serialized.overridesProjectionForVolumetrics, a => serialized.overridesProjectionForVolumetrics = a, () => hdrpSettings.supportVolumetrics && serialized.enableAtmosphericScattering.boolValue, defaultValue: defaultFrameSettings.enableVolumetrics, indent: 1); area.Add(serialized.enableLightLayers, lightLayerContent, () => serialized.overridesLightLayers, a => serialized.overridesLightLayers = a, () => hdrpSettings.supportLightLayers, defaultValue: defaultFrameSettings.enableLightLayers); area.Draw(withOverride); }
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { // RTR if (HDRenderPipeline.pipelineSupportsRayTracing && m_RayTracing.overrideState.boolValue && m_RayTracing.value.boolValue) { CopySetting(ref m_MinSmoothness, settings.lightingQualitySettings.RTRMinSmoothness[level]); CopySetting(ref m_SmoothnessFadeStart, settings.lightingQualitySettings.RTRSmoothnessFadeStart[level]); CopySetting(ref m_RayLength, settings.lightingQualitySettings.RTRRayLength[level]); CopySetting(ref m_ClampValue, settings.lightingQualitySettings.RTRClampValue[level]); CopySetting(ref m_UpscaleRadius, settings.lightingQualitySettings.RTRUpScaleRadius[level]); CopySetting(ref m_FullResolution, settings.lightingQualitySettings.RTRFullResolution[level]); CopySetting(ref m_Denoise, settings.lightingQualitySettings.RTRDenoise[level]); CopySetting(ref m_DenoiserRadius, settings.lightingQualitySettings.RTRDenoiserRadius[level]); } // SSR else { CopySetting(ref m_RayMaxIterations, settings.lightingQualitySettings.SSRMaxRaySteps[level]); } }
static void Drawer_SectionLightingSettings(FrameSettingsUI s, SerializedFrameSettings p, Editor owner, bool withOverride) { //disable temporarily as FrameSettings are not supported for Baked probe at the moment using (new EditorGUI.DisabledScope((owner is HDProbeEditor) && (owner as HDProbeEditor).GetTarget(owner.target).mode != ReflectionProbeMode.Realtime || (owner is HDRenderPipelineEditor) && HDRenderPipelineUI.selectedFrameSettings == HDRenderPipelineUI.SelectedFrameSettings.BakedOrCustomReflection)) { RenderPipelineSettings hdrpSettings = (GraphicsSettings.renderPipelineAsset as HDRenderPipelineAsset).renderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); OverridableSettingsArea area = new OverridableSettingsArea(10); area.Add(p.enableShadow, shadowContent, () => p.overridesShadow, a => p.overridesShadow = a, defaultValue: defaultFrameSettings.enableShadow); area.Add(p.enableContactShadow, contactShadowContent, () => p.overridesContactShadow, a => p.overridesContactShadow = a, defaultValue: defaultFrameSettings.enableContactShadows); area.Add(p.enableShadowMask, shadowMaskContent, () => p.overridesShadowMask, a => p.overridesShadowMask = a, () => hdrpSettings.supportShadowMask, defaultValue: defaultFrameSettings.enableShadowMask); area.Add(p.enableSSR, ssrContent, () => p.overridesSSR, a => p.overridesSSR = a, () => hdrpSettings.supportSSR, defaultValue: defaultFrameSettings.enableSSR); area.Add(p.enableSSAO, ssaoContent, () => p.overridesSSAO, a => p.overridesSSAO = a, () => hdrpSettings.supportSSAO, defaultValue: defaultFrameSettings.enableSSAO); area.Add(p.enableSubsurfaceScattering, subsurfaceScatteringContent, () => p.overridesSubsurfaceScattering, a => p.overridesSubsurfaceScattering = a, () => hdrpSettings.supportSubsurfaceScattering, defaultValue: defaultFrameSettings.enableSubsurfaceScattering); area.Add(p.enableTransmission, transmissionContent, () => p.overridesTransmission, a => p.overridesTransmission = a, defaultValue: defaultFrameSettings.enableTransmission); area.Add(p.enableAtmosphericScattering, atmosphericScatteringContent, () => p.overridesAtmosphericScaterring, a => p.overridesAtmosphericScaterring = a, defaultValue: defaultFrameSettings.enableAtmosphericScattering); area.Add(p.enableVolumetrics, volumetricContent, () => p.overridesVolumetrics, a => p.overridesVolumetrics = a, () => hdrpSettings.supportVolumetrics && p.enableAtmosphericScattering.boolValue, defaultValue: defaultFrameSettings.enableAtmosphericScattering, indent: 1); area.Add(p.enableReprojectionForVolumetrics, reprojectionForVolumetricsContent, () => p.overridesProjectionForVolumetrics, a => p.overridesProjectionForVolumetrics = a, () => hdrpSettings.supportVolumetrics && p.enableAtmosphericScattering.boolValue, defaultValue: defaultFrameSettings.enableVolumetrics, indent: 1); area.Add(p.enableLightLayers, lightLayerContent, () => p.overridesLightLayers, a => p.overridesLightLayers = a, () => hdrpSettings.supportLightLayers, defaultValue: defaultFrameSettings.enableLightLayers); area.Draw(withOverride); } }
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { // RTR if (HDRenderPipeline.pipelineSupportsRayTracing && m_Tracing.overrideState.boolValue && m_Tracing.value.GetEnumValue <RayCastingMode>() != RayCastingMode.RayMarching) { CopySetting(ref m_MinSmoothness, settings.lightingQualitySettings.RTRMinSmoothness[level]); CopySetting(ref m_SmoothnessFadeStart, settings.lightingQualitySettings.RTRSmoothnessFadeStart[level]); CopySetting(ref m_RayLength, settings.lightingQualitySettings.RTRRayLength[level]); CopySetting(ref m_ClampValue, settings.lightingQualitySettings.RTRClampValue[level]); CopySetting(ref m_FullResolution, settings.lightingQualitySettings.RTRFullResolution[level]); CopySetting(ref m_RayMaxIterationsRT, settings.lightingQualitySettings.RTRRayMaxIterations[level]); CopySetting(ref m_Denoise, settings.lightingQualitySettings.RTRDenoise[level]); CopySetting(ref m_DenoiserRadius, settings.lightingQualitySettings.RTRDenoiserRadius[level]); CopySetting(ref m_AffectsSmoothSurfaces, settings.lightingQualitySettings.RTRSmoothDenoising[level]); } // SSR else { CopySetting(ref m_RayMaxIterations, settings.lightingQualitySettings.SSRMaxRaySteps[level]); } }
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { if (HDRenderPipeline.pipelineSupportsRayTracing && m_Tracing.overrideState.boolValue && m_Tracing.value.GetEnumValue <RayCastingMode>() != RayCastingMode.RayMarching) { // RTGI CopySetting(ref m_RayLength, settings.lightingQualitySettings.RTGIRayLength[level]); CopySetting(ref m_ClampValue, settings.lightingQualitySettings.RTGIClampValue[level]); CopySetting(ref m_FullResolution, settings.lightingQualitySettings.RTGIFullResolution[level]); CopySetting(ref m_UpscaleRadius, settings.lightingQualitySettings.RTGIUpScaleRadius[level]); CopySetting(ref m_MaxMixedRaySteps, settings.lightingQualitySettings.RTGIRaySteps[level]); CopySetting(ref m_Denoise, settings.lightingQualitySettings.RTGIDenoise[level]); CopySetting(ref m_HalfResolutionDenoiser, settings.lightingQualitySettings.RTGIHalfResDenoise[level]); CopySetting(ref m_DenoiserRadius, settings.lightingQualitySettings.RTGIDenoiserRadius[level]); CopySetting(ref m_SecondDenoiserPass, settings.lightingQualitySettings.RTGISecondDenoise[level]); } else { // SSGI CopySetting(ref m_RaySteps, settings.lightingQualitySettings.SSGIRaySteps[level]); CopySetting(ref m_FilterRadius, settings.lightingQualitySettings.SSGIFilterRadius[level]); } }
//separated to add enum popup on default frame settings internal static CED.IDrawer InspectorInnerbox(bool withOverride = true) => CED.Group( CED.FoldoutGroup(renderingSettingsHeaderContent, Expandable.RenderingPasses, k_ExpandedState, FoldoutOption.Indent | FoldoutOption.Boxed, CED.Group(206, (serialized, owner) => Drawer_SectionRenderingSettings(serialized, owner, withOverride)) ), CED.FoldoutGroup(lightSettingsHeaderContent, Expandable.LightingSettings, k_ExpandedState, FoldoutOption.Indent | FoldoutOption.Boxed, CED.Group(206, (serialized, owner) => Drawer_SectionLightingSettings(serialized, owner, withOverride)) ), CED.FoldoutGroup(asyncComputeSettingsHeaderContent, Expandable.AsynComputeSettings, k_ExpandedState, FoldoutOption.Indent | FoldoutOption.Boxed, CED.Group(206, (serialized, owner) => Drawer_SectionAsyncComputeSettings(serialized, owner, withOverride)) ), CED.FoldoutGroup(lightLoopSettingsHeaderContent, Expandable.LightLoop, k_ExpandedState, FoldoutOption.Indent | FoldoutOption.Boxed, CED.Group(206, (serialized, owner) => Drawer_SectionLightLoopSettings(serialized, owner, withOverride)) ), CED.Group((serialized, owner) => { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).currentPlatformRenderPipelineSettings; if (hdrpSettings.supportRayTracing) { if (serialized.IsEnabled(FrameSettingsField.AsyncCompute) ?? false) { EditorGUILayout.HelpBox("With Raytracing, the Asynchronous Execution will be forced to false", MessageType.Warning); } } }));
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { CopySetting(ref m_SampleCount, settings.postProcessQualitySettings.MotionBlurSampleCount[level]); }
// deactivate this test for template package making issue //[Test] public void FrameSettingsAggregation() { for (int i = 0; i < 10; ++i) { //init FrameSettings fs = default; FrameSettingsOverrideMask fso = default; FrameSettingsRenderType defaultFSType = RandomUtilities.RandomEnumValue <FrameSettingsRenderType>(i); FrameSettings defaultFS; FrameSettings result = FrameSettings.NewDefaultCamera(); FrameSettings tester = default; RenderPipelineSettings supportedFeatures = new RenderPipelineSettings(); switch (defaultFSType) { case FrameSettingsRenderType.Camera: defaultFS = FrameSettings.NewDefaultCamera(); break; case FrameSettingsRenderType.CustomOrBakedReflection: defaultFS = FrameSettings.NewDefaultCustomOrBakeReflectionProbe(); break; case FrameSettingsRenderType.RealtimeReflection: defaultFS = FrameSettings.NewDefaultRealtimeReflectionProbe(); break; default: throw new ArgumentException("Unknown FrameSettingsRenderType"); } //change randomly override values for (int j = 0; j < 10; ++j) { FrameSettingsField field = RandomUtilities.RandomEnumValue <FrameSettingsField>((i + 0.5f) * (j + 0.3f)); fs.SetEnabled(field, RandomUtilities.RandomBool((i + 1) * j)); fso.mask[(uint)field] = true; } //create and init gameobjects var go = new GameObject("TestObject"); m_ToClean = go; var cam = go.AddComponent <Camera>(); var add = cam.GetComponent <HDAdditionalCameraData>() ?? cam.gameObject.AddComponent <HDAdditionalCameraData>(); Assert.True(add != null && !add.Equals(null)); add.renderingPathCustomFrameSettings = fs; add.renderingPathCustomFrameSettingsOverrideMask = fso; add.defaultFrameSettings = defaultFSType; add.customRenderingSettings = true; //gather data two different ways FrameSettings.AggregateFrameSettings(ref result, cam, add, ref defaultFS, supportedFeatures); foreach (FrameSettingsField field in Enum.GetValues(typeof(FrameSettingsField))) { tester.SetEnabled(field, fso.mask[(uint)field] ? fs.IsEnabled(field) : defaultFS.IsEnabled(field)); } tester.lodBias = result.lodBias; tester.lodBiasMode = result.lodBiasMode; tester.maximumLODLevel = result.maximumLODLevel; tester.maximumLODLevelMode = result.maximumLODLevelMode; FrameSettings.Sanitize(ref tester, cam, supportedFeatures); //test Assert.AreEqual(result, tester); Object.DestroyImmediate(go); } }
static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).currentPlatformRenderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); var area = OverridableFrameSettingsArea.GetGroupContent(0, defaultFrameSettings, serialized); LitShaderMode defaultShaderLitMode; switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: defaultShaderLitMode = LitShaderMode.Forward; break; case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: defaultShaderLitMode = LitShaderMode.Deferred; break; case RenderPipelineSettings.SupportedLitShaderMode.Both: defaultShaderLitMode = defaultFrameSettings.litShaderMode; break; default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } area.AmmendInfo(FrameSettingsField.LitShaderMode, overrideable: () => hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.Both, overridedDefaultValue: defaultShaderLitMode); bool hdrpAssetSupportForward = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; bool hdrpAssetSupportDeferred = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly; bool frameSettingsOverrideToForward = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Forward; bool frameSettingsOverrideToDeferred = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Deferred; bool defaultForwardUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Forward; bool defaultDefferedUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Deferred; bool msaaEnablable = hdrpAssetSupportForward && hdrpSettings.supportMSAA && (frameSettingsOverrideToForward || defaultForwardUsed); bool depthPrepassEnablable = hdrpAssetSupportDeferred && (defaultDefferedUsed || frameSettingsOverrideToDeferred); area.AmmendInfo(FrameSettingsField.MSAA, overrideable: () => msaaEnablable, overridedDefaultValue: msaaEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.MSAA), customOverrideable: () => { switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: return(false); //negative dependency case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return(true); //negative dependency case RenderPipelineSettings.SupportedLitShaderMode.Both: return(!(frameSettingsOverrideToForward || defaultForwardUsed)); //negative dependency default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); area.AmmendInfo(FrameSettingsField.DepthPrepassWithDeferredRendering, overrideable: () => depthPrepassEnablable, overridedDefaultValue: depthPrepassEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.DepthPrepassWithDeferredRendering), customOverrideable: () => { switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: return(false); case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return(true); case RenderPipelineSettings.SupportedLitShaderMode.Both: return(frameSettingsOverrideToDeferred || defaultDefferedUsed); default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); area.AmmendInfo(FrameSettingsField.RayTracing, overrideable: () => hdrpSettings.supportRayTracing); area.AmmendInfo(FrameSettingsField.MotionVectors, overrideable: () => hdrpSettings.supportMotionVectors); area.AmmendInfo(FrameSettingsField.ObjectMotionVectors, overrideable: () => hdrpSettings.supportMotionVectors); area.AmmendInfo(FrameSettingsField.Decals, overrideable: () => hdrpSettings.supportDecals); area.AmmendInfo(FrameSettingsField.Distortion, overrideable: () => hdrpSettings.supportDistortion); area.AmmendInfo( FrameSettingsField.LODBiasMode, overridedDefaultValue: LODBiasMode.FromQualitySettings, customGetter: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>(), customSetter: v => serialized.lodBiasMode.SetEnumValue((LODBiasMode)v) ); area.AmmendInfo(FrameSettingsField.LODBiasQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.lodBiasQualityLevel.intValue, customSetter: v => serialized.lodBiasQualityLevel.intValue = (int)v, customOverrideable: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>() != LODBiasMode.OverrideQualitySettings); area.AmmendInfo(FrameSettingsField.LODBias, overridedDefaultValue: QualitySettings.lodBias, customGetter: () => serialized.lodBias.floatValue, customSetter: v => serialized.lodBias.floatValue = (float)v, customOverrideable: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>() != LODBiasMode.FromQualitySettings, labelOverride: serialized.lodBiasMode.GetEnumValue <LODBiasMode>() == LODBiasMode.ScaleQualitySettings ? "Scale Factor" : "LOD Bias"); area.AmmendInfo( FrameSettingsField.MaximumLODLevelMode, overridedDefaultValue: MaximumLODLevelMode.FromQualitySettings, customGetter: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>(), customSetter: v => serialized.maximumLODLevelMode.SetEnumValue((MaximumLODLevelMode)v) ); area.AmmendInfo(FrameSettingsField.MaximumLODLevelQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.maximumLODLevelQualityLevel.intValue, customSetter: v => serialized.maximumLODLevelQualityLevel.intValue = (int)v, customOverrideable: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() != MaximumLODLevelMode.OverrideQualitySettings); area.AmmendInfo(FrameSettingsField.MaximumLODLevel, overridedDefaultValue: QualitySettings.maximumLODLevel, customGetter: () => serialized.maximumLODLevel.intValue, customSetter: v => serialized.maximumLODLevel.intValue = (int)v, customOverrideable: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() != MaximumLODLevelMode.FromQualitySettings, labelOverride: serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() == MaximumLODLevelMode.OffsetQualitySettings ? "Offset Factor" : "Maximum LOD Level"); area.AmmendInfo(FrameSettingsField.MaterialQualityLevel, overridedDefaultValue: defaultFrameSettings.materialQuality.Into(), customGetter: () => ((MaterialQuality)serialized.materialQuality.intValue).Into(), customSetter: v => serialized.materialQuality.intValue = (int)((MaterialQualityMode)v).Into() ); area.Draw(withOverride); }
/// <summary> /// This function should be overriden by a volume component to load preset settings from RenderPipelineSettings /// </summary> public virtual void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { }
static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).currentPlatformRenderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); var area = OverridableFrameSettingsArea.GetGroupContent(0, defaultFrameSettings, serialized); LitShaderMode defaultShaderLitMode; switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: defaultShaderLitMode = LitShaderMode.Forward; break; case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: defaultShaderLitMode = LitShaderMode.Deferred; break; case RenderPipelineSettings.SupportedLitShaderMode.Both: defaultShaderLitMode = defaultFrameSettings.litShaderMode; break; default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } area.AmmendInfo(FrameSettingsField.LitShaderMode, overrideable: () => !GL.wireframe && hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.Both, overridedDefaultValue: defaultShaderLitMode); bool hdrpAssetSupportForward = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; bool hdrpAssetSupportDeferred = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly; bool frameSettingsOverrideToForward = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Forward; bool frameSettingsOverrideToDeferred = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Deferred; bool defaultForwardUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Forward; bool defaultDefferedUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Deferred; bool msaaEnablable = !GL.wireframe && hdrpAssetSupportForward && hdrpSettings.supportMSAA && (frameSettingsOverrideToForward || defaultForwardUsed); bool depthPrepassEnablable = hdrpAssetSupportDeferred && (defaultDefferedUsed || frameSettingsOverrideToDeferred); area.AmmendInfo(FrameSettingsField.MSAA, overrideable: () => msaaEnablable, overridedDefaultValue: msaaEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.MSAA), customOverrideable: () => { switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: return(false); //negative dependency case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return(true); //negative dependency case RenderPipelineSettings.SupportedLitShaderMode.Both: return(!(frameSettingsOverrideToForward || defaultForwardUsed)); //negative dependency default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); area.AmmendInfo(FrameSettingsField.DepthPrepassWithDeferredRendering, overrideable: () => depthPrepassEnablable, overridedDefaultValue: depthPrepassEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.DepthPrepassWithDeferredRendering), customOverrideable: () => { switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: return(false); case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return(true); case RenderPipelineSettings.SupportedLitShaderMode.Both: return(frameSettingsOverrideToDeferred || defaultDefferedUsed); default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); area.AmmendInfo(FrameSettingsField.MotionVectors, overrideable: () => hdrpSettings.supportMotionVectors); area.AmmendInfo(FrameSettingsField.ObjectMotionVectors, overrideable: () => hdrpSettings.supportMotionVectors); area.AmmendInfo(FrameSettingsField.Decals, overrideable: () => hdrpSettings.supportDecals); area.AmmendInfo(FrameSettingsField.Distortion, overrideable: () => hdrpSettings.supportDistortion); area.Draw(withOverride); }
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { CopySetting(ref m_MaxSamples, settings.postProcessQualitySettings.ChromaticAberrationMaxSamples[level]); }
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { CopySetting(ref m_SampleCount, settings.lightingQualitySettings.ContactShadowSampleCount[level]); }
static internal void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { bool isGUIenabled = GUI.enabled; FrameSettings?defaultFrameSettings = GetDefaultFrameSettingsFor(owner); var area = OverridableFrameSettingsArea.GetGroupContent(0, defaultFrameSettings, serialized); area.AmmendInfo(FrameSettingsField.DepthPrepassWithDeferredRendering, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.ClearGBuffers, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.MSAAMode, ignoreDependencies: true); area.AmmendInfo( FrameSettingsField.MSAAMode, overridedDefaultValue: defaultFrameSettings?.msaaMode ?? MSAAMode.FromHDRPAsset, customGetter: () => serialized.msaaMode.GetEnumValue <MSAAMode>(), customSetter: v => serialized.msaaMode.SetEnumValue((MSAAMode)v), hasMixedValues: serialized.msaaMode.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.DecalLayers, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.ObjectMotionVectors, ignoreDependencies: true); area.AmmendInfo(FrameSettingsField.TransparentsWriteMotionVector, ignoreDependencies: true); var hdrpAsset = GetHDRPAssetFor(owner); RenderPipelineSettings qualityLevelSettings = hdrpAsset?.currentPlatformRenderPipelineSettings ?? default; area.AmmendInfo( FrameSettingsField.LODBiasMode, overridedDefaultValue: LODBiasMode.FromQualitySettings, customGetter: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>(), customSetter: v => serialized.lodBiasMode.SetEnumValue((LODBiasMode)v), hasMixedValues: serialized.lodBiasMode.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.LODBiasQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.lodBiasQualityLevel.intValue, customSetter: v => serialized.lodBiasQualityLevel.intValue = (int)v, overrideable: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>() != LODBiasMode.OverrideQualitySettings, ignoreDependencies: true, hasMixedValues: serialized.lodBiasQualityLevel.hasMultipleDifferentValues); area.AmmendInfo(FrameSettingsField.LODBias, overridedDefaultValue: hdrpAsset ? qualityLevelSettings.lodBias[serialized.lodBiasQualityLevel.intValue] : 0, customGetter: () => serialized.lodBias.floatValue, customSetter: v => serialized.lodBias.floatValue = (float)v, overrideable: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>() != LODBiasMode.FromQualitySettings, ignoreDependencies: true, labelOverride: serialized.lodBiasMode.GetEnumValue <LODBiasMode>() == LODBiasMode.ScaleQualitySettings ? "Scale Factor" : "LOD Bias", hasMixedValues: serialized.lodBias.hasMultipleDifferentValues); area.AmmendInfo( FrameSettingsField.MaximumLODLevelMode, overridedDefaultValue: MaximumLODLevelMode.FromQualitySettings, customGetter: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>(), customSetter: v => serialized.maximumLODLevelMode.SetEnumValue((MaximumLODLevelMode)v), hasMixedValues: serialized.maximumLODLevelMode.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.MaximumLODLevelQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.maximumLODLevelQualityLevel.intValue, customSetter: v => serialized.maximumLODLevelQualityLevel.intValue = (int)v, overrideable: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() != MaximumLODLevelMode.OverrideQualitySettings, ignoreDependencies: true, hasMixedValues: serialized.maximumLODLevelQualityLevel.hasMultipleDifferentValues); area.AmmendInfo(FrameSettingsField.MaximumLODLevel, overridedDefaultValue: hdrpAsset ? qualityLevelSettings.maximumLODLevel[serialized.maximumLODLevelQualityLevel.intValue] : 0, customGetter: () => serialized.maximumLODLevel.intValue, customSetter: v => serialized.maximumLODLevel.intValue = (int)v, overrideable: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() != MaximumLODLevelMode.FromQualitySettings, ignoreDependencies: true, labelOverride: serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() == MaximumLODLevelMode.OffsetQualitySettings ? "Offset Factor" : "Maximum LOD Level", hasMixedValues: serialized.maximumLODLevel.hasMultipleDifferentValues); area.AmmendInfo(FrameSettingsField.MaterialQualityLevel, overridedDefaultValue: defaultFrameSettings?.materialQuality.Into() ?? MaterialQualityMode.Medium, customGetter: () => ((MaterialQuality)serialized.materialQuality.intValue).Into(), customSetter: v => serialized.materialQuality.intValue = (int)((MaterialQualityMode)v).Into(), hasMixedValues: serialized.materialQuality.hasMultipleDifferentValues ); area.Draw(withOverride); GUI.enabled = isGUIenabled; }
static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, Editor owner, bool withOverride) { RenderPipelineSettings hdrpSettings = GetHDRPAssetFor(owner).currentPlatformRenderPipelineSettings; FrameSettings defaultFrameSettings = GetDefaultFrameSettingsFor(owner); var area = OverridableFrameSettingsArea.GetGroupContent(0, defaultFrameSettings, serialized); var frameSettingType = owner is IDefaultFrameSettingsType getType?getType.GetFrameSettingsType() : FrameSettingsRenderType.Camera; LitShaderMode defaultShaderLitMode; switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: defaultShaderLitMode = LitShaderMode.Forward; break; case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: defaultShaderLitMode = LitShaderMode.Deferred; break; case RenderPipelineSettings.SupportedLitShaderMode.Both: defaultShaderLitMode = defaultFrameSettings.litShaderMode; break; default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } area.AmmendInfo(FrameSettingsField.LitShaderMode, overrideable: () => hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.Both, overridedDefaultValue: defaultShaderLitMode); bool hdrpAssetSupportForward = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; bool hdrpAssetSupportDeferred = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly; bool hdrpAssetIsForward = hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly; bool hdrpAssetIsDeferred = hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; bool frameSettingsOverrideToForward = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Forward; bool frameSettingsOverrideToDeferred = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Deferred; bool defaultForwardUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Forward; // Due to various reasons, MSAA and ray tracing are not compatible, if ray tracing is enabled on the asset. MSAA can not be enabled on the frame settings. bool msaaEnablable = hdrpSettings.supportMSAA && ((hdrpAssetSupportForward && (frameSettingsOverrideToForward || defaultForwardUsed)) || hdrpAssetIsForward) && !hdrpSettings.supportRayTracing; area.AmmendInfo(FrameSettingsField.MSAA, overrideable: () => msaaEnablable, overridedDefaultValue: msaaEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.MSAA), customOverrideable: () => { switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: return(false); //negative dependency case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return(true); //negative dependency case RenderPipelineSettings.SupportedLitShaderMode.Both: return(!(frameSettingsOverrideToForward || defaultForwardUsed)); //negative dependency default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); bool defaultDeferredUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Deferred; bool depthPrepassEnablable = (hdrpAssetSupportDeferred && (defaultDeferredUsed || frameSettingsOverrideToDeferred)) || (hdrpAssetIsDeferred); area.AmmendInfo(FrameSettingsField.DepthPrepassWithDeferredRendering, overrideable: () => depthPrepassEnablable, overridedDefaultValue: depthPrepassEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.DepthPrepassWithDeferredRendering), customOverrideable: () => { switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: return(false); case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return(true); case RenderPipelineSettings.SupportedLitShaderMode.Both: return(frameSettingsOverrideToDeferred || defaultDeferredUsed); default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); bool clearGBufferEnablable = (hdrpAssetSupportDeferred && (defaultDeferredUsed || frameSettingsOverrideToDeferred)) || (hdrpAssetIsDeferred); area.AmmendInfo(FrameSettingsField.ClearGBuffers, overrideable: () => clearGBufferEnablable, overridedDefaultValue: clearGBufferEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.ClearGBuffers), customOverrideable: () => { switch (hdrpSettings.supportedLitShaderMode) { case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: return(false); case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return(true); case RenderPipelineSettings.SupportedLitShaderMode.Both: return(frameSettingsOverrideToDeferred || defaultDeferredUsed); default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); area.AmmendInfo(FrameSettingsField.RayTracing, overrideable: () => hdrpSettings.supportRayTracing); #if !ENABLE_VIRTUALTEXTURES area.AmmendInfo(FrameSettingsField.VirtualTexturing, overrideable: () => false); #endif area.AmmendInfo(FrameSettingsField.MotionVectors, overrideable: () => hdrpSettings.supportMotionVectors); area.AmmendInfo(FrameSettingsField.ObjectMotionVectors, overrideable: () => hdrpSettings.supportMotionVectors); area.AmmendInfo(FrameSettingsField.TransparentsWriteMotionVector, overrideable: () => hdrpSettings.supportMotionVectors); area.AmmendInfo(FrameSettingsField.Decals, overrideable: () => hdrpSettings.supportDecals); area.AmmendInfo(FrameSettingsField.DecalLayers, overrideable: () => hdrpSettings.supportDecalLayers); area.AmmendInfo(FrameSettingsField.Distortion, overrideable: () => hdrpSettings.supportDistortion); area.AmmendInfo(FrameSettingsField.Postprocess, overrideable: () => (frameSettingType != FrameSettingsRenderType.CustomOrBakedReflection && frameSettingType != FrameSettingsRenderType.RealtimeReflection)); area.AmmendInfo( FrameSettingsField.LODBiasMode, overridedDefaultValue: LODBiasMode.FromQualitySettings, customGetter: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>(), customSetter: v => serialized.lodBiasMode.SetEnumValue((LODBiasMode)v), hasMixedValues: serialized.lodBiasMode.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.LODBiasQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.lodBiasQualityLevel.intValue, customSetter: v => serialized.lodBiasQualityLevel.intValue = (int)v, customOverrideable: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>() != LODBiasMode.OverrideQualitySettings, hasMixedValues: serialized.lodBiasQualityLevel.hasMultipleDifferentValues); area.AmmendInfo(FrameSettingsField.LODBias, overridedDefaultValue: QualitySettings.lodBias, customGetter: () => serialized.lodBias.floatValue, customSetter: v => serialized.lodBias.floatValue = (float)v, customOverrideable: () => serialized.lodBiasMode.GetEnumValue <LODBiasMode>() != LODBiasMode.FromQualitySettings, labelOverride: serialized.lodBiasMode.GetEnumValue <LODBiasMode>() == LODBiasMode.ScaleQualitySettings ? "Scale Factor" : "LOD Bias", hasMixedValues: serialized.lodBias.hasMultipleDifferentValues); area.AmmendInfo( FrameSettingsField.MaximumLODLevelMode, overridedDefaultValue: MaximumLODLevelMode.FromQualitySettings, customGetter: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>(), customSetter: v => serialized.maximumLODLevelMode.SetEnumValue((MaximumLODLevelMode)v), hasMixedValues: serialized.maximumLODLevelMode.hasMultipleDifferentValues ); area.AmmendInfo(FrameSettingsField.MaximumLODLevelQualityLevel, overridedDefaultValue: ScalableLevel3ForFrameSettingsUIOnly.Low, customGetter: () => (ScalableLevel3ForFrameSettingsUIOnly)serialized.maximumLODLevelQualityLevel.intValue, customSetter: v => serialized.maximumLODLevelQualityLevel.intValue = (int)v, customOverrideable: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() != MaximumLODLevelMode.OverrideQualitySettings, hasMixedValues: serialized.maximumLODLevelQualityLevel.hasMultipleDifferentValues); area.AmmendInfo(FrameSettingsField.MaximumLODLevel, overridedDefaultValue: QualitySettings.maximumLODLevel, customGetter: () => serialized.maximumLODLevel.intValue, customSetter: v => serialized.maximumLODLevel.intValue = (int)v, customOverrideable: () => serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() != MaximumLODLevelMode.FromQualitySettings, labelOverride: serialized.maximumLODLevelMode.GetEnumValue <MaximumLODLevelMode>() == MaximumLODLevelMode.OffsetQualitySettings ? "Offset Factor" : "Maximum LOD Level", hasMixedValues: serialized.maximumLODLevel.hasMultipleDifferentValues); area.AmmendInfo(FrameSettingsField.MaterialQualityLevel, overridedDefaultValue: defaultFrameSettings.materialQuality.Into(), customGetter: () => ((MaterialQuality)serialized.materialQuality.intValue).Into(), customSetter: v => serialized.materialQuality.intValue = (int)((MaterialQualityMode)v).Into(), hasMixedValues: serialized.materialQuality.hasMultipleDifferentValues ); area.Draw(withOverride); }
public override void LoadSettingsFromQualityPreset(RenderPipelineSettings settings, int level) { CopySetting(ref m_Resolution, (int)settings.postProcessQualitySettings.BloomRes[level]); CopySetting(ref m_HighQualityPrefiltering, settings.postProcessQualitySettings.BloomHighQualityPrefiltering[level]); CopySetting(ref m_HighQualityFiltering, settings.postProcessQualitySettings.BloomHighQualityFiltering[level]); }