using UnityEngine;
namespace Golems
{
[CreateAssetMenu(fileName = "New AlbertGhostMemorySettings",
menuName = "Golems/Scriptable Render Features/AlbertGhostMemorySettings")]
public class AlbertGhostMemorySettings : ScriptableObject
{
[SerializeField] private Vector3 m_LightDirection;
public Vector3 LightDirection
{
get => m_LightDirection;
set => m_LightDirection = value;
}
[SerializeField] private Color m_LightColour = Color.white;
public Color LightColour
{
get => m_LightColour;
set => m_LightColour = value;
}
///
/// Effects how far off centre each Blur sample becomes
///
[Tooltip("Effects how far off centre each Blur sample becomes. Note, the bigger the number, the bigger the pixelation")]
[Range(0.01f, 10.0f)][SerializeField] private float m_BlurRadius = .5f;
public float BlurRadius => m_BlurRadius;
///
/// The number of Blur passes performed.
/// This effects ALL objects rendered
///
[Tooltip("How many times we Blur all the objects. Note, the bigger the number, the bigger the performance hit")]
[Range(1, 10)][SerializeField] private int m_BlurPasses = 4;
public int BlurPasses => m_BlurPasses;
///
/// Index into the m_BlurTextureSizes
///
[Range(0,4)] [SerializeField] private int m_BlurTextureSize = 3;
///
/// Texture size of the blur textures
///
private int[] m_BlurTextureSizes = new int[5] { 128, 256, 512, 1024, 2048 };
///
/// Returns the current Blur Texture resolution driven by m_BlurTextureSize
///
public int BlurTextureResolution => m_BlurTextureSizes[
Mathf.Max(0, Mathf.Min(m_BlurTextureSize, m_BlurTextureSizes.Length - 1))];
}
}