2024-12-17 19:03:29 +08:00

55 lines
1.5 KiB
C#

using X.Rendering.Feature;
namespace UnityEngine.Rendering.Universal
{
public partial class UniversalRenderPipelineAsset
{
[SerializeField]
private ESuperResolution superResolution;
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);
var renderScale = 1.0f;
bool hasActive = false;
foreach (var item in renderer.rendererFeatures)
{
if (item is ISuperResolutionFeature isr)
{
isr.SetSR(superResolution);
if (item.isActive)
{
renderScale = isr.GetRenderScale();
hasActive = true;
}
}
}
if (!hasActive)
{
superResolution = ESuperResolution.None;
SuperResolutionParamSets.Instance.Set<bool>("NeedJitter", false);
}
else
{
this.renderScale = renderScale;
}
}
protected override void OnValidate()
{
base.OnValidate();
RenderingPlugin.InitSupportFeatures();
UpdateSSSettings();
}
}
}