Ł&A5.5.1f1ţ˙˙˙˙˙Č0ĹňĂôL.`?^Ů0D7€˙˙˙˙€Ś€˛€ЀŚ€Ś€Ś€#Ś€+H€3˙˙˙˙€1€1€˙˙˙˙@ހ€ Q€j€ ™€< Ś€H H€Z˙˙˙˙ €1€1€˙˙˙˙@ހ€Q€j€ЀgŚ€Ś€Ś€#Ś€+v~ € €– €Ÿ €¨ €ą €ş €Ă €Ě €Ő €Ţ  €ç! €ń" €ű# €$ €% €&Ő€#˙˙˙˙'€1€1€˙˙˙˙(€ހ€)H€j€˙˙˙˙*€1€1€˙˙˙˙+@ހ€,Q€j€-™€*.ހ8/AssetMetaDataguiddata[0]data[1]data[2]data[3]pathNametimeCreatedoriginalChangesetoriginalNameoriginalParentHash128originalDigestbytes[0]bytes[1]bytes[2]bytes[3]bytes[4]bytes[5]bytes[6]bytes[7]bytes[8]bytes[9]bytes[10]bytes[11]bytes[12]bytes[13]bytes[14]bytes[15]labelsassetStoreReflicenseType ˙˙z{ď@îČă5^(H'7€˙˙˙˙€Ś€˛€ Ő€ ހ#.€,†€Ä€ ހ#.€,H€Ť€˙˙˙˙€1€1€˙˙˙˙ @ހ€ Q€j€ Ő€5˙˙˙˙ €1€1€˙˙˙˙ €ހ€€j€˙˙˙˙€H€›€˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€y€ € ހ#.€, €I@ž€X @ހ#.€,H€]˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€H€h˙˙˙˙€1€1€˙˙˙˙ @ހ€!Q€j€"H€z˙˙˙˙#€1€1€˙˙˙˙$@ހ€%Q€j€&MonoImporterPPtrm_FileIDm_PathIDm_DefaultReferencesexecutionOrdericonm_UserDatam_AssetBundleNamem_AssetBundleVariants˙˙˙8-l'€Łć„hŒÎA,Œ€7€˙˙˙˙€Ś€˛€Ő€ ހ.€†€Ä€ ހ.€H€Ť€˙˙˙˙€1€1€˙˙˙˙ @ހ€ Q€j€ H€ę€˙˙˙˙ €1€1€˙˙˙˙ @ހ€Q€j€ń€(˙˙˙˙€1€1€˙˙˙˙€ހ€€j€˙˙˙˙€H€›€˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€y€ € ހ.€y€< ހ.€ހCH€T˙˙˙˙€1€1€˙˙˙˙ @ހ€!Q€j€"H€`˙˙˙˙#€1€1€˙˙˙˙$@ހ€%Q€j€&H€l˙˙˙˙'€1€1€˙˙˙˙(@ހ€)Q€j€*L€{+PPtrm_FileIDm_PathIDm_DefaultReferencesm_Iconm_ExecutionOrderm_ClassNamem_Namespacem_AssemblyNamem_IsEditorScript°°ŹŕyŻ`á&—4ͧŠG‚śJoI Ę]žÇAż[Ž@<š Ě5Ó÷\˛ô’“ŘIHĚŻů-DůĺîÝÖ$^}ÜDl>¸,‹UAssets/Standard Assets/Effects/ImageEffects/Scripts/VignetteAndChromaticAberration.csvignetteShader>IseparableBlurShader>IchromAberrationShader>IVignetteAndChromaticAberrationŻusing System; using UnityEngine; namespace UnityStandardAssets.ImageEffects { [ExecuteInEditMode] [RequireComponent (typeof(Camera))] [AddComponentMenu ("Image Effects/Camera/Vignette and Chromatic Aberration")] public class VignetteAndChromaticAberration : PostEffectsBase { public enum AberrationMode { Simple = 0, Advanced = 1, } public AberrationMode mode = AberrationMode.Simple; public float intensity = 0.036f; // intensity == 0 disables pre pass (optimization) public float chromaticAberration = 0.2f; public float axialAberration = 0.5f; public float blur = 0.0f; // blur == 0 disables blur pass (optimization) public float blurSpread = 0.75f; public float luminanceDependency = 0.25f; public float blurDistance = 2.5f; public Shader vignetteShader; public Shader separableBlurShader; public Shader chromAberrationShader; private Material m_VignetteMaterial; private Material m_SeparableBlurMaterial; private Material m_ChromAberrationMaterial; public override bool CheckResources () { CheckSupport (false); m_VignetteMaterial = CheckShaderAndCreateMaterial (vignetteShader, m_VignetteMaterial); m_SeparableBlurMaterial = CheckShaderAndCreateMaterial (separableBlurShader, m_SeparableBlurMaterial); m_ChromAberrationMaterial = CheckShaderAndCreateMaterial (chromAberrationShader, m_ChromAberrationMaterial); if (!isSupported) ReportAutoDisable (); return isSupported; } void OnRenderImage (RenderTexture source, RenderTexture destination) { if ( CheckResources () == false) { Graphics.Blit (source, destination); return; } int rtW = source.width; int rtH = source.height; bool doPrepass = (Mathf.Abs(blur)>0.0f || Mathf.Abs(intensity)>0.0f); float widthOverHeight = (1.0f * rtW) / (1.0f * rtH); const float oneOverBaseSize = 1.0f / 512.0f; RenderTexture color = null; RenderTexture color2A = null; if (doPrepass) { color = RenderTexture.GetTemporary (rtW, rtH, 0, source.format); // Blur corners if (Mathf.Abs (blur)>0.0f) { color2A = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format); Graphics.Blit (source, color2A, m_ChromAberrationMaterial, 0); for(int i = 0; i < 2; i++) { // maybe make iteration count tweakable m_SeparableBlurMaterial.SetVector ("offsets",new Vector4 (0.0f, blurSpread * oneOverBaseSize, 0.0f, 0.0f)); RenderTexture color2B = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format); Graphics.Blit (color2A, color2B, m_SeparableBlurMaterial); RenderTexture.ReleaseTemporary (color2A); m_SeparableBlurMaterial.SetVector ("offsets",new Vector4 (blurSpread * oneOverBaseSize / widthOverHeight, 0.0f, 0.0f, 0.0f)); color2A = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format); Graphics.Blit (color2B, color2A, m_SeparableBlurMaterial); RenderTexture.ReleaseTemporary (color2B); } } m_VignetteMaterial.SetFloat("_Intensity", (1.0f / (1.0f - intensity) - 1.0f)); // intensity for vignette m_VignetteMaterial.SetFloat("_Blur", (1.0f / (1.0f - blur)) - 1.0f); // blur intensity m_VignetteMaterial.SetTexture ("_VignetteTex", color2A); // blurred texture Graphics.Blit (source, color, m_VignetteMaterial, 0); // prepass blit: darken & blur corners } m_ChromAberrationMaterial.SetFloat ("_ChromaticAberration", chromaticAberration); m_ChromAberrationMaterial.SetFloat ("_AxialAberration", axialAberration); m_ChromAberrationMaterial.SetVector ("_BlurDistance", new Vector2 (-blurDistance, blurDistance)); m_ChromAberrationMaterial.SetFloat ("_Luminance", 1.0f/Mathf.Max(Mathf.Epsilon, luminanceDependency)); if (doPrepass) color.wrapMode = TextureWrapMode.Clamp; else source.wrapMode = TextureWrapMode.Clamp; Graphics.Blit (doPrepass ? color : source, destination, m_ChromAberrationMaterial, mode == AberrationMode.Advanced ? 2 : 1); RenderTexture.ReleaseTemporary (color); RenderTexture.ReleaseTemporary (color2A); } } } chromAberrationShader>IseparableBlurShader>IvignetteShader>IVignetteAndChromaticAberration UnityStandardAssets.ImageEffectsAssembly-CSharp-firstpass.dll