Initial
This commit is contained in:
commit
36a53f343e
1 changed files with 300431 additions and 0 deletions
|
|
@ -0,0 +1,63 @@
|
|||
namespace UnityEngine.PostProcessing
|
||||
{
|
||||
public sealed class ChromaticAberrationComponent : PostProcessingComponentRenderTexture<ChromaticAberrationModel>
|
||||
{
|
||||
static class Uniforms
|
||||
{
|
||||
internal static readonly int _ChromaticAberration_Amount = Shader.PropertyToID("_ChromaticAberration_Amount");
|
||||
internal static readonly int _ChromaticAberration_Spectrum = Shader.PropertyToID("_ChromaticAberration_Spectrum");
|
||||
}
|
||||
|
||||
Texture2D m_SpectrumLut;
|
||||
|
||||
public override bool active
|
||||
{
|
||||
get
|
||||
{
|
||||
return model.enabled
|
||||
&& model.settings.intensity > 0f
|
||||
&& !context.interrupted;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDisable()
|
||||
{
|
||||
GraphicsUtils.Destroy(m_SpectrumLut);
|
||||
m_SpectrumLut = null;
|
||||
}
|
||||
|
||||
public override void Prepare(Material uberMaterial)
|
||||
{
|
||||
var settings = model.settings;
|
||||
var spectralLut = settings.spectralTexture;
|
||||
|
||||
if (spectralLut == null)
|
||||
{
|
||||
if (m_SpectrumLut == null)
|
||||
{
|
||||
m_SpectrumLut = new Texture2D(3, 1, TextureFormat.RGB24, false)
|
||||
{
|
||||
name = "Chromatic Aberration Spectrum Lookup",
|
||||
filterMode = FilterMode.Bilinear,
|
||||
wrapMode = TextureWrapMode.Clamp,
|
||||
anisoLevel = 0,
|
||||
hideFlags = HideFlags.DontSave
|
||||
};
|
||||
|
||||
var pixels = new Color[3];
|
||||
pixels[0] = new Color(1f, 0f, 0f);
|
||||
pixels[1] = new Color(0f, 1f, 0f);
|
||||
pixels[2] = new Color(0f, 0f, 1f);
|
||||
m_SpectrumLut.SetPixels(pixels);
|
||||
m_SpectrumLut.Apply();
|
||||
}
|
||||
|
||||
spectralLut = m_SpectrumLut;
|
||||
}
|
||||
|
||||
uberMaterial.EnableKeyword("CHROMATIC_ABERRATION");
|
||||
uberMaterial.SetFloat(Uniforms._ChromaticAberration_Amount, settings.intensity * 0.03f);
|
||||
uberMaterial.SetTexture(Uniforms._ChromaticAberration_Spectrum, spectralLut);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue