2024-11-15 17:51:59 +08:00

60 lines
1.7 KiB
C#

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;
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();
}
}
}