summaryrefslogtreecommitdiff
path: root/Valheim_v0.141.2_r202102/Valheim/assembly_sunshafts/UnityStandardAssets.ImageEffects/Antialiasing.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Valheim_v0.141.2_r202102/Valheim/assembly_sunshafts/UnityStandardAssets.ImageEffects/Antialiasing.cs')
-rw-r--r--Valheim_v0.141.2_r202102/Valheim/assembly_sunshafts/UnityStandardAssets.ImageEffects/Antialiasing.cs139
1 files changed, 139 insertions, 0 deletions
diff --git a/Valheim_v0.141.2_r202102/Valheim/assembly_sunshafts/UnityStandardAssets.ImageEffects/Antialiasing.cs b/Valheim_v0.141.2_r202102/Valheim/assembly_sunshafts/UnityStandardAssets.ImageEffects/Antialiasing.cs
new file mode 100644
index 0000000..73794bf
--- /dev/null
+++ b/Valheim_v0.141.2_r202102/Valheim/assembly_sunshafts/UnityStandardAssets.ImageEffects/Antialiasing.cs
@@ -0,0 +1,139 @@
+using UnityEngine;
+
+namespace UnityStandardAssets.ImageEffects;
+
+[ExecuteInEditMode]
+[RequireComponent(typeof(Camera))]
+[AddComponentMenu("Image Effects/Other/Antialiasing")]
+public class Antialiasing : PostEffectsBase
+{
+ public AAMode mode = AAMode.FXAA3Console;
+
+ public bool showGeneratedNormals;
+
+ public float offsetScale = 0.2f;
+
+ public float blurRadius = 18f;
+
+ public float edgeThresholdMin = 0.05f;
+
+ public float edgeThreshold = 0.2f;
+
+ public float edgeSharpness = 4f;
+
+ public bool dlaaSharp;
+
+ public Shader ssaaShader;
+
+ private Material ssaa;
+
+ public Shader dlaaShader;
+
+ private Material dlaa;
+
+ public Shader nfaaShader;
+
+ private Material nfaa;
+
+ public Shader shaderFXAAPreset2;
+
+ private Material materialFXAAPreset2;
+
+ public Shader shaderFXAAPreset3;
+
+ private Material materialFXAAPreset3;
+
+ public Shader shaderFXAAII;
+
+ private Material materialFXAAII;
+
+ public Shader shaderFXAAIII;
+
+ private Material materialFXAAIII;
+
+ public Material CurrentAAMaterial()
+ {
+ Material material = null;
+ return mode switch
+ {
+ AAMode.FXAA3Console => materialFXAAIII,
+ AAMode.FXAA2 => materialFXAAII,
+ AAMode.FXAA1PresetA => materialFXAAPreset2,
+ AAMode.FXAA1PresetB => materialFXAAPreset3,
+ AAMode.NFAA => nfaa,
+ AAMode.SSAA => ssaa,
+ AAMode.DLAA => dlaa,
+ _ => null,
+ };
+ }
+
+ public override bool CheckResources()
+ {
+ CheckSupport(needDepth: false);
+ materialFXAAPreset2 = CreateMaterial(shaderFXAAPreset2, materialFXAAPreset2);
+ materialFXAAPreset3 = CreateMaterial(shaderFXAAPreset3, materialFXAAPreset3);
+ materialFXAAII = CreateMaterial(shaderFXAAII, materialFXAAII);
+ materialFXAAIII = CreateMaterial(shaderFXAAIII, materialFXAAIII);
+ nfaa = CreateMaterial(nfaaShader, nfaa);
+ ssaa = CreateMaterial(ssaaShader, ssaa);
+ dlaa = CreateMaterial(dlaaShader, dlaa);
+ if (!ssaaShader.isSupported)
+ {
+ NotSupported();
+ ReportAutoDisable();
+ }
+ return isSupported;
+ }
+
+ public void OnRenderImage(RenderTexture source, RenderTexture destination)
+ {
+ if (!CheckResources())
+ {
+ Graphics.Blit(source, destination);
+ }
+ else if (mode == AAMode.FXAA3Console && materialFXAAIII != null)
+ {
+ materialFXAAIII.SetFloat("_EdgeThresholdMin", edgeThresholdMin);
+ materialFXAAIII.SetFloat("_EdgeThreshold", edgeThreshold);
+ materialFXAAIII.SetFloat("_EdgeSharpness", edgeSharpness);
+ Graphics.Blit(source, destination, materialFXAAIII);
+ }
+ else if (mode == AAMode.FXAA1PresetB && materialFXAAPreset3 != null)
+ {
+ Graphics.Blit(source, destination, materialFXAAPreset3);
+ }
+ else if (mode == AAMode.FXAA1PresetA && materialFXAAPreset2 != null)
+ {
+ source.anisoLevel = 4;
+ Graphics.Blit(source, destination, materialFXAAPreset2);
+ source.anisoLevel = 0;
+ }
+ else if (mode == AAMode.FXAA2 && materialFXAAII != null)
+ {
+ Graphics.Blit(source, destination, materialFXAAII);
+ }
+ else if (mode == AAMode.SSAA && ssaa != null)
+ {
+ Graphics.Blit(source, destination, ssaa);
+ }
+ else if (mode == AAMode.DLAA && dlaa != null)
+ {
+ source.anisoLevel = 0;
+ RenderTexture temporary = RenderTexture.GetTemporary(source.width, source.height);
+ Graphics.Blit(source, temporary, dlaa, 0);
+ Graphics.Blit(temporary, destination, dlaa, (!dlaaSharp) ? 1 : 2);
+ RenderTexture.ReleaseTemporary(temporary);
+ }
+ else if (mode == AAMode.NFAA && nfaa != null)
+ {
+ source.anisoLevel = 0;
+ nfaa.SetFloat("_OffsetScale", offsetScale);
+ nfaa.SetFloat("_BlurRadius", blurRadius);
+ Graphics.Blit(source, destination, nfaa, showGeneratedNormals ? 1 : 0);
+ }
+ else
+ {
+ Graphics.Blit(source, destination);
+ }
+ }
+}