18 [RequireComponent(typeof (Camera))]
19 [AddComponentMenu(
"Image Effects/Other/Antialiasing")]
24 public bool showGeneratedNormals =
false;
25 public float offsetScale = 0.2f;
26 public float blurRadius = 18.0f;
28 public float edgeThresholdMin = 0.05f;
29 public float edgeThreshold = 0.2f;
30 public float edgeSharpness = 4.0f;
32 public bool dlaaSharp =
false;
52 Material returnValue = null;
57 returnValue = materialFXAAIII;
60 returnValue = materialFXAAII;
63 returnValue = materialFXAAPreset2;
66 returnValue = materialFXAAPreset3;
90 materialFXAAPreset2 = CreateMaterial(shaderFXAAPreset2, materialFXAAPreset2);
91 materialFXAAPreset3 = CreateMaterial(shaderFXAAPreset3, materialFXAAPreset3);
92 materialFXAAII = CreateMaterial(shaderFXAAII, materialFXAAII);
93 materialFXAAIII = CreateMaterial(shaderFXAAIII, materialFXAAIII);
94 nfaa = CreateMaterial(nfaaShader, nfaa);
95 ssaa = CreateMaterial(ssaaShader, ssaa);
96 dlaa = CreateMaterial(dlaaShader, dlaa);
98 if (!ssaaShader.isSupported)
110 if (CheckResources() ==
false)
112 Graphics.Blit(source, destination);
119 if (mode ==
AAMode.FXAA3Console && (materialFXAAIII != null))
121 materialFXAAIII.SetFloat(
"_EdgeThresholdMin", edgeThresholdMin);
122 materialFXAAIII.SetFloat(
"_EdgeThreshold", edgeThreshold);
123 materialFXAAIII.SetFloat(
"_EdgeSharpness", edgeSharpness);
125 Graphics.Blit(source, destination, materialFXAAIII);
127 else if (mode ==
AAMode.FXAA1PresetB && (materialFXAAPreset3 != null))
129 Graphics.Blit(source, destination, materialFXAAPreset3);
131 else if (mode ==
AAMode.FXAA1PresetA && materialFXAAPreset2 != null)
133 source.anisoLevel = 4;
134 Graphics.Blit(source, destination, materialFXAAPreset2);
135 source.anisoLevel = 0;
137 else if (mode ==
AAMode.FXAA2 && materialFXAAII != null)
139 Graphics.Blit(source, destination, materialFXAAII);
141 else if (mode ==
AAMode.SSAA && ssaa != null)
145 Graphics.Blit(source, destination, ssaa);
147 else if (mode ==
AAMode.DLAA && dlaa != null)
152 source.anisoLevel = 0;
153 RenderTexture interim = RenderTexture.GetTemporary(source.width, source.height);
154 Graphics.Blit(source, interim, dlaa, 0);
155 Graphics.Blit(interim, destination, dlaa, dlaaSharp ? 2 : 1);
156 RenderTexture.ReleaseTemporary(interim);
158 else if (mode ==
AAMode.NFAA && nfaa != null)
163 source.anisoLevel = 0;
165 nfaa.SetFloat(
"_OffsetScale", offsetScale);
166 nfaa.SetFloat(
"_BlurRadius", blurRadius);
168 Graphics.Blit(source, destination, nfaa, showGeneratedNormals ? 1 : 0);
173 Graphics.Blit(source, destination);
Material materialFXAAPreset3
A Utility class for performing various image based rendering tasks.
Material materialFXAAPreset2
override bool CheckResources()
Material CurrentAAMaterial()
void OnRenderImage(RenderTexture source, RenderTexture destination)