7     [RequireComponent (typeof(Camera))]
     8     [AddComponentMenu (
"Image Effects/Camera/Vignette and Chromatic Aberration")]
    19         public float intensity = 0.036f;                    
    20         public float chromaticAberration = 0.2f;
    21         public float axialAberration = 0.5f;
    22         public float blur = 0.0f;                           
    23         public float blurSpread = 0.75f;
    24         public float luminanceDependency = 0.25f;
    25         public float blurDistance = 2.5f;
    40             m_VignetteMaterial = CheckShaderAndCreateMaterial (vignetteShader, m_VignetteMaterial);
    41             m_SeparableBlurMaterial = CheckShaderAndCreateMaterial (separableBlurShader, m_SeparableBlurMaterial);
    42             m_ChromAberrationMaterial = CheckShaderAndCreateMaterial (chromAberrationShader, m_ChromAberrationMaterial);
    52             if ( CheckResources () == 
false)
    54                 Graphics.Blit (source, destination);
    58             int rtW = source.width;
    59             int rtH = source.height;
    61             bool  doPrepass = (Mathf.Abs(blur)>0.0f || Mathf.Abs(intensity)>0.0f);
    63             float widthOverHeight = (1.0f * rtW) / (1.0f * rtH);
    64             const float oneOverBaseSize = 1.0f / 512.0f;
    66             RenderTexture color = null;
    67             RenderTexture color2A = null;
    71                 color = RenderTexture.GetTemporary (rtW, rtH, 0, source.format);
    74                 if (Mathf.Abs (blur)>0.0f)
    76                     color2A = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format);
    78                     Graphics.Blit (source, color2A, m_ChromAberrationMaterial, 0);
    80                     for(
int i = 0; i < 2; i++)
    82                         m_SeparableBlurMaterial.SetVector (
"offsets",
new Vector4 (0.0f, blurSpread * oneOverBaseSize, 0.0f, 0.0f));
    83                         RenderTexture color2B = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format);
    84                         Graphics.Blit (color2A, color2B, m_SeparableBlurMaterial);
    85                         RenderTexture.ReleaseTemporary (color2A);
    87                         m_SeparableBlurMaterial.SetVector (
"offsets",
new Vector4 (blurSpread * oneOverBaseSize / widthOverHeight, 0.0f, 0.0f, 0.0f));
    88                         color2A = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format);
    89                         Graphics.Blit (color2B, color2A, m_SeparableBlurMaterial);
    90                         RenderTexture.ReleaseTemporary (color2B);
    94                 m_VignetteMaterial.SetFloat(
"_Intensity", (1.0f / (1.0f - intensity) - 1.0f));      
    95                 m_VignetteMaterial.SetFloat(
"_Blur", (1.0f / (1.0f - blur)) - 1.0f);                    
    96                 m_VignetteMaterial.SetTexture (
"_VignetteTex", color2A);    
    98                 Graphics.Blit (source, color, m_VignetteMaterial, 0);           
   101             m_ChromAberrationMaterial.SetFloat (
"_ChromaticAberration", chromaticAberration);
   102             m_ChromAberrationMaterial.SetFloat (
"_AxialAberration", axialAberration);
   103             m_ChromAberrationMaterial.SetVector (
"_BlurDistance", 
new Vector2 (-blurDistance, blurDistance));
   104             m_ChromAberrationMaterial.SetFloat (
"_Luminance", 1.0f/Mathf.Max(Mathf.Epsilon, luminanceDependency));
   106             if (doPrepass) color.wrapMode = TextureWrapMode.Clamp;
   107             else source.wrapMode = TextureWrapMode.Clamp;
   108             Graphics.Blit (doPrepass ? color : source, destination, m_ChromAberrationMaterial, mode == 
AberrationMode.Advanced ? 2 : 1);
   110             RenderTexture.ReleaseTemporary (color);
   111             RenderTexture.ReleaseTemporary (color2A);
 Material m_SeparableBlurMaterial
 
override bool CheckResources()
 
void OnRenderImage(RenderTexture source, RenderTexture destination)
 
Material m_ChromAberrationMaterial
 
Shader chromAberrationShader
 
Material m_VignetteMaterial
 
Shader separableBlurShader