源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

76 lines
2.0 KiB

using UnityEngine;
using UnityEngine.Rendering;
using System;
[ExecuteInEditMode, ImageEffectAllowedInSceneView]
public class FXAAEffect : MonoBehaviour {
const int luminancePass = 0;
const int fxaaPass = 1;
// public enum LuminanceMode { Alpha, Green, Calculate }
// public LuminanceMode luminanceSource;
[Range(0.0312f, 0.0833f)]
public float contrastThreshold = 0.0312f;
[Range(0.063f, 0.333f)]
public float relativeThreshold = 0.063f;
[Range(0f, 1f)]
public float subpixelBlending = 1f;
// [HideInInspector]
public Shader fxaaShader;
public bool lowQuality;
// public bool gammaBlending;
[NonSerialized]
Material fxaaMaterial;
RenderTexture luminanceTex;
void OnRenderImage (RenderTexture source, RenderTexture destination) {
if (fxaaMaterial == null) {
fxaaMaterial = new Material(fxaaShader);
fxaaMaterial.hideFlags = HideFlags.HideAndDontSave;
}
fxaaMaterial.SetFloat("_ContrastThreshold", contrastThreshold);
fxaaMaterial.SetFloat("_RelativeThreshold", relativeThreshold);
fxaaMaterial.SetFloat("_SubpixelBlending", subpixelBlending);
if (lowQuality) {
fxaaMaterial.EnableKeyword("LOW_QUALITY");
}
else {
fxaaMaterial.DisableKeyword("LOW_QUALITY");
}
// if (gammaBlending) {
// fxaaMaterial.EnableKeyword("GAMMA_BLENDING");
// }
// else {
// fxaaMaterial.DisableKeyword("GAMMA_BLENDING");
// }
// if (luminanceSource == LuminanceMode.Calculate) {
// fxaaMaterial.DisableKeyword("LUMINANCE_GREEN");
// luminanceTex = RenderTexture.GetTemporary(
// source.width, source.height, 0, source.format
// );
// Graphics.Blit(source, luminanceTex, fxaaMaterial, luminancePass);
// Graphics.Blit(luminanceTex, destination, fxaaMaterial, fxaaPass);
// RenderTexture.ReleaseTemporary(luminanceTex);
// }
// else {
// if (luminanceSource == LuminanceMode.Green) {
// fxaaMaterial.EnableKeyword("LUMINANCE_GREEN");
// }
// else {
// fxaaMaterial.DisableKeyword("LUMINANCE_GREEN");
// }
Graphics.Blit(source, destination, fxaaMaterial, fxaaPass);
// }
}
}