79 lines
2.3 KiB
C#
79 lines
2.3 KiB
C#
using System;
|
|
|
|
namespace UnityEngine.PostProcessing
|
|
{
|
|
[Serializable]
|
|
public class VignetteModel : PostProcessingModel
|
|
{
|
|
public enum Mode
|
|
{
|
|
Classic,
|
|
Masked
|
|
}
|
|
|
|
[Serializable]
|
|
public struct Settings
|
|
{
|
|
[Tooltip("Use the \"Classic\" mode for parametric controls. Use the \"Masked\" mode to use your own texture mask.")]
|
|
public Mode mode;
|
|
|
|
[ColorUsage(false)]
|
|
[Tooltip("Vignette color. Use the alpha channel for transparency.")]
|
|
public Color color;
|
|
|
|
[Tooltip("Sets the vignette center point (screen center is [0.5,0.5]).")]
|
|
public Vector2 center;
|
|
|
|
[Range(0f, 1f), Tooltip("Amount of vignetting on screen.")]
|
|
public float intensity;
|
|
|
|
[Range(0.01f, 1f), Tooltip("Smoothness of the vignette borders.")]
|
|
public float smoothness;
|
|
|
|
[Range(0f, 1f), Tooltip("Lower values will make a square-ish vignette.")]
|
|
public float roundness;
|
|
|
|
[Tooltip("A black and white mask to use as a vignette.")]
|
|
public Texture mask;
|
|
|
|
[Range(0f, 1f), Tooltip("Mask opacity.")]
|
|
public float opacity;
|
|
|
|
[Tooltip("Should the vignette be perfectly round or be dependent on the current aspect ratio?")]
|
|
public bool rounded;
|
|
|
|
public static Settings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new Settings
|
|
{
|
|
mode = Mode.Classic,
|
|
color = new Color(0f, 0f, 0f, 1f),
|
|
center = new Vector2(0.5f, 0.5f),
|
|
intensity = 0.45f,
|
|
smoothness = 0.2f,
|
|
roundness = 1f,
|
|
mask = null,
|
|
opacity = 1f,
|
|
rounded = false
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
[SerializeField]
|
|
Settings m_Settings = Settings.defaultSettings;
|
|
public Settings settings
|
|
{
|
|
get { return m_Settings; }
|
|
set { m_Settings = value; }
|
|
}
|
|
|
|
public override void Reset()
|
|
{
|
|
m_Settings = Settings.defaultSettings;
|
|
}
|
|
}
|
|
}
|