You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
3.0 KiB
84 lines
3.0 KiB
using System;
|
|
using UnityEngine;
|
|
|
|
namespace FidelityFX
|
|
{
|
|
/// <summary>
|
|
/// All the compute shaders used by the FidelityFX Super Resolution 3 (FSR3) Upscaler.
|
|
/// </summary>
|
|
[Serializable]
|
|
public class Fsr3UpscalerShaders: ScriptableObject
|
|
{
|
|
/// <summary>
|
|
/// The compute shader used by the luminance pyramid computation pass.
|
|
/// </summary>
|
|
public ComputeShader computeLuminancePyramidPass;
|
|
|
|
/// <summary>
|
|
/// The compute shader used by the previous depth reconstruction pass.
|
|
/// </summary>
|
|
public ComputeShader reconstructPreviousDepthPass;
|
|
|
|
/// <summary>
|
|
/// The compute shader used by the depth clip pass.
|
|
/// </summary>
|
|
public ComputeShader depthClipPass;
|
|
|
|
/// <summary>
|
|
/// The compute shader used by the lock pass.
|
|
/// </summary>
|
|
public ComputeShader lockPass;
|
|
|
|
/// <summary>
|
|
/// The compute shader used by the accumulation pass.
|
|
/// </summary>
|
|
public ComputeShader accumulatePass;
|
|
|
|
/// <summary>
|
|
/// The compute shader used by the RCAS sharpening pass.
|
|
/// </summary>
|
|
public ComputeShader sharpenPass;
|
|
|
|
/// <summary>
|
|
/// The compute shader used to auto-generate a reactive mask.
|
|
/// </summary>
|
|
public ComputeShader autoGenReactivePass;
|
|
|
|
/// <summary>
|
|
/// The compute shader used to auto-generate a transparency & composition mask.
|
|
/// </summary>
|
|
public ComputeShader tcrAutoGenPass;
|
|
|
|
/// <summary>
|
|
/// Returns a copy of this class and its contents.
|
|
/// </summary>
|
|
public Fsr3UpscalerShaders Clone()
|
|
{
|
|
return (Fsr3UpscalerShaders)MemberwiseClone();
|
|
}
|
|
|
|
#if UNITY_EDITOR
|
|
private void Reset()
|
|
{
|
|
computeLuminancePyramidPass = FindComputeShader("ffx_fsr3upscaler_compute_luminance_pyramid_pass");
|
|
reconstructPreviousDepthPass = FindComputeShader("ffx_fsr3upscaler_reconstruct_previous_depth_pass");
|
|
depthClipPass = FindComputeShader("ffx_fsr3upscaler_depth_clip_pass");
|
|
lockPass = FindComputeShader("ffx_fsr3upscaler_lock_pass");
|
|
accumulatePass = FindComputeShader("ffx_fsr3upscaler_accumulate_pass");
|
|
sharpenPass = FindComputeShader("ffx_fsr3upscaler_rcas_pass");
|
|
autoGenReactivePass = FindComputeShader("ffx_fsr3upscaler_autogen_reactive_pass");
|
|
tcrAutoGenPass = FindComputeShader("ffx_fsr3upscaler_tcr_autogen_pass");
|
|
}
|
|
|
|
private static ComputeShader FindComputeShader(string name)
|
|
{
|
|
string[] assetGuids = UnityEditor.AssetDatabase.FindAssets($"t:ComputeShader {name}");
|
|
if (assetGuids == null || assetGuids.Length == 0)
|
|
return null;
|
|
|
|
string assetPath = UnityEditor.AssetDatabase.GUIDToAssetPath(assetGuids[0]);
|
|
return UnityEditor.AssetDatabase.LoadAssetAtPath<ComputeShader>(assetPath);
|
|
}
|
|
#endif
|
|
}
|
|
}
|