using X.Rendering.Feature; namespace UnityEngine.Rendering.Universal { public partial class UniversalRenderPipelineAsset { [SerializeField] private ESuperResolution superResolution; [SerializeField] private ERenderScale sSRenderScale; public ERenderScale SSRenderScale => sSRenderScale; public ESuperResolution SuperResolution => superResolution; public RenderingPlugin.VRSPluginShadingRate VRSRate { get => vrsRate; set => vrsRate = value; } [SerializeField] private RenderingPlugin.VRSPluginShadingRate vrsRate; private void UpdateSSSettings() { var renderer = GetRenderer(this.m_DefaultRendererIndex); foreach (var item in renderer.rendererFeatures) { if (item is ISuperResolutionFeature isr) { isr.SetSR(superResolution); } } switch (sSRenderScale) { case ERenderScale.Factor1: this.renderScale = 1.0f; break; case ERenderScale.Factor09: this.renderScale = .9f; break; case ERenderScale.Factor08: this.renderScale = .8f; break; case ERenderScale.Factor075: this.renderScale = .75f; break; case ERenderScale.Factor06: this.renderScale = .6f; break; case ERenderScale.Factor05: this.renderScale = .5f; break; default: break; } } protected override void OnValidate() { base.OnValidate(); UpdateSSSettings(); } } }