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