103 lines
2.9 KiB
C#
103 lines
2.9 KiB
C#
|
using System;
|
||
|
|
||
|
namespace UnityEngine.PostProcessing
|
||
|
{
|
||
|
[Serializable]
|
||
|
public class BloomModel : PostProcessingModel
|
||
|
{
|
||
|
[Serializable]
|
||
|
public struct BloomSettings
|
||
|
{
|
||
|
[Min(0f), Tooltip("Strength of the bloom filter.")]
|
||
|
public float intensity;
|
||
|
|
||
|
[Min(0f), Tooltip("Filters out pixels under this level of brightness.")]
|
||
|
public float threshold;
|
||
|
|
||
|
public float thresholdLinear
|
||
|
{
|
||
|
set { threshold = Mathf.LinearToGammaSpace(value); }
|
||
|
get { return Mathf.GammaToLinearSpace(threshold); }
|
||
|
}
|
||
|
|
||
|
[Range(0f, 1f), Tooltip("Makes transition between under/over-threshold gradual (0 = hard threshold, 1 = soft threshold).")]
|
||
|
public float softKnee;
|
||
|
|
||
|
[Range(1f, 7f), Tooltip("Changes extent of veiling effects in a screen resolution-independent fashion.")]
|
||
|
public float radius;
|
||
|
|
||
|
[Tooltip("Reduces flashing noise with an additional filter.")]
|
||
|
public bool antiFlicker;
|
||
|
|
||
|
public static BloomSettings defaultSettings
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return new BloomSettings
|
||
|
{
|
||
|
intensity = 0.5f,
|
||
|
threshold = 1.1f,
|
||
|
softKnee = 0.5f,
|
||
|
radius = 4f,
|
||
|
antiFlicker = false,
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[Serializable]
|
||
|
public struct LensDirtSettings
|
||
|
{
|
||
|
[Tooltip("Dirtiness texture to add smudges or dust to the lens.")]
|
||
|
public Texture texture;
|
||
|
|
||
|
[Min(0f), Tooltip("Amount of lens dirtiness.")]
|
||
|
public float intensity;
|
||
|
|
||
|
public static LensDirtSettings defaultSettings
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return new LensDirtSettings
|
||
|
{
|
||
|
texture = null,
|
||
|
intensity = 3f
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[Serializable]
|
||
|
public struct Settings
|
||
|
{
|
||
|
public BloomSettings bloom;
|
||
|
public LensDirtSettings lensDirt;
|
||
|
|
||
|
public static Settings defaultSettings
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return new Settings
|
||
|
{
|
||
|
bloom = BloomSettings.defaultSettings,
|
||
|
lensDirt = LensDirtSettings.defaultSettings
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[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;
|
||
|
}
|
||
|
}
|
||
|
}
|