From 5b158af90739dcbb89c1538a6cb8c65a875dce80 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 26 Nov 2020 20:52:34 +0800 Subject: *misc --- .../Atmospheric Height Fog/Core/Editor.meta | 9 + .../Boxophobic.AtmosphericHeightFog.Editor.asmdef | 18 + ...ophobic.AtmosphericHeightFog.Editor.asmdef.meta | 7 + .../Core/Editor/HeightFogCreate.cs | 111 ++++++ .../Core/Editor/HeightFogCreate.cs.meta | 13 + .../Core/Editor/HeightFogGlobalInspector.cs | 46 +++ .../Core/Editor/HeightFogGlobalInspector.cs.meta | 11 + .../Core/Editor/HeightFogHub.cs | 158 ++++++++ .../Core/Editor/HeightFogHub.cs.meta | 12 + .../Core/Editor/HeightFogOverrideInspector.cs | 45 +++ .../Core/Editor/HeightFogOverrideInspector.cs.meta | 11 + .../Core/Editor/HeightFogShaderGUI.cs | 61 +++ .../Core/Editor/HeightFogShaderGUI.cs.meta | 11 + .../Core/Editor/HeightFogWindows.cs | 41 ++ .../Core/Editor/HeightFogWindows.cs.meta | 11 + .../Core/Editor/Version.asset | 15 + .../Core/Editor/Version.asset.meta | 8 + .../Atmospheric Height Fog/Core/Functions.meta | 10 + .../Core/Functions/Apply Height Fog.asset | 48 +++ .../Core/Functions/Apply Height Fog.asset.meta | 10 + .../Core/Functions/Apply Height Fog.shadersubgraph | 80 ++++ .../Functions/Apply Height Fog.shadersubgraph.meta | 10 + .../Core/Functions/Base.asset | 67 ++++ .../Core/Functions/Base.asset.meta | 10 + .../Core/Functions/Compute Fog Distance.asset | 40 ++ .../Core/Functions/Compute Fog Distance.asset.meta | 10 + .../Core/Functions/Handle Color Space.asset | 38 ++ .../Core/Functions/Handle Color Space.asset.meta | 10 + .../Core/Functions/Handle Tex Alpha.asset | 38 ++ .../Core/Functions/Handle Tex Alpha.asset.meta | 10 + .../Core/Functions/Is Pipeline.asset | 39 ++ .../Core/Functions/Is Pipeline.asset.meta | 8 + .../Core/Functions/Remap To 0-1.asset | 43 ++ .../Core/Functions/Remap To 0-1.asset.meta | 9 + .../Atmospheric Height Fog/Core/Includes.meta | 8 + .../Core/Includes/AtmosphericHeightFog.cginc | 151 +++++++ .../Core/Includes/AtmosphericHeightFog.cginc.meta | 9 + .../Atmospheric Height Fog/Core/Pipelines.meta | 10 + .../Core/Pipelines/Built-in Pipeline.unitypackage | Bin 0 -> 69354 bytes .../Pipelines/Built-in Pipeline.unitypackage.meta | 7 + .../Core/Pipelines/Universal 7.1.8+.unitypackage | Bin 0 -> 86852 bytes .../Pipelines/Universal 7.1.8+.unitypackage.meta | 7 + .../Universal 7.4.1+ (WebGL).unitypackage | Bin 0 -> 82538 bytes .../Universal 7.4.1+ (WebGL).unitypackage.meta | 7 + .../Core/Pipelines/Universal 7.4.1+.unitypackage | Bin 0 -> 82530 bytes .../Pipelines/Universal 7.4.1+.unitypackage.meta | 7 + .../Atmospheric Height Fog/Core/Resources.meta | 9 + .../Core/Resources/Height Fog Global.shader | 301 ++++++++++++++ .../Core/Resources/Height Fog Global.shader.meta | 10 + .../Core/Resources/Height Fog Per Object.shader | 294 ++++++++++++++ .../Resources/Height Fog Per Object.shader.meta | 9 + .../Core/Resources/Height Fog Preset.mat | 62 +++ .../Core/Resources/Height Fog Preset.mat.meta | 8 + .../Core/Resources/Height Fog Preset.shader | 231 +++++++++++ .../Core/Resources/Height Fog Preset.shader.meta | 9 + .../Atmospheric Height Fog/Core/Runtime.meta | 9 + .../Boxophobic.AtmosphericHeightFog.Runtime.asmdef | 14 + ...phobic.AtmosphericHeightFog.Runtime.asmdef.meta | 7 + .../Core/Runtime/HeightFogEnums.cs | 37 ++ .../Core/Runtime/HeightFogEnums.cs.meta | 12 + .../Core/Runtime/HeightFogGlobal.cs | 439 +++++++++++++++++++++ .../Core/Runtime/HeightFogGlobal.cs.meta | 11 + .../Core/Runtime/HeightFogOverride.cs | 392 ++++++++++++++++++ .../Core/Runtime/HeightFogOverride.cs.meta | 13 + .../Core/Runtime/HeightFogPerObject.cs | 186 +++++++++ .../Core/Runtime/HeightFogPerObject.cs.meta | 13 + .../Atmospheric Height Fog/Core/Shaders.meta | 10 + .../Shaders/UI Default (Height Fog Support).shader | 280 +++++++++++++ .../UI Default (Height Fog Support).shader.meta | 10 + 69 files changed, 3640 insertions(+) create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Boxophobic.AtmosphericHeightFog.Editor.asmdef create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Boxophobic.AtmosphericHeightFog.Editor.asmdef.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogCreate.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogCreate.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogGlobalInspector.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogGlobalInspector.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogHub.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogHub.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogOverrideInspector.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogOverrideInspector.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogShaderGUI.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogShaderGUI.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogWindows.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogWindows.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Version.asset create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Version.asset.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.asset create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.asset.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.shadersubgraph create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.shadersubgraph.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Base.asset create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Base.asset.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Compute Fog Distance.asset create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Compute Fog Distance.asset.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Color Space.asset create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Color Space.asset.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Tex Alpha.asset create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Tex Alpha.asset.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Is Pipeline.asset create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Is Pipeline.asset.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Remap To 0-1.asset create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Remap To 0-1.asset.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes/AtmosphericHeightFog.cginc create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes/AtmosphericHeightFog.cginc.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Built-in Pipeline.unitypackage create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Built-in Pipeline.unitypackage.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.1.8+.unitypackage create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.1.8+.unitypackage.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+ (WebGL).unitypackage create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+ (WebGL).unitypackage.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+.unitypackage create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+.unitypackage.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Global.shader create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Global.shader.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Per Object.shader create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Per Object.shader.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.mat create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.mat.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.shader create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.shader.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/Boxophobic.AtmosphericHeightFog.Runtime.asmdef create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/Boxophobic.AtmosphericHeightFog.Runtime.asmdef.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogEnums.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogEnums.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogGlobal.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogGlobal.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogOverride.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogOverride.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogPerObject.cs create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogPerObject.cs.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders.meta create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders/UI Default (Height Fog Support).shader create mode 100644 Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders/UI Default (Height Fog Support).shader.meta (limited to 'Assets/BOXOPHOBIC/Atmospheric Height Fog/Core') diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor.meta new file mode 100644 index 00000000..84c03a47 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6b4092aee1925294286c91c8b2f0246b +folderAsset: yes +timeCreated: 1554706083 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Boxophobic.AtmosphericHeightFog.Editor.asmdef b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Boxophobic.AtmosphericHeightFog.Editor.asmdef new file mode 100644 index 00000000..ce3bc90c --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Boxophobic.AtmosphericHeightFog.Editor.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Boxophobic.AtmosphericHeightFog.Editor", + "references": [ + "Boxophobic.Utils.Editor", + "Boxophobic.Utils.Scripts", + "Boxophobic.AtmosphericHeightFog.Runtime" + ], + "optionalUnityReferences": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +} \ No newline at end of file diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Boxophobic.AtmosphericHeightFog.Editor.asmdef.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Boxophobic.AtmosphericHeightFog.Editor.asmdef.meta new file mode 100644 index 00000000..58c4c7ea --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Boxophobic.AtmosphericHeightFog.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 154764cb075aa0b4eb8b88ba5ca2617f +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogCreate.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogCreate.cs new file mode 100644 index 00000000..bc273fca --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogCreate.cs @@ -0,0 +1,111 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; + +namespace AtmosphericHeightFog +{ + public class HeightFogCreate + { + [MenuItem("GameObject/BOXOPHOBIC/Atmospheric Height Fog/Global", false, 9)] + static void CreateGlobalVolume() + { + if (GameObject.Find("Height Fog Global") != null) + { + Debug.Log("[Atmospheric Height Fog] " + "Height Fog Global is already added to your scene!"); + return; + } + + GameObject go = new GameObject(); + go.name = "Height Fog Global"; + go.AddComponent(); + + if (Selection.activeGameObject != null) + { + go.transform.parent = Selection.activeGameObject.transform; + } + + Selection.activeGameObject = go; + + EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); + } + + [MenuItem("GameObject/BOXOPHOBIC/Atmospheric Height Fog/Override Volume (Box)", false, 10)] + static void CreateOverrideBoxVolume() + { + if (GameObject.Find("Height Fog Global") == null) + { + Debug.Log("[Atmospheric Height Fog] " + "Height Fog Global must be added to the scene first!"); + return; + } + + GameObject go = new GameObject(); + go.name = "Height Fog Override (Box)"; + go.AddComponent(); + go.GetComponent().isTrigger = true; + go.AddComponent(); + + var sceneCamera = SceneView.lastActiveSceneView.camera; + + if (sceneCamera != null) + { + go.transform.position = sceneCamera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 10f)); + } + else + { + go.transform.localPosition = Vector3.zero; + go.transform.localEulerAngles = Vector3.zero; + go.transform.localScale = Vector3.one; + } + + if (Selection.activeGameObject != null) + { + go.transform.parent = Selection.activeGameObject.transform; + } + + Selection.activeGameObject = go; + + EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); + } + + [MenuItem("GameObject/BOXOPHOBIC/Atmospheric Height Fog/Override Volume (Sphere)", false, 11)] + static void CreateOverrideSphereVolume() + { + if (GameObject.Find("Height Fog Global") == null) + { + Debug.Log("[Atmospheric Height Fog] " + "Height Fog Global must be added to the scene first!"); + return; + } + + GameObject go = new GameObject(); + go.name = "Height Fog Override (Sphere)"; + go.AddComponent(); + go.GetComponent().isTrigger = true; + go.AddComponent(); + + var sceneCamera = SceneView.lastActiveSceneView.camera; + + if (sceneCamera != null) + { + go.transform.position = sceneCamera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 10f)); + } + else + { + go.transform.localPosition = Vector3.zero; + go.transform.localEulerAngles = Vector3.zero; + go.transform.localScale = Vector3.one; + } + + if (Selection.activeGameObject != null) + { + go.transform.parent = Selection.activeGameObject.transform; + } + + Selection.activeGameObject = go; + + EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); + } + } +} + diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogCreate.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogCreate.cs.meta new file mode 100644 index 00000000..5fd3fa0f --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogCreate.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 272a11163456c6647affb81b9e5f31a4 +timeCreated: 1573480983 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogGlobalInspector.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogGlobalInspector.cs new file mode 100644 index 00000000..65ff14aa --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogGlobalInspector.cs @@ -0,0 +1,46 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEditor; + +namespace AtmosphericHeightFog +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(HeightFogGlobal))] + public class HeightFogGlobalInspector : Editor + { + readonly string[] scriptMode = { "m_Script", "presetMaterial", "presetDay", "presetNight", "timeOfDay" }; + readonly string[] presetMode = { "m_Script", "presetDay", "presetNight", "timeOfDay", "categoryFog", "fogIntensity", "fogAxisMode", "fogLayersMode", "fogColorStart", "fogColorEnd", "fogColorDuo", "fogDistanceStart", "fogDistanceEnd", "fogDistanceFalloff", "fogHeightStart", "fogHeightEnd", "fogHeightFalloff", "categorySkybox", "skyboxFogIntensity", "skyboxFogHeight", "skyboxFogFalloff", "skyboxFogFill", "categoryDirectional", "directionalIntensity", "directionalFalloff", "directionalColor", "categoryNoise", "noiseMode", "noiseIntensity", "noiseDistanceEnd", "noiseScale", "noiseSpeed" }; + readonly string[] timeOfDayMode = { "m_Script", "presetMaterial", "categoryFog", "fogIntensity", "fogAxisMode", "fogLayersMode", "fogColorStart", "fogColorEnd", "fogColorDuo", "fogDistanceStart", "fogDistanceEnd", "fogDistanceFalloff", "fogHeightStart", "fogHeightEnd", "fogHeightFalloff", "categorySkybox", "skyboxFogIntensity", "skyboxFogHeight", "skyboxFogFalloff", "skyboxFogFill", "categoryDirectional", "directionalIntensity", "directionalFalloff", "directionalColor", "categoryNoise", "noiseMode", "noiseIntensity", "noiseDistanceEnd", "noiseScale", "noiseSpeed" }; + HeightFogGlobal targetScript; + + void OnEnable() + { + targetScript = (HeightFogGlobal)target; + } + + public override void OnInspectorGUI() + { + DrawInspector(); + } + + void DrawInspector() + { + string[] exclude = scriptMode; + + if (targetScript.fogMode == FogMode.UsePresetSettings) + { + exclude = presetMode; + } + else if (targetScript.fogMode == FogMode.UseTimeOfDay) + { + exclude = timeOfDayMode; + } + + serializedObject.Update(); + + DrawPropertiesExcluding(serializedObject, exclude); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogGlobalInspector.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogGlobalInspector.cs.meta new file mode 100644 index 00000000..9dee906a --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogGlobalInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5742a0fb70ce25846bc3269f9cdcf0cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogHub.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogHub.cs new file mode 100644 index 00000000..624b8446 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogHub.cs @@ -0,0 +1,158 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEngine; +using UnityEditor; +using Boxophobic.StyledGUI; +using Boxophobic.Utils; +using System.IO; + +namespace AtmosphericHeightFog +{ + public class HeightFogHub : EditorWindow + { +#if UNITY_2019_3_OR_NEWER + const int GUI_HEIGHT = 18; +#else + const int GUI_HEIGHT = 14; +#endif + + string folderAsset = "Assets/BOXOPHOBIC/Atmospheric Height Fog"; + + string[] pipelinePaths; + string[] pipelineOptions; + string pipelinesPath; + int pipelineIndex; + + int assetVersion; + string bannerVersion; + + GUIStyle stylePopup; + + Color bannerColor; + string bannerText; + string helpURL; + static HeightFogHub window; + //Vector2 scrollPosition = Vector2.zero; + + [MenuItem("Window/BOXOPHOBIC/Atmospheric Height Fog/Hub", false, 1000)] + public static void ShowWindow() + { + window = GetWindow(false, "Atmospheric Height Fog", true); + window.minSize = new Vector2(389, 220); + } + + void OnEnable() + { + bannerColor = new Color(0.55f, 0.7f, 1f); + bannerText = "Atmospheric Height Fog"; + helpURL = "https://docs.google.com/document/d/1pIzIHIZ-cSh2ykODSZCbAPtScJ4Jpuu7lS3rNEHCLbc/edit#heading=h.hbq3w8ae720x"; + + //Safer search, there might be many user folders + string[] searchFolders; + + searchFolders = AssetDatabase.FindAssets("Atmospheric Height Fog"); + + for (int i = 0; i < searchFolders.Length; i++) + { + if (AssetDatabase.GUIDToAssetPath(searchFolders[i]).EndsWith("Atmospheric Height Fog.pdf")) + { + folderAsset = AssetDatabase.GUIDToAssetPath(searchFolders[i]); + folderAsset = folderAsset.Replace("/Atmospheric Height Fog.pdf", ""); + } + } + + pipelinesPath = folderAsset + "/Core/Pipelines"; + + GetPackages(); + + assetVersion = SettingsUtils.LoadSettingsData(folderAsset + "/Core/Editor/Version.asset", -99); + bannerVersion = assetVersion.ToString(); + bannerVersion = bannerVersion.Insert(1, "."); + bannerVersion = bannerVersion.Insert(3, "."); + + bannerColor = new Color(0.55f, 0.7f, 1f); + bannerText = "Atmospheric Height Fog " + bannerVersion; + } + + void OnGUI() + { + SetGUIStyles(); + + StyledGUI.DrawWindowBanner(bannerColor, bannerText, helpURL); + + GUILayout.BeginHorizontal(); + GUILayout.Space(20); + + GUILayout.BeginVertical(); + + //scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false, GUILayout.Width(this.position.width - 28), GUILayout.Height(this.position.height - 80)); + + EditorGUILayout.HelpBox("Click the Import Render Pipeline to switch to another render pipeline. For Universal Render Pipeline, follow the instructions below to enable the fog rendering!", MessageType.Info, true); + + if (pipelineOptions[pipelineIndex].Contains("Universal 7.1.8")) + { + EditorGUILayout.HelpBox("For Universal 7.1.8+ Pipeline, Depth Texture and one of the following features need to be enabled for the depth to work properly: Opaque Texure, HDR or Post Processing!", MessageType.Info, true); + } + + if (pipelineOptions[pipelineIndex].Contains("Universal 7.4.1")) + { + EditorGUILayout.HelpBox("For Universal 7.4.1+ Pipeline, Depth Texture need to be enabled on the render pipeline asset!", MessageType.Info, true); + } + + DrawInterface(); + + //GUILayout.EndScrollView(); + + GUILayout.EndVertical(); + + GUILayout.Space(13); + GUILayout.EndHorizontal(); + } + + void SetGUIStyles() + { + stylePopup = new GUIStyle(EditorStyles.popup) + { + alignment = TextAnchor.MiddleCenter + }; + } + + void DrawInterface() + { + GUILayout.Space(10); + + GUILayout.BeginHorizontal(); + EditorGUILayout.LabelField(new GUIContent("Render Pipeline", ""), GUILayout.Width(220)); + pipelineIndex = EditorGUILayout.Popup(pipelineIndex, pipelineOptions, stylePopup); + if (GUILayout.Button("Import", GUILayout.Width(80), GUILayout.Height(GUI_HEIGHT))) + { + ImportPackage(); + + GUIUtility.ExitGUI(); + } + GUILayout.EndHorizontal(); + } + + void GetPackages() + { + pipelinePaths = Directory.GetFiles(pipelinesPath, "*.unitypackage", SearchOption.TopDirectoryOnly); + + pipelineOptions = new string[pipelinePaths.Length]; + + for (int i = 0; i < pipelineOptions.Length; i++) + { + pipelineOptions[i] = Path.GetFileNameWithoutExtension(pipelinePaths[i].Replace("Built-in Pipeline", "Standard")); + } + } + + void ImportPackage() + { + AssetDatabase.ImportPackage(pipelinePaths[pipelineIndex], true); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + + Debug.Log("[Atmospheric Height Fog] " + pipelineOptions[pipelineIndex] + " package imported in your project!"); + } + } +} + diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogHub.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogHub.cs.meta new file mode 100644 index 00000000..6a7dc147 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogHub.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 094779c9d6df2bd478d3045d5a486647 +timeCreated: 1538943308 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogOverrideInspector.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogOverrideInspector.cs new file mode 100644 index 00000000..3de6f79a --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogOverrideInspector.cs @@ -0,0 +1,45 @@ + +using UnityEditor; + +namespace AtmosphericHeightFog +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(HeightFogOverride))] + public class HeightFogOverrideInspector : Editor + { + readonly string[] scriptMode = { "m_Script", "presetMaterial", "presetDay", "presetNight", "timeOfDay" }; + readonly string[] presetMode = { "m_Script", "presetDay", "presetNight", "timeOfDay", "categoryFog", "fogIntensity", "fogAxisMode", "fogLayersMode", "fogColorStart", "fogColorEnd", "fogColorDuo", "fogDistanceStart", "fogDistanceEnd", "fogDistanceFalloff", "fogHeightStart", "fogHeightEnd", "fogHeightFalloff", "categorySkybox", "skyboxFogIntensity", "skyboxFogHeight", "skyboxFogFalloff", "skyboxFogFill", "categoryDirectional", "directionalIntensity", "directionalFalloff", "directionalColor", "categoryNoise", "noiseMode", "noiseIntensity", "noiseDistanceEnd", "noiseScale", "noiseSpeed" }; + readonly string[] timeOfDayMode = { "m_Script", "presetMaterial", "categoryFog", "fogIntensity", "fogAxisMode", "fogLayersMode", "fogColorStart", "fogColorEnd", "fogColorDuo", "fogDistanceStart", "fogDistanceEnd", "fogDistanceFalloff", "fogHeightStart", "fogHeightEnd", "fogHeightFalloff", "categorySkybox", "skyboxFogIntensity", "skyboxFogHeight", "skyboxFogFalloff", "skyboxFogFill", "categoryDirectional", "directionalIntensity", "directionalFalloff", "directionalColor", "categoryNoise", "noiseMode", "noiseIntensity", "noiseDistanceEnd", "noiseScale", "noiseSpeed" }; + HeightFogOverride targetScript; + + void OnEnable() + { + targetScript = (HeightFogOverride)target; + } + + public override void OnInspectorGUI() + { + DrawInspector(); + } + + void DrawInspector() + { + string[] exclude = scriptMode; + + if (targetScript.fogMode == FogMode.UsePresetSettings) + { + exclude = presetMode; + } + else if (targetScript.fogMode == FogMode.UseTimeOfDay) + { + exclude = timeOfDayMode; + } + + serializedObject.Update(); + + DrawPropertiesExcluding(serializedObject, exclude); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogOverrideInspector.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogOverrideInspector.cs.meta new file mode 100644 index 00000000..296414df --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogOverrideInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4fd498d1bc844c447b1f09b2d746282e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogShaderGUI.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogShaderGUI.cs new file mode 100644 index 00000000..91252ba1 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogShaderGUI.cs @@ -0,0 +1,61 @@ +//Cristian Pop - https://boxophobic.com/ + +using UnityEngine; +using UnityEditor; + +public class HeightFogShaderGUI : ShaderGUI +{ + Material material; + + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) + { + base.OnGUI(materialEditor, props); + + material = materialEditor.target as Material; + + SetBlendProps(); + } + + void SetBlendProps() + { + if (material.HasProperty("_FogAxisMode")) + { + if (material.GetInt("_FogAxisMode") == 0) + { + material.SetVector("_FogAxisOption", new Vector4(1, 0, 0, 0)); + } + else if (material.GetInt("_FogAxisMode") == 1) + { + material.SetVector("_FogAxisOption", new Vector4(0, 1, 0, 0)); + } + else if (material.GetInt("_FogAxisMode") == 2) + { + material.SetVector("_FogAxisOption", new Vector4(0, 0, 1, 0)); + } + } + + if (material.HasProperty("_DirectionalMode")) + { + if (material.GetInt("_DirectionalMode") == 0) + { + material.SetFloat("_DirectionalModeBlend", 0.0f); + } + else if (material.GetInt("_DirectionalMode") == 1) + { + material.SetFloat("_DirectionalModeBlend", 1.0f); + } + } + + if (material.HasProperty("_NoiseMode")) + { + if (material.GetInt("_NoiseMode") == 0) + { + material.SetFloat("_NoiseModeBlend", 0.0f); + } + else if (material.GetInt("_NoiseMode") == 2) + { + material.SetFloat("_NoiseModeBlend", 1.0f); + } + } + } +} diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogShaderGUI.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogShaderGUI.cs.meta new file mode 100644 index 00000000..cd445575 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogShaderGUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fefeae948a42a964faad5fe6c75c59de +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogWindows.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogWindows.cs new file mode 100644 index 00000000..bb6b0e2b --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogWindows.cs @@ -0,0 +1,41 @@ +using UnityEditor; +using UnityEngine; + +namespace AtmosphericHeightFog +{ + public static class HeightFogWindows + { + + [MenuItem("Window/BOXOPHOBIC/Atmospheric Height Fog/Publisher Page", false, 2000)] + public static void MoreAssets() + { + Application.OpenURL("https://assetstore.unity.com/publishers/20529"); + } + + [MenuItem("Window/BOXOPHOBIC/Atmospheric Height Fog/Discord Server", false, 2001)] + public static void Discord() + { + Application.OpenURL("https://discord.com/invite/znxuXET"); + } + + [MenuItem("Window/BOXOPHOBIC/Atmospheric Height Fog/Documentation", false, 2002)] + public static void Documentation() + { + Application.OpenURL("https://docs.google.com/document/d/1pIzIHIZ-cSh2ykODSZCbAPtScJ4Jpuu7lS3rNEHCLbc/edit#"); + } + + [MenuItem("Window/BOXOPHOBIC/Atmospheric Height Fog/Changelog", false, 2003)] + public static void Chnagelog() + { + Application.OpenURL("https://docs.google.com/document/d/1pIzIHIZ-cSh2ykODSZCbAPtScJ4Jpuu7lS3rNEHCLbc/edit#heading=h.1rbujejuzjce"); + } + + [MenuItem("Window/BOXOPHOBIC/Atmospheric Height Fog/Write A Review", false, 3001)] + public static void WriteAReview() + { + Application.OpenURL("https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/atmospheric-height-fog-optimized-fog-shaders-for-consoles-mobile-143825#reviews"); + } + } +} + + diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogWindows.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogWindows.cs.meta new file mode 100644 index 00000000..48557f75 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/HeightFogWindows.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5fcdedd08e41e034790d1fa393bcb67e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Version.asset b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Version.asset new file mode 100644 index 00000000..d45e51c2 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Version.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93308045fbb3c5e42ba5ccb66d848632, type: 3} + m_Name: Version + m_EditorClassIdentifier: + data: 181 diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Version.asset.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Version.asset.meta new file mode 100644 index 00000000..ccb072a9 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Editor/Version.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41b457a34c9fb7f45a332c79a90945b5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions.meta new file mode 100644 index 00000000..f801216f --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7f677b222bd908a4eb6e8b6f446f0c95 +folderAsset: yes +timeCreated: 1568793675 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.asset b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.asset new file mode 100644 index 00000000..06d67a07 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.asset @@ -0,0 +1,48 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78b2425a2284af743826c689403a4924, type: 3} + m_Name: Apply Height Fog + m_EditorClassIdentifier: + m_functionInfo: "// Made with Amplify Shader Editor\n// Available at the Unity Asset + Store - http://u3d.as/y3X \n/*ASEBEGIN\nVersion=18103\n1927;1;1906;1020;2237.796;1103.186;1;True;False\nNode;AmplifyShaderEditor.FunctionNode;92;-1664,-640;Inherit;False;Base;-1;;836;13c50910e5b86de4097e1181ba121e0e;2,99,0,116,0;0;3;FLOAT4;113;FLOAT3;86;FLOAT;87\nNode;AmplifyShaderEditor.LerpOp;82;-1344,-768;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.FunctionInput;81;-1664,-768;Inherit;False;Color;3;0;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.FunctionOutput;87;-1344,-576;Inherit;False;False;-1;Fog + Alpha;2;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionOutput;86;-1344,-640;Inherit;False;False;-1;Fog + Color;1;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.FunctionOutput;85;-896,-768;Inherit;False;True;-1;Fog + Applied;0;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.CommentaryNode;56;-1664,-896;Inherit;False;890.9961;100;Final + Pass;0;;0.684,1,0,1;0;0\nWireConnection;82;0;81;0\nWireConnection;82;1;92;86\nWireConnection;82;2;92;87\nWireConnection;87;0;92;87\nWireConnection;86;0;92;86\nWireConnection;85;0;82;0\nASEEND*/\n//CHKSM=4A9132F03100914AF35678CB0005EE78ACFFC33B" + m_functionName: + m_description: "Use this function to apply fog on transparent or custom UI shaders + made with Amplify Shader Editor. \n\no Surface Shaders\nWhen using Surface Shaders + or Lightweight PBR template, connect the function to the Emission port. If Emission + is used, pass the emission color through the Apply Height Fog node.\n\no Fragment + Shaders:\nWhen Unlit or custom UI shaders are used, pass the final color through + the Apply Height Fog node.\n" + m_additionalIncludes: + m_additionalIncludes: [] + m_outsideIncludes: [] + m_additionalPragmas: + m_additionalPragmas: [] + m_outsidePragmas: [] + m_additionalDirectives: + m_validData: 0 + m_isDirty: 1 + m_moduleName: ' Additional Directives' + m_independentModule: 1 + m_additionalDirectives: [] + m_shaderFunctionDirectives: [] + m_nativeDirectives: [] + m_nativeDirectivesIndex: -1 + m_nativeDirectivesFoldout: 0 + m_directivesSaveItems: [] + m_nodeCategory: 3 + m_customNodeCategory: + m_previewPosition: 0 + m_hidden: 0 diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.asset.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.asset.meta new file mode 100644 index 00000000..059aa075 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 950890317d4f36a48a68d150cdab0168 +timeCreated: 1570688044 +licenseType: Store +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.shadersubgraph b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.shadersubgraph new file mode 100644 index 00000000..58eed054 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.shadersubgraph @@ -0,0 +1,80 @@ +{ + "m_SerializedProperties": [ + { + "typeInfo": { + "fullName": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty" + }, + "JSONnodeData": "{\n \"m_Guid\": {\n \"m_GuidSerialized\": \"b69cb30a-0386-457b-91f6-f0e92944efd1\"\n },\n \"m_Name\": \"Color\",\n \"m_DefaultReferenceName\": \"Vector3_99F0267D\",\n \"m_OverrideReferenceName\": \"\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Precision\": 2,\n \"m_GPUInstanced\": false,\n \"m_Hidden\": false,\n \"m_Value\": {\n \"x\": 0.0,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n }\n}" + } + ], + "m_SerializedKeywords": [], + "m_SerializableNodes": [ + { + "typeInfo": { + "fullName": "UnityEditor.ShaderGraph.SubGraphOutputNode" + }, + "JSONnodeData": "{\n \"m_GuidSerialized\": \"0c52e981-24f8-4615-892c-8ee0ff31b125\",\n \"m_GroupGuidSerialized\": \"00000000-0000-0000-0000-000000000000\",\n \"m_Name\": \"Out_Vector3\",\n \"m_NodeVersion\": 0,\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 314.0,\n \"y\": -43.0,\n \"width\": 138.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_Precision\": 0,\n \"m_PreviewExpanded\": true,\n \"m_CustomColors\": {\n \"m_SerializableColors\": []\n }\n}" + }, + { + "typeInfo": { + "fullName": "UnityEditor.ShaderGraph.CustomFunctionNode" + }, + "JSONnodeData": "{\n \"m_GuidSerialized\": \"2b9df15b-091f-42a7-8b60-5e2c7c9e6d9b\",\n \"m_GroupGuidSerialized\": \"00000000-0000-0000-0000-000000000000\",\n \"m_Name\": \"Custom Function\",\n \"m_NodeVersion\": 0,\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 31.0,\n \"y\": -40.0,\n \"width\": 208.0,\n \"height\": 302.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Color\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Color\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"FogParams\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"FogParams\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_Precision\": 2,\n \"m_PreviewExpanded\": true,\n \"m_CustomColors\": {\n \"m_SerializableColors\": []\n },\n \"m_SourceType\": 0,\n \"m_FunctionName\": \"ApplyAtmosphericHeightFog\",\n \"m_FunctionSource\": \"8db8edf9bba0e9d48998019ca6c2f9ff\",\n \"m_FunctionBody\": \"Enter function body here...\"\n}" + }, + { + "typeInfo": { + "fullName": "UnityEditor.ShaderGraph.CustomFunctionNode" + }, + "JSONnodeData": "{\n \"m_GuidSerialized\": \"5f79ad2f-fb08-4321-acfc-cff0d1d60256\",\n \"m_GroupGuidSerialized\": \"00000000-0000-0000-0000-000000000000\",\n \"m_Name\": \"Custom Function\",\n \"m_NodeVersion\": 0,\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -312.0,\n \"y\": -39.0,\n \"width\": 251.0,\n \"height\": 278.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"World Position\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"WorldPosition\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"FogParams\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"FogParams\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_Precision\": 2,\n \"m_PreviewExpanded\": true,\n \"m_CustomColors\": {\n \"m_SerializableColors\": []\n },\n \"m_SourceType\": 0,\n \"m_FunctionName\": \"GetAtmosphericHeightFog\",\n \"m_FunctionSource\": \"8db8edf9bba0e9d48998019ca6c2f9ff\",\n \"m_FunctionBody\": \"Enter function body here...\"\n}" + }, + { + "typeInfo": { + "fullName": "UnityEditor.ShaderGraph.PositionNode" + }, + "JSONnodeData": "{\n \"m_GuidSerialized\": \"93da892c-c65f-436e-ac74-72d9b2e81019\",\n \"m_GroupGuidSerialized\": \"00000000-0000-0000-0000-000000000000\",\n \"m_Name\": \"Position\",\n \"m_NodeVersion\": 1,\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -612.0,\n \"y\": -41.0,\n \"width\": 208.0,\n \"height\": 314.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_Precision\": 1,\n \"m_PreviewExpanded\": true,\n \"m_CustomColors\": {\n \"m_SerializableColors\": []\n },\n \"m_Space\": 2\n}" + }, + { + "typeInfo": { + "fullName": "UnityEditor.ShaderGraph.PropertyNode" + }, + "JSONnodeData": "{\n \"m_GuidSerialized\": \"3638eeb4-65bf-40a4-add7-73b2625238d6\",\n \"m_GroupGuidSerialized\": \"00000000-0000-0000-0000-000000000000\",\n \"m_Name\": \"Property\",\n \"m_NodeVersion\": 0,\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -169.0,\n \"y\": -112.0,\n \"width\": 109.0,\n \"height\": 34.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Color\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_Precision\": 2,\n \"m_PreviewExpanded\": true,\n \"m_CustomColors\": {\n \"m_SerializableColors\": []\n },\n \"m_PropertyGuidSerialized\": \"b69cb30a-0386-457b-91f6-f0e92944efd1\"\n}" + } + ], + "m_Groups": [], + "m_StickyNotes": [], + "m_SerializableEdges": [ + { + "typeInfo": { + "fullName": "UnityEditor.Graphing.Edge" + }, + "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"5f79ad2f-fb08-4321-acfc-cff0d1d60256\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"2b9df15b-091f-42a7-8b60-5e2c7c9e6d9b\"\n }\n}" + }, + { + "typeInfo": { + "fullName": "UnityEditor.Graphing.Edge" + }, + "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"93da892c-c65f-436e-ac74-72d9b2e81019\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"5f79ad2f-fb08-4321-acfc-cff0d1d60256\"\n }\n}" + }, + { + "typeInfo": { + "fullName": "UnityEditor.Graphing.Edge" + }, + "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"2b9df15b-091f-42a7-8b60-5e2c7c9e6d9b\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"0c52e981-24f8-4615-892c-8ee0ff31b125\"\n }\n}" + }, + { + "typeInfo": { + "fullName": "UnityEditor.Graphing.Edge" + }, + "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"3638eeb4-65bf-40a4-add7-73b2625238d6\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"2b9df15b-091f-42a7-8b60-5e2c7c9e6d9b\"\n }\n}" + } + ], + "m_PreviewData": { + "serializedMesh": { + "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", + "m_Guid": "" + } + }, + "m_Path": "Sub Graphs", + "m_ConcretePrecision": 1, + "m_ActiveOutputNodeGuidSerialized": "" +} \ No newline at end of file diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.shadersubgraph.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.shadersubgraph.meta new file mode 100644 index 00000000..ab4ae13e --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Apply Height Fog.shadersubgraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6a18ef2b21b74fd4ca138cce8d47eaa5 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Base.asset b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Base.asset new file mode 100644 index 00000000..cb708f5a --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Base.asset @@ -0,0 +1,67 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78b2425a2284af743826c689403a4924, type: 3} + m_Name: Base + m_EditorClassIdentifier: + m_functionInfo: "// Made with Amplify Shader Editor\n// Available at the Unity Asset + Store - http://u3d.as/y3X \n/*ASEBEGIN\nVersion=18103\n1927;7;1906;1014;1218.944;-5991.897;1;True;False\nNode;AmplifyShaderEditor.ScreenDepthNode;227;-1664,1536;Inherit;False;1;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SwizzleNode;234;-1408,1376;Inherit;False;FLOAT2;0;1;2;3;1;0;FLOAT4;0,0,0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.DynamicAppendNode;233;1344,1376;Inherit;False;FLOAT4;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;1;False;1;FLOAT4;0\nNode;AmplifyShaderEditor.SwizzleNode;32;-1408,-1408;Inherit;False;FLOAT3;0;1;2;3;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.WorldPosInputsNode;1;-1664,3072;Float;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.DynamicAppendNode;114;1024,-1024;Inherit;False;FLOAT4;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0\nNode;AmplifyShaderEditor.GetLocalVarNode;254;-1664,3200;Inherit;False;253;WorldPositionFromDepth;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleSubtractOpNode;232;704,1792;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;248;-1024,1280;Inherit;False;FLOAT2;1;0;FLOAT2;0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.SimpleDivideOpNode;196;-1408,8064;Inherit;False;2;0;FLOAT;1;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleDivideOpNode;236;832,1280;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.WorldPosInputsNode;231;384,1952;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;194;-1280,8192;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.FunctionSubtitle;102;-1152,3200;Inherit;False;Screen + Space;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.ScaleAndOffsetNode;199;-704,7936;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0.5;False;2;FLOAT;0.5;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionSwitchByPipeline;222;2560,1280;Inherit;False;4;0;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.DynamicAppendNode;239;2048,1280;Inherit;False;FLOAT3;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.DynamicAppendNode;244;-704,1280;Inherit;False;FLOAT3;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;1;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;10;-1024,8192;Inherit;False;7;NoiseDistanceMask;1;0;OBJECT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;245;1760,1280;Inherit;False;FLOAT4;1;0;FLOAT4;0,0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.UnityObjToClipPosHlpNode;224;576,2176;Inherit;False;1;0;FLOAT3;0,0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.GetLocalVarNode;21;-1664,-304;Inherit;False;16;FogHeightMask;1;0;OBJECT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SaturateNode;279;-1248,-1024;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleSubtractOpNode;216;2048,1792;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleSubtractOpNode;302;-1408,-1024;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0.5;False;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;19;-1664,-384;Inherit;False;12;FogDistanceMask;1;0;OBJECT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.CameraProjectionNode;238;-192,1280;Inherit;False;unity_CameraInvProjection;0;1;FLOAT4x4;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;243;1600,1280;Inherit;False;2;2;0;FLOAT4x4;0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;229;384,1280;Inherit;False;FLOAT4;1;0;FLOAT4;0,0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.CustomExpressionNode;235;-1408,1280;Inherit;False;#if + UNITY_SINGLE_PASS_STEREO$$float4 scaleOffset = unity_StereoScaleOffset[ unity_StereoEyeIndex]@$UV.xy + = (UV.xy - scaleOffset.zw) / scaleOffset.xy@$$#endif$$return UV@;2;False;1;True;UV;FLOAT2;0,0;In;;Float;False;UnStereo;False;False;0;1;0;FLOAT2;0,0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.WorldSpaceCameraPos;230;384,1792;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.LerpOp;258;-256,-1408;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.OneMinusNode;251;-1408,1616;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionNode;256;832,-1408;Inherit;False;Handle + Color Space;-1;;859;f6f44b689bae74d47a0885dbe3018c48;0;1;2;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;253;2800,1280;Float;False;WorldPositionFromDepth;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;260;-1664,-1024;Inherit;False;12;FogDistanceMask;1;0;OBJECT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;217;1184,2176;Inherit;False;FLOAT4;1;0;FLOAT4;0,0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.WorldSpaceCameraPos;219;1664,1792;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.ScaleAndOffsetNode;249;-448,1280;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT;2;False;2;FLOAT;-1;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RangedFloatNode;39;320,-128;Half;False;Global;AHF_FogIntensity;AHF_FogIntensity;3;1;[HideInInspector];Create;False;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0\nNode;AmplifyShaderEditor.LerpOp;112;128,-256;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionSwitch;99;-640,3072;Inherit;False;World + Position;False;0;2;-1;World Space;Screen Space;Object;-1;9;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;28;-896,-128;Inherit;False;24;NoiseSimplex3D;1;0;OBJECT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;111;-256,-256;Inherit;False;108;SkyboxFogHeightMask;1;0;OBJECT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;330;-1280,-256;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.ComputeScreenPosHlpNode;225;896,2176;Inherit;False;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0\nNode;AmplifyShaderEditor.WorldSpaceCameraPos;316;-1664,6336;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.StaticSwitch;42;-256,-384;Float;False;Property;AHF_NOISEMODE;AHF_NoiseMode;14;0;Create;False;0;0;False;0;False;1;0;0;False;;KeywordEnum;2;_OFF;_PROCEDURAL3D;Create;False;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.Vector3Node;161;-2688,1280;Half;False;Global;AHF_FogAxisOption;AHF_FogAxisOption;0;0;Create;True;0;0;False;0;False;0,0,0;0,1,0;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.Vector3Node;307;-1664,6528;Half;False;Global;AHF_DirectionalDir;AHF_DirectionalDir;0;0;Create;True;0;0;False;0;False;0,0,0;0.7081007,0.2823132,0.6472192;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.RangedFloatNode;329;-1280,-128;Half;False;Global;AHF_FogLayersMode;AHF_FogLayersMode;0;0;Create;True;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;181;-2400,1280;Half;False;AHF_FogAxisOption;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.FunctionSwitch;116;320,-384;Inherit;False;Option;False;0;2;-1;In + 0;In 1;Instance;99;9;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;300;-1664,-896;Half;False;Global;AHF_FogColorDuo;AHF_FogColorDuo;0;0;Create;True;0;0;False;0;False;1;0;0;1;0;1;FLOAT;0\nNode;AmplifyShaderEditor.ColorNode;26;-1664,-1408;Half;False;Global;AHF_FogColorStart;AHF_FogColorStart;4;0;Create;False;0;0;False;0;False;0.4411765,0.722515,1,0;0.5,0.75,1,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;205;-1280,7936;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;110;-256,-128;Inherit;False;95;SkyboxMask;1;0;OBJECT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.Vector3Node;201;-1664,8192;Half;False;Global;AHF_NoiseSpeed;AHF_NoiseSpeed;16;0;Create;False;0;0;False;0;False;0.5,0.5,0;0.5,0,0.5;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.ScreenPosInputsNode;241;-1664,1280;Float;False;0;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;215;1920,1984;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.ScreenDepthNode;218;1664,1984;Inherit;False;0;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;9;-1664,7936;Inherit;False;2;WorldPosition;1;0;OBJECT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.DynamicAppendNode;237;640,1280;Inherit;False;FLOAT3;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;247;1152,1280;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT3;1,1,-1;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.CameraToWorldMatrix;240;1344,1280;Inherit;False;0;1;FLOAT4x4;0\nNode;AmplifyShaderEditor.CustomExpressionNode;226;2304,1408;Inherit;False;float3 + result = _731@$#if ASE_SRP_VERSION > 70301$result = _741@$#endif$return result@;3;False;2;True;_731;FLOAT3;0,0,0;In;;Inherit;False;True;_741;FLOAT3;0,0,0;In;;Inherit;False;Depth + By Version;True;False;0;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.ColorNode;255;-1664,-1216;Half;False;Global;AHF_FogColorEnd;AHF_FogColorEnd;4;0;Create;False;0;0;False;0;False;0.4411765,0.722515,1,0;0.75,1,1.25,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;43;640,-384;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;37;-448,-256;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleDivideOpNode;223;1664,2080;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RangedFloatNode;207;-1664,8064;Half;False;Global;AHF_NoiseScale;AHF_NoiseScale;15;0;Create;False;0;0;False;0;False;6;30;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionSwitchByPipeline;246;-1248,1280;Inherit;False;4;0;FLOAT;0;False;3;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;1;FLOAT2;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;242;128,1280;Inherit;False;2;2;0;FLOAT4x4;0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0\nNode;AmplifyShaderEditor.PosVertexDataNode;228;384,2176;Inherit;False;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.StaticSwitch;250;-1024,1536;Float;False;Property;_Keyword1;Keyword + 1;3;0;Fetch;True;0;0;False;0;False;0;0;0;False;UNITY_REVERSED_Z;Toggle;2;Key0;Key1;Fetch;False;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;152;-1280,3776;Half;False;Global;AHF_FogDistanceEnd;AHF_FogDistanceEnd;4;0;Create;False;0;0;False;0;False;30;100;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.LerpOp;198;-384,7936;Inherit;False;3;0;FLOAT;1;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.DynamicAppendNode;220;-192,1408;Inherit;False;FLOAT4;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;1;False;1;FLOAT4;0\nNode;AmplifyShaderEditor.SaturateNode;155;-640,3584;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;12;432,3584;Half;False;FogDistanceMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionNode;153;-896,3584;Inherit;False;Remap + To 0-1;-1;;860;e6e209ac370e7e74da13a6a97e315390;0;3;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;289;-640,3712;Half;False;Global;AHF_FogDistanceFalloff;AHF_FogDistanceFalloff;3;0;Create;False;0;0;False;0;False;0;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;4;-1664,3584;Inherit;False;2;WorldPosition;1;0;OBJECT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.DistanceOpNode;151;-1280,3584;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;157;-1280,3712;Half;False;Global;AHF_FogDistanceStart;AHF_FogDistanceStart;3;0;Create;False;0;0;False;0;False;0;-100;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;8;-1664,4096;Inherit;False;2;WorldPosition;1;0;OBJECT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.PowerNode;288;-128,3584;Inherit;False;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;159;-1216,4096;Inherit;False;FLOAT3;1;0;FLOAT3;0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.RegisterLocalVarNode;16;432,4096;Half;False;FogHeightMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.DotProductOpNode;145;-832,6272;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SaturateNode;167;-512,4096;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;162;-1408,4096;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RangedFloatNode;164;-1216,4224;Half;False;Global;AHF_FogHeightEnd;AHF_FogHeightEnd;6;0;Create;False;0;0;False;0;False;0;100;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;160;-960,4096;Inherit;False;3;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.AbsOpNode;324;-384,3584;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionNode;165;-704,4096;Inherit;False;Remap + To 0-1;-1;;857;e6e209ac370e7e74da13a6a97e315390;0;3;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.WorldSpaceCameraPos;154;-1664,3712;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.GetLocalVarNode;183;-1664,4224;Inherit;False;181;AHF_FogAxisOption;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.NoiseGeneratorNode;193;-960,7936;Inherit;False;Simplex3D;False;False;2;0;FLOAT3;0,0,0;False;1;FLOAT;1;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;166;-1216,4288;Half;False;Global;AHF_FogHeightStart;AHF_FogHeightStart;5;0;Create;False;0;0;False;0;False;5;0;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.AbsOpNode;322;-320,4096;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;290;-512,4224;Half;False;Global;AHF_FogHeightFalloff;AHF_FogHeightFalloff;6;0;Create;False;0;0;False;0;False;0;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.PowerNode;291;-128,4096;Inherit;False;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0\nNode;AmplifyShaderEditor.BreakToComponentsNode;170;-1152,5392;Inherit;False;FLOAT3;1;0;FLOAT3;0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15\nNode;AmplifyShaderEditor.SaturateNode;176;-448,5392;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;108;384,5392;Half;False;SkyboxFogHeightMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;326;192,5392;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;106;-1664,5392;Inherit;False;2;WorldPosition;1;0;OBJECT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;173;-1280,5392;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.NormalizeNode;169;-1440,5392;Inherit;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.FunctionNode;178;-640,5392;Inherit;False;Remap + To 0-1;-1;;856;e6e209ac370e7e74da13a6a97e315390;0;3;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.AbsOpNode;180;-768,5392;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.LerpOp;179;-32,5392;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;1;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.AbsOpNode;323;-304,5392;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.OneMinusNode;124;-1408,4992;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;171;-896,5392;Inherit;False;3;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.PowerNode;309;-176,5392;Inherit;False;True;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;95;448,4992;Half;False;SkyboxMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.CeilOpNode;121;-832,4992;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;203;-704,8192;Inherit;False;3;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.NormalizeNode;318;-1152,6272;Inherit;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.StaticSwitch;123;-1152,4992;Float;False;Property;_Keyword3;Keyword + 3;3;0;Fetch;True;0;0;False;0;False;0;0;0;False;UNITY_REVERSED_Z;Toggle;2;Key0;Key1;Fetch;False;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;310;-768,5568;Half;False;Global;AHF_SkyboxFogFalloff;AHF_SkyboxFogFalloff;3;0;Create;False;0;0;False;0;False;0;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionSubtitle;101;-1152,3072;Inherit;False;World + Space;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.ScreenDepthNode;118;-1664,4992;Inherit;False;1;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.OneMinusNode;122;-640,4992;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;175;-1152,5568;Half;False;Global;AHF_SkyboxFogHeight;AHF_SkyboxFogHeight;8;0;Create;False;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;7;416,7424;Half;False;NoiseDistanceMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;327;-64,5568;Half;False;Global;AHF_SkyboxFogIntensity;AHF_SkyboxFogIntensity;9;0;Create;False;0;0;False;0;False;0;1;0;1;0;1;FLOAT;0\nNode;AmplifyShaderEditor.Vector3Node;221;832,1408;Half;False;Constant;_Vector1;Vector + 1;9;0;Create;True;0;0;False;0;False;1,1,-1;0,0,0;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.PowerNode;319;0,6272;Inherit;False;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;139;-640,6496;Half;False;Global;AHF_DirectionalModeBlend;AHF_DirectionalModeBlend;4;0;Create;False;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.SwizzleNode;257;-1408,-1216;Inherit;False;FLOAT3;0;1;2;3;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;305;-1024,-1024;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;2;448,3072;Float;False;WorldPosition;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RangedFloatNode;189;-1216,7552;Half;False;Global;AHF_NoiseDistanceEnd;AHF_NoiseDistanceEnd;13;0;Create;False;0;0;False;0;False;10;50;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;315;-1664,6272;Inherit;False;2;WorldPosition;1;0;OBJECT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleSubtractOpNode;317;-1344,6272;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;30;432,6272;Half;False;DirectionalMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;140;-320,6272;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;3;-1664,7424;Inherit;False;2;WorldPosition;1;0;OBJECT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.ScaleAndOffsetNode;149;-640,6272;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0.5;False;2;FLOAT;0.5;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleTimeNode;204;-1664,8352;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;200;-1024,8320;Half;False;Global;AHF_NoiseModeBlend;AHF_NoiseModeBlend;11;0;Create;False;0;0;False;0;False;0.5;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleAddOpNode;197;-1088,7936;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RangedFloatNode;195;-1024,8256;Half;False;Global;AHF_NoiseIntensity;AHF_NoiseIntensity;12;0;Create;False;0;0;False;0;False;0.5;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionNode;187;-896,7424;Inherit;False;Remap + To 0-1;-1;;858;e6e209ac370e7e74da13a6a97e315390;0;3;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SaturateNode;185;-640,7424;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;142;-640,6400;Half;False;Global;AHF_DirectionalIntensity;AHF_DirectionalIntensity;4;0;Create;False;0;0;False;0;False;0;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.WorldSpaceCameraPos;190;-1664,7552;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.DistanceOpNode;188;-1216,7424;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.AbsOpNode;325;-128,6272;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;177;-384,5568;Half;False;Global;AHF_SkyboxFogFill;AHF_SkyboxFogFill;9;0;Create;False;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0\nNode;AmplifyShaderEditor.RegisterLocalVarNode;24;432,7936;Half;False;NoiseSimplex3D;-1;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.NegateNode;206;-1408,8192;Inherit;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;29;-1152,-384;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.GetLocalVarNode;182;-1664,5568;Inherit;False;181;AHF_FogAxisOption;1;0;OBJECT;;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.LerpOp;328;-896,-384;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;321;-256,6496;Half;False;Global;AHF_DirectionalFalloff;AHF_DirectionalFalloff;0;0;Create;True;0;0;False;0;False;1;8;1;8;0;1;FLOAT;0\nNode;AmplifyShaderEditor.SaturateNode;331;-1152.185,-252.8735;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.LerpOp;40;384,-1408;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GetLocalVarNode;35;-256,-960;Inherit;False;30;DirectionalMask;1;0;OBJECT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.ColorNode;23;-256,-1216;Half;False;Global;AHF_DirectionalColor;AHF_DirectionalColor;12;0;Create;False;0;0;False;0;False;1,0.6300203,0.1617647,0;1,0.75,0.5,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4\nNode;AmplifyShaderEditor.SwizzleNode;31;0,-1216;Inherit;False;FLOAT3;0;1;2;3;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.FunctionOutput;113;1280,-1024;Inherit;False;True;-1;Fog + RGBA;0;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0\nNode;AmplifyShaderEditor.FunctionOutput;87;1280,-384;Inherit;False;False;-1;Fog + Alpha;2;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionOutput;86;1280,-1408;Inherit;False;False;-1;Fog + Color;1;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.CommentaryNode;61;-1664,3456;Inherit;False;2301.125;100;Fog + Distance;0;;0,0.5882353,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;252;-1664,1152;Inherit;False;4738.447;100;World + Position from Depth;0;;0,1,0,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;60;-1664,7808;Inherit;False;2301.726;100;Noise;0;;0.7529412,1,0.7529412,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;115;-1664,-1536;Inherit;False;3079.888;100;Final + Pass;0;;0.497,1,0,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;59;-1664,6144;Inherit;False;2307.506;100;Directional + Light Support;0;;1,0.634,0.1617647,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;184;-2688,1152;Inherit;False;516.5447;100;Register;0;;1,1,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;57;-1664,3968;Inherit;False;2307.752;100;Fog + Height;0;;0,0.5882353,1,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;98;-1664,2944;Inherit;False;2305.188;100;World + Position;0;;0,1,0,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;109;-1664,5264;Inherit;False;2303.083;100;Skybox + Fog Height;0;;0.7983367,0.1411765,0.8313726,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;97;-1664,4864;Inherit;False;2305.317;100;Skybox + Mask;0;;0.7983367,0.1411765,0.8313726,1;0;0\nNode;AmplifyShaderEditor.CommentaryNode;58;-1664,7296;Inherit;False;2300.478;100;Noise + Distance Mask;0;;0.7529412,1,0.7529412,1;0;0\nWireConnection;234;0;241;0\nWireConnection;233;0;247;0\nWireConnection;32;0;26;0\nWireConnection;114;0;256;0\nWireConnection;114;3;43;0\nWireConnection;232;0;230;0\nWireConnection;232;1;231;0\nWireConnection;248;0;246;0\nWireConnection;196;1;207;0\nWireConnection;236;0;237;0\nWireConnection;236;1;229;3\nWireConnection;194;0;206;0\nWireConnection;194;1;204;0\nWireConnection;102;0;254;0\nWireConnection;199;0;193;0\nWireConnection;222;3;239;0\nWireConnection;222;1;226;0\nWireConnection;239;0;245;0\nWireConnection;239;1;245;1\nWireConnection;239;2;245;2\nWireConnection;244;0;248;0\nWireConnection;244;1;248;1\nWireConnection;244;2;250;0\nWireConnection;245;0;243;0\nWireConnection;224;0;228;0\nWireConnection;279;0;302;0\nWireConnection;216;0;219;0\nWireConnection;216;1;215;0\nWireConnection;302;0;260;0\nWireConnection;243;0;240;0\nWireConnection;243;1;233;0\nWireConnection;229;0;242;0\nWireConnection;235;0;241;0\nWireConnection;258;0;32;0\nWireConnection;258;1;257;0\nWireConnection;258;2;305;0\nWireConnection;251;0;227;0\nWireConnection;256;2;40;0\nWireConnection;253;0;222;0\nWireConnection;217;0;225;0\nWireConnection;249;0;244;0\nWireConnection;112;0;42;0\nWireConnection;112;1;111;0\nWireConnection;112;2;110;0\nWireConnection;99;0;101;0\nWireConnection;99;1;102;0\nWireConnection;330;0;19;0\nWireConnection;330;1;21;0\nWireConnection;225;0;224;0\nWireConnection;42;1;328;0\nWireConnection;42;0;37;0\nWireConnection;181;0;161;0\nWireConnection;116;0;42;0\nWireConnection;116;1;112;0\nWireConnection;205;0;9;0\nWireConnection;205;1;196;0\nWireConnection;215;0;218;0\nWireConnection;215;1;223;0\nWireConnection;237;0;229;0\nWireConnection;237;1;229;1\nWireConnection;237;2;229;2\nWireConnection;247;0;236;0\nWireConnection;247;1;221;0\nWireConnection;226;0;239;0\nWireConnection;226;1;216;0\nWireConnection;43;0;116;0\nWireConnection;43;1;39;0\nWireConnection;37;0;328;0\nWireConnection;37;1;28;0\nWireConnection;223;0;232;0\nWireConnection;223;1;217;3\nWireConnection;246;3;235;0\nWireConnection;246;1;234;0\nWireConnection;242;0;238;0\nWireConnection;242;1;220;0\nWireConnection;250;1;227;0\nWireConnection;250;0;251;0\nWireConnection;198;1;199;0\nWireConnection;198;2;203;0\nWireConnection;220;0;249;0\nWireConnection;155;0;153;0\nWireConnection;12;0;288;0\nWireConnection;153;6;151;0\nWireConnection;153;7;157;0\nWireConnection;153;8;152;0\nWireConnection;151;0;4;0\nWireConnection;151;1;154;0\nWireConnection;288;0;324;0\nWireConnection;288;1;289;0\nWireConnection;159;0;162;0\nWireConnection;16;0;291;0\nWireConnection;145;0;318;0\nWireConnection;145;1;307;0\nWireConnection;167;0;165;0\nWireConnection;162;0;8;0\nWireConnection;162;1;183;0\nWireConnection;160;0;159;0\nWireConnection;160;1;159;1\nWireConnection;160;2;159;2\nWireConnection;324;0;155;0\nWireConnection;165;6;160;0\nWireConnection;165;7;164;0\nWireConnection;165;8;166;0\nWireConnection;193;0;197;0\nWireConnection;322;0;167;0\nWireConnection;291;0;322;0\nWireConnection;291;1;290;0\nWireConnection;170;0;173;0\nWireConnection;176;0;178;0\nWireConnection;108;0;326;0\nWireConnection;326;0;179;0\nWireConnection;326;1;327;0\nWireConnection;173;0;169;0\nWireConnection;173;1;182;0\nWireConnection;169;0;106;0\nWireConnection;178;6;180;0\nWireConnection;178;7;175;0\nWireConnection;180;0;171;0\nWireConnection;179;0;309;0\nWireConnection;179;2;177;0\nWireConnection;323;0;176;0\nWireConnection;124;0;118;0\nWireConnection;171;0;170;0\nWireConnection;171;1;170;1\nWireConnection;171;2;170;2\nWireConnection;309;0;323;0\nWireConnection;309;1;310;0\nWireConnection;95;0;122;0\nWireConnection;121;0;123;0\nWireConnection;203;0;10;0\nWireConnection;203;1;195;0\nWireConnection;203;2;200;0\nWireConnection;318;0;317;0\nWireConnection;123;1;124;0\nWireConnection;123;0;118;0\nWireConnection;101;0;1;0\nWireConnection;122;0;121;0\nWireConnection;7;0;185;0\nWireConnection;319;0;325;0\nWireConnection;319;1;321;0\nWireConnection;257;0;255;0\nWireConnection;305;0;279;0\nWireConnection;305;1;300;0\nWireConnection;2;0;99;0\nWireConnection;317;0;315;0\nWireConnection;317;1;316;0\nWireConnection;30;0;319;0\nWireConnection;140;0;149;0\nWireConnection;140;1;142;0\nWireConnection;149;0;145;0\nWireConnection;197;0;205;0\nWireConnection;197;1;194;0\nWireConnection;187;6;188;0\nWireConnection;187;7;189;0\nWireConnection;185;0;187;0\nWireConnection;188;0;3;0\nWireConnection;188;1;190;0\nWireConnection;325;0;140;0\nWireConnection;24;0;198;0\nWireConnection;206;0;201;0\nWireConnection;29;0;19;0\nWireConnection;29;1;21;0\nWireConnection;328;0;29;0\nWireConnection;328;1;331;0\nWireConnection;328;2;329;0\nWireConnection;331;0;330;0\nWireConnection;40;0;258;0\nWireConnection;40;1;31;0\nWireConnection;40;2;35;0\nWireConnection;31;0;23;0\nWireConnection;113;0;114;0\nWireConnection;87;0;43;0\nWireConnection;86;0;256;0\nASEEND*/\n//CHKSM=EEFA3F102F0396E6A76ED684B45F8594EC706EAE" + m_functionName: + m_description: + m_additionalIncludes: + m_additionalIncludes: [] + m_outsideIncludes: [] + m_additionalPragmas: + m_additionalPragmas: [] + m_outsidePragmas: [] + m_additionalDirectives: + m_validData: 0 + m_isDirty: 1 + m_moduleName: ' Additional Directives' + m_independentModule: 1 + m_additionalDirectives: [] + m_shaderFunctionDirectives: [] + m_nativeDirectives: [] + m_nativeDirectivesIndex: -1 + m_nativeDirectivesFoldout: 0 + m_directivesSaveItems: [] + m_nodeCategory: 3 + m_customNodeCategory: + m_previewPosition: 0 + m_hidden: 0 diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Base.asset.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Base.asset.meta new file mode 100644 index 00000000..fe610eef --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Base.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 13c50910e5b86de4097e1181ba121e0e +timeCreated: 1570688044 +licenseType: Store +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Compute Fog Distance.asset b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Compute Fog Distance.asset new file mode 100644 index 00000000..1a108235 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Compute Fog Distance.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78b2425a2284af743826c689403a4924, type: 3} + m_Name: Compute Fog Distance + m_EditorClassIdentifier: + m_functionInfo: "// Made with Amplify Shader Editor\n// Available at the Unity Asset + Store - http://u3d.as/y3X \n/*ASEBEGIN\nVersion=17602\n1927;7;1906;1014;1393;657.5599;1;True;False\nNode;AmplifyShaderEditor.DistanceOpNode;3;-576,-384;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;5;-896,-64;Half;False;Global;AHF_FogDistanceEnd;AHF_FogDistanceEnd;4;0;Create;False;0;0;False;0;30;60;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionNode;14;-384,-384;Inherit;False;Math + Remap To 0-2;-1;;545;e6e209ac370e7e74da13a6a97e315390;0;3;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.WorldSpaceCameraPos;1;-896,-304;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3\nNode;AmplifyShaderEditor.SaturateNode;7;-128,-384;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionInput;13;-896,-384;Inherit;False;WorldPosition;3;0;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.RangedFloatNode;4;-896,-144;Half;False;Global;AHF_FogDistanceStart;AHF_FogDistanceStart;3;0;Create;False;0;0;False;0;0;0;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionOutput;0;64,-384;Inherit;False;True;-1;FogDistanceMask;0;False;1;0;FLOAT;0;False;1;FLOAT;0\nWireConnection;3;0;13;0\nWireConnection;3;1;1;0\nWireConnection;14;6;3;0\nWireConnection;14;7;4;0\nWireConnection;14;8;5;0\nWireConnection;7;0;14;0\nWireConnection;0;0;7;0\nASEEND*/\n//CHKSM=357410C3E110628DB9546DC90118EF40E90338B2" + m_functionName: + m_description: + m_additionalIncludes: + m_additionalIncludes: [] + m_outsideIncludes: [] + m_additionalPragmas: + m_additionalPragmas: [] + m_outsidePragmas: [] + m_additionalDirectives: + m_validData: 0 + m_isDirty: 0 + m_moduleName: ' Additional Directives' + m_independentModule: 1 + m_additionalDirectives: [] + m_shaderFunctionDirectives: [] + m_nativeDirectives: [] + m_nativeDirectivesIndex: -1 + m_nativeDirectivesFoldout: 0 + m_directivesSaveItems: [] + m_nodeCategory: 3 + m_customNodeCategory: + m_previewPosition: 0 + m_hidden: 0 diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Compute Fog Distance.asset.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Compute Fog Distance.asset.meta new file mode 100644 index 00000000..7a4a8baf --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Compute Fog Distance.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a5f090963b8f9394a984ee752ce42488 +timeCreated: 1570102705 +licenseType: Store +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Color Space.asset b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Color Space.asset new file mode 100644 index 00000000..49089035 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Color Space.asset @@ -0,0 +1,38 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78b2425a2284af743826c689403a4924, type: 3} + m_Name: Handle Color Space + m_EditorClassIdentifier: + m_functionInfo: "// Made with Amplify Shader Editor\n// Available at the Unity Asset + Store - http://u3d.as/y3X \n/*ASEBEGIN\nVersion=17001\n1927;29;1906;1014;1516;524;1;True;False\nNode;AmplifyShaderEditor.FunctionInput;2;-896,0;Float;False;Color;3;0;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.GammaToLinearNode;3;-640,-64;Float;False;0;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.StaticSwitch;1;-384,0;Float;False;Property;_UNITY_COLORSPACE_GAMMA;UNITY_COLORSPACE_GAMMA;0;0;Create;True;0;0;False;0;0;0;0;False;UNITY_COLORSPACE_GAMMA;Toggle;2;Key0;Key1;Fetch;False;9;1;FLOAT3;0,0,0;False;0;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT3;0,0,0;False;5;FLOAT3;0,0,0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT3;0,0,0;False;1;FLOAT3;0\nNode;AmplifyShaderEditor.FunctionOutput;0;0,0;Float;False;True;;0;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0\nWireConnection;3;0;2;0\nWireConnection;1;1;3;0\nWireConnection;1;0;2;0\nWireConnection;0;0;1;0\nASEEND*/\n//CHKSM=67013BC63C3B27E353374B5D4D247177010A5481" + m_functionName: + m_description: + m_additionalIncludes: + m_additionalIncludes: [] + m_outsideIncludes: [] + m_additionalPragmas: + m_additionalPragmas: [] + m_outsidePragmas: [] + m_additionalDirectives: + m_validData: 0 + m_isDirty: 0 + m_moduleName: ' Additional Directives' + m_independentModule: 1 + m_additionalDirectives: [] + m_shaderFunctionDirectives: [] + m_nativeDirectives: [] + m_nativeDirectivesIndex: -1 + m_nativeDirectivesFoldout: 0 + m_directivesSaveItems: [] + m_nodeCategory: 3 + m_customNodeCategory: + m_previewPosition: 0 + m_hidden: 0 diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Color Space.asset.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Color Space.asset.meta new file mode 100644 index 00000000..542385ac --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Color Space.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f6f44b689bae74d47a0885dbe3018c48 +timeCreated: 1568879410 +licenseType: Store +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Tex Alpha.asset b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Tex Alpha.asset new file mode 100644 index 00000000..1234aa1c --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Tex Alpha.asset @@ -0,0 +1,38 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78b2425a2284af743826c689403a4924, type: 3} + m_Name: Handle Tex Alpha + m_EditorClassIdentifier: + m_functionInfo: "// Made with Amplify Shader Editor\n// Available at the Unity Asset + Store - http://u3d.as/y3X \n/*ASEBEGIN\nVersion=17001\n1927;29;1906;1014;1219;513;1;True;False\nNode;AmplifyShaderEditor.CeilOpNode;4;-320,80;Float;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionInput;2;-320,192;Float;False;Mask;1;1;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.LerpOp;3;-128,0;Float;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionInput;1;-512,0;Float;False;Alpha;1;0;False;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionOutput;0;128,0;Float;False;True;;0;False;1;0;FLOAT;0;False;1;FLOAT;0\nWireConnection;4;0;1;0\nWireConnection;3;0;1;0\nWireConnection;3;1;4;0\nWireConnection;3;2;2;0\nWireConnection;0;0;3;0\nASEEND*/\n//CHKSM=359A4287BBEDADC15949456D56D54270F350804C" + m_functionName: + m_description: + m_additionalIncludes: + m_additionalIncludes: [] + m_outsideIncludes: [] + m_additionalPragmas: + m_additionalPragmas: [] + m_outsidePragmas: [] + m_additionalDirectives: + m_validData: 0 + m_isDirty: 0 + m_moduleName: ' Additional Directives' + m_independentModule: 1 + m_additionalDirectives: [] + m_shaderFunctionDirectives: [] + m_nativeDirectives: [] + m_nativeDirectivesIndex: -1 + m_nativeDirectivesFoldout: 0 + m_directivesSaveItems: [] + m_nodeCategory: 3 + m_customNodeCategory: + m_previewPosition: 0 + m_hidden: 0 diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Tex Alpha.asset.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Tex Alpha.asset.meta new file mode 100644 index 00000000..86a74997 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Handle Tex Alpha.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 92f31391e7f50294c9c2d8747c81d6b6 +timeCreated: 1568367025 +licenseType: Store +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Is Pipeline.asset b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Is Pipeline.asset new file mode 100644 index 00000000..2e760ea9 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Is Pipeline.asset @@ -0,0 +1,39 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78b2425a2284af743826c689403a4924, type: 3} + m_Name: Is Pipeline + m_EditorClassIdentifier: + m_functionInfo: "// Made with Amplify Shader Editor\n// Available at the Unity Asset + Store - http://u3d.as/y3X \n/*ASEBEGIN\nVersion=17502\n1927;7;1906;1014;1238.301;483.1443;1;True;False\nNode;AmplifyShaderEditor.RangedFloatNode;4;-640,160;Half;False;Property;_IsHDPipeline;_IsHDPipeline;1;1;[HideInInspector];Create;False;0;0;True;0;0;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleMultiplyOpNode;5;-160,0;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;2;-640,0;Half;False;Property;_IsStandardPipeline;_IsStandardPipeline;0;1;[HideInInspector];Create;False;0;0;True;0;0;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionSwitchByPipeline;1;-384,0;Inherit;False;4;0;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.RangedFloatNode;3;-640,80;Half;False;Property;_IsUniversalPipeline;_IsUniversalPipeline;2;1;[HideInInspector];Create;False;0;0;True;0;0;1;0;0;0;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionOutput;0;0,0;Inherit;False;True;-1;;0;False;1;0;FLOAT;0;False;1;FLOAT;0\nWireConnection;5;0;1;0\nWireConnection;1;0;2;0\nWireConnection;1;3;2;0\nWireConnection;1;1;3;0\nWireConnection;1;2;4;0\nWireConnection;0;0;5;0\nASEEND*/\n//CHKSM=72B1DDE9D0321CEF3A35F69DAC1CF10E2B7944D7" + m_functionName: + m_description: + m_additionalIncludes: + m_additionalIncludes: [] + m_outsideIncludes: [] + m_additionalPragmas: + m_additionalPragmas: [] + m_outsidePragmas: [] + m_additionalDirectives: + m_validData: 0 + m_isDirty: 1 + m_moduleName: ' Additional Directives' + m_independentModule: 1 + m_additionalDirectives: [] + m_shaderFunctionDirectives: [] + m_nativeDirectives: [] + m_nativeDirectivesIndex: -1 + m_nativeDirectivesFoldout: 0 + m_directivesSaveItems: [] + m_nodeCategory: 3 + m_customNodeCategory: + m_previewPosition: 0 + m_hidden: 0 diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Is Pipeline.asset.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Is Pipeline.asset.meta new file mode 100644 index 00000000..750fd52c --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Is Pipeline.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b33d0c660fbdb24c98bea96428031b0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Remap To 0-1.asset b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Remap To 0-1.asset new file mode 100644 index 00000000..1c99d031 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Remap To 0-1.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78b2425a2284af743826c689403a4924, type: 3} + m_Name: Remap To 0-1 + m_EditorClassIdentifier: + m_functionInfo: "// Made with Amplify Shader Editor\n// Available at the Unity Asset + Store - http://u3d.as/y3X \n/*ASEBEGIN\nVersion=15407\n1927;29;1906;1014;1143.653;791.9193;1.377757;True;False\nNode;AmplifyShaderEditor.SimpleSubtractOpNode;9;-128,-256;Float;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionInput;7;-384,-128;Float;False;Min + Old;1;1;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionInput;8;-384,-64;Float;False;Max + Old;1;2;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleSubtractOpNode;10;-128,-128;Float;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionInput;6;-384,-256;Float;False;;1;0;True;1;0;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.SimpleDivideOpNode;11;128,-256;Float;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0\nNode;AmplifyShaderEditor.FunctionOutput;0;384,-256;Float;False;True;;0;False;1;0;FLOAT;0;False;1;FLOAT;0\nWireConnection;9;0;6;0\nWireConnection;9;1;7;0\nWireConnection;10;0;8;0\nWireConnection;10;1;7;0\nWireConnection;11;0;9;0\nWireConnection;11;1;10;0\nWireConnection;0;0;11;0\nASEEND*/\n//CHKSM=3398A488E740D858EDB9E40C589BAF327735EC39" + m_functionName: + m_description: 'Remap to 0-1. + +' + m_additionalIncludes: + m_additionalIncludes: [] + m_outsideIncludes: [] + m_additionalPragmas: + m_additionalPragmas: [] + m_outsidePragmas: [] + m_additionalDirectives: + m_validData: 0 + m_isDirty: 0 + m_moduleName: ' Additional Directives' + m_independentModule: 1 + m_additionalDirectives: [] + m_shaderFunctionDirectives: [] + m_nativeDirectives: [] + m_nativeDirectivesIndex: -1 + m_nativeDirectivesFoldout: 0 + m_directivesSaveItems: [] + m_nodeCategory: 7 + m_customNodeCategory: Advanced Dynamic Shaders + m_previewPosition: 0 + m_hidden: 0 diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Remap To 0-1.asset.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Remap To 0-1.asset.meta new file mode 100644 index 00000000..f6527e62 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Functions/Remap To 0-1.asset.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e6e209ac370e7e74da13a6a97e315390 +timeCreated: 1522076143 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes.meta new file mode 100644 index 00000000..3feeaa0c --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f65f99730f449cd42b5428ed33579276 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes/AtmosphericHeightFog.cginc b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes/AtmosphericHeightFog.cginc new file mode 100644 index 00000000..4a1cb269 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes/AtmosphericHeightFog.cginc @@ -0,0 +1,151 @@ +/* + +// Add the following directives to your shader for directional and noise support + +#include "Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Library/AtmosphericHeightFog.cginc" +#pragma multi_compile AHF_NOISEMODE_OFF AHF_NOISEMODE_PROCEDURAL3D + +// Apply Atmospheric Height Fog to transparent shaders like this +// Where finalColor is the shader output color, fogParams.rgb is the fog color and fogParams.a is the fog mask + +float4 fogParams = GetAtmosphericHeightFog(i.worldPos); +return ApplyAtmosphericHeightFog(finalColor, fogParams); + +*/ + +#ifndef ATMOSPHERIC_HEIGHT_FOG_INCLUDED +#define ATMOSPHERIC_HEIGHT_FOG_INCLUDED + +#include "UnityCG.cginc" +#include "UnityShaderVariables.cginc" + +uniform half4 AHF_FogColorStart; +uniform half4 AHF_FogColorEnd; +uniform half AHF_FogDistanceStart; +uniform half AHF_FogDistanceEnd; +uniform half AHF_FogDistanceFalloff; +uniform half AHF_FogColorDuo; +uniform half4 AHF_DirectionalColor; +uniform half3 AHF_DirectionalDir; +uniform half AHF_DirectionalIntensity; +uniform half AHF_DirectionalFalloff; +uniform half3 AHF_FogAxisOption; +uniform half AHF_FogHeightEnd; +uniform half AHF_FogHeightStart; +uniform half AHF_FogHeightFalloff; +uniform half AHF_FogLayersMode; +uniform half AHF_NoiseScale; +uniform half3 AHF_NoiseSpeed; +uniform half AHF_NoiseDistanceEnd; +uniform half AHF_NoiseIntensity; +uniform half AHF_NoiseModeBlend; +uniform half AHF_FogIntensity; + +float3 mod3D289(float3 x) { return x - floor(x / 289.0) * 289.0; } +float4 mod3D289(float4 x) { return x - floor(x / 289.0) * 289.0; } +float4 permute(float4 x) { return mod3D289((x * 34.0 + 1.0) * x); } +float4 taylorInvSqrt(float4 r) { return 1.79284291400159 - r * 0.85373472095314; } + +float snoise(float3 v) +{ + const float2 C = float2(1.0 / 6.0, 1.0 / 3.0); + float3 i = floor(v + dot(v, C.yyy)); + float3 x0 = v - i + dot(i, C.xxx); + float3 g = step(x0.yzx, x0.xyz); + float3 l = 1.0 - g; + float3 i1 = min(g.xyz, l.zxy); + float3 i2 = max(g.xyz, l.zxy); + float3 x1 = x0 - i1 + C.xxx; + float3 x2 = x0 - i2 + C.yyy; + float3 x3 = x0 - 0.5; + i = mod3D289(i); + float4 p = permute(permute(permute(i.z + float4(0.0, i1.z, i2.z, 1.0)) + i.y + float4(0.0, i1.y, i2.y, 1.0)) + i.x + float4(0.0, i1.x, i2.x, 1.0)); + float4 j = p - 49.0 * floor(p / 49.0); // mod(p,7*7) + float4 x_ = floor(j / 7.0); + float4 y_ = floor(j - 7.0 * x_); // mod(j,N) + float4 x = (x_ * 2.0 + 0.5) / 7.0 - 1.0; + float4 y = (y_ * 2.0 + 0.5) / 7.0 - 1.0; + float4 h = 1.0 - abs(x) - abs(y); + float4 b0 = float4(x.xy, y.xy); + float4 b1 = float4(x.zw, y.zw); + float4 s0 = floor(b0) * 2.0 + 1.0; + float4 s1 = floor(b1) * 2.0 + 1.0; + float4 sh = -step(h, 0.0); + float4 a0 = b0.xzyw + s0.xzyw * sh.xxyy; + float4 a1 = b1.xzyw + s1.xzyw * sh.zzww; + float3 g0 = float3(a0.xy, h.x); + float3 g1 = float3(a0.zw, h.y); + float3 g2 = float3(a1.xy, h.z); + float3 g3 = float3(a1.zw, h.w); + float4 norm = taylorInvSqrt(float4(dot(g0, g0), dot(g1, g1), dot(g2, g2), dot(g3, g3))); + g0 *= norm.x; + g1 *= norm.y; + g2 *= norm.z; + g3 *= norm.w; + float4 m = max(0.6 - float4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0); + m = m * m; + m = m * m; + float4 px = float4(dot(x0, g0), dot(x1, g1), dot(x2, g2), dot(x3, g3)); + return 42.0 * dot(m, px); +} + +// Returns the fog color and alpha based on world position +float4 GetAtmosphericHeightFog(float3 positionWS) +{ + float4 finalColor; + + float3 WorldPosition = positionWS; + + float3 WorldPosition2_g1 = WorldPosition; + float temp_output_7_0_g860 = AHF_FogDistanceStart; + half FogDistanceMask12_g1 = pow(abs(saturate(((distance(WorldPosition2_g1, _WorldSpaceCameraPos) - temp_output_7_0_g860) / (AHF_FogDistanceEnd - temp_output_7_0_g860)))), AHF_FogDistanceFalloff); + float3 lerpResult258_g1 = lerp((AHF_FogColorStart).rgb, (AHF_FogColorEnd).rgb, (saturate((FogDistanceMask12_g1 - 0.5)) * AHF_FogColorDuo)); + float3 normalizeResult318_g1 = normalize((WorldPosition2_g1 - _WorldSpaceCameraPos)); + float dotResult145_g1 = dot(normalizeResult318_g1, AHF_DirectionalDir); + half DirectionalMask30_g1 = pow(abs(((dotResult145_g1*0.5 + 0.5) * AHF_DirectionalIntensity)), AHF_DirectionalFalloff); + float3 lerpResult40_g1 = lerp(lerpResult258_g1, (AHF_DirectionalColor).rgb, DirectionalMask30_g1); + float3 temp_output_2_0_g859 = lerpResult40_g1; + float3 gammaToLinear3_g859 = GammaToLinearSpace(temp_output_2_0_g859); +#ifdef UNITY_COLORSPACE_GAMMA + float3 staticSwitch1_g859 = temp_output_2_0_g859; +#else + float3 staticSwitch1_g859 = gammaToLinear3_g859; +#endif + float3 temp_output_256_0_g1 = staticSwitch1_g859; + half3 AHF_FogAxisOption181_g1 = AHF_FogAxisOption; + float3 break159_g1 = (WorldPosition2_g1 * AHF_FogAxisOption181_g1); + float temp_output_7_0_g861 = AHF_FogHeightEnd; + half FogHeightMask16_g1 = pow(abs(saturate((((break159_g1.x + break159_g1.y + break159_g1.z) - temp_output_7_0_g861) / (AHF_FogHeightStart - temp_output_7_0_g861)))), AHF_FogHeightFalloff); + float lerpResult328_g1 = lerp((FogDistanceMask12_g1 * FogHeightMask16_g1), saturate((FogDistanceMask12_g1 + FogHeightMask16_g1)), AHF_FogLayersMode); + float simplePerlin3D193_g1 = snoise(((WorldPosition2_g1 * (1.0 / AHF_NoiseScale)) + (-AHF_NoiseSpeed * _Time.y))); + float temp_output_7_0_g863 = AHF_NoiseDistanceEnd; + half NoiseDistanceMask7_g1 = saturate(((distance(WorldPosition2_g1, _WorldSpaceCameraPos) - temp_output_7_0_g863) / (0.0 - temp_output_7_0_g863))); + float lerpResult198_g1 = lerp(1.0, (simplePerlin3D193_g1*0.5 + 0.5), (NoiseDistanceMask7_g1 * AHF_NoiseIntensity * AHF_NoiseModeBlend)); + half NoiseSimplex3D24_g1 = lerpResult198_g1; +#if defined(AHF_NOISEMODE_OFF) + float staticSwitch42_g1 = lerpResult328_g1; +#elif defined(AHF_NOISEMODE_PROCEDURAL3D) + float staticSwitch42_g1 = (lerpResult328_g1 * NoiseSimplex3D24_g1); +#else + float staticSwitch42_g1 = lerpResult328_g1; +#endif + float temp_output_43_0_g1 = (staticSwitch42_g1 * AHF_FogIntensity); + float4 appendResult114_g1 = (float4(temp_output_256_0_g1, temp_output_43_0_g1)); + + + finalColor = appendResult114_g1; + return finalColor; +} + +// Applies the fog +float3 ApplyAtmosphericHeightFog(float3 color, float4 fog) +{ + return float3(lerp(color.rgb, fog.rgb, fog.a)); +} + +float4 ApplyAtmosphericHeightFog(float4 color, float4 fog) +{ + return float4(lerp(color.rgb, fog.rgb, fog.a), color.a); +} + +#endif diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes/AtmosphericHeightFog.cginc.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes/AtmosphericHeightFog.cginc.meta new file mode 100644 index 00000000..0171b1be --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Includes/AtmosphericHeightFog.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8db8edf9bba0e9d48998019ca6c2f9ff +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines.meta new file mode 100644 index 00000000..d482a887 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0d1d19a8d9a9258489a54453cbd409bf +folderAsset: yes +timeCreated: 1568375167 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Built-in Pipeline.unitypackage b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Built-in Pipeline.unitypackage new file mode 100644 index 00000000..110433d0 Binary files /dev/null and b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Built-in Pipeline.unitypackage differ diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Built-in Pipeline.unitypackage.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Built-in Pipeline.unitypackage.meta new file mode 100644 index 00000000..d4c3ffb4 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Built-in Pipeline.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1782b72cd0e99a54fac09382c482e3db +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.1.8+.unitypackage b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.1.8+.unitypackage new file mode 100644 index 00000000..1a0bb944 Binary files /dev/null and b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.1.8+.unitypackage differ diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.1.8+.unitypackage.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.1.8+.unitypackage.meta new file mode 100644 index 00000000..f8c9cf9a --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.1.8+.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: da3283d8cb2d7784ea67bcd1981c5120 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+ (WebGL).unitypackage b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+ (WebGL).unitypackage new file mode 100644 index 00000000..1a5d8a8f Binary files /dev/null and b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+ (WebGL).unitypackage differ diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+ (WebGL).unitypackage.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+ (WebGL).unitypackage.meta new file mode 100644 index 00000000..76258fcb --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+ (WebGL).unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3e039c1b18fda364d81ea8d40165a1c5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+.unitypackage b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+.unitypackage new file mode 100644 index 00000000..58680f44 Binary files /dev/null and b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+.unitypackage differ diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+.unitypackage.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+.unitypackage.meta new file mode 100644 index 00000000..98567f5e --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Pipelines/Universal 7.4.1+.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f0fb88f906051724081fc159d3aeed31 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources.meta new file mode 100644 index 00000000..7220f15b --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5fa002e3b21354f4b847ab441877ecda +folderAsset: yes +timeCreated: 1555297530 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Global.shader b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Global.shader new file mode 100644 index 00000000..4d74e86f --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Global.shader @@ -0,0 +1,301 @@ +// Made with Amplify Shader Editor +// Available at the Unity Asset Store - http://u3d.as/y3X +Shader "Hidden/BOXOPHOBIC/Atmospherics/Height Fog Global" +{ + Properties + { + [HideInInspector]_IsStandardPipeline("_IsStandardPipeline", Float) = 0 + [HideInInspector]_HeightFogGlobal("_HeightFogGlobal", Float) = 1 + [HideInInspector]_IsHeightFogShader("_IsHeightFogShader", Float) = 1 + [HideInInspector]_TransparentQueue("_TransparentQueue", Int) = 3000 + [StyledBanner(Height Fog Global)]_TITLE("< TITLE >", Float) = 1 + + } + + SubShader + { + + + Tags { "RenderType"="Overlay" "Queue"="Overlay" } + LOD 0 + + CGINCLUDE + #pragma target 3.0 + ENDCG + Blend SrcAlpha OneMinusSrcAlpha + Cull Front + ColorMask RGBA + ZWrite Off + ZTest Always + Stencil + { + Ref 222 + Comp NotEqual + Pass Zero + } + + + Pass + { + Name "Unlit" + //Tags { "LightMode"="ForwardBase" "PreviewType"="Skybox" } + CGPROGRAM + + + + #ifndef UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX + //only defining to not throw compilation error over Unity 5.5 + #define UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input) + #endif + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_instancing + #include "UnityCG.cginc" + #include "UnityShaderVariables.cginc" + #pragma multi_compile AHF_NOISEMODE_OFF AHF_NOISEMODE_PROCEDURAL3D + + + struct appdata + { + float4 vertex : POSITION; + float4 color : COLOR; + UNITY_VERTEX_INPUT_INSTANCE_ID + + }; + + struct v2f + { + float4 vertex : SV_POSITION; +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + float3 worldPos : TEXCOORD0; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 ase_texcoord1 : TEXCOORD1; + }; + + uniform half _IsHeightFogShader; + uniform half _TITLE; + uniform half _HeightFogGlobal; + uniform int _TransparentQueue; + uniform half _IsStandardPipeline; + uniform half4 AHF_FogColorStart; + uniform half4 AHF_FogColorEnd; + UNITY_DECLARE_DEPTH_TEXTURE( _CameraDepthTexture ); + uniform float4 _CameraDepthTexture_TexelSize; + uniform half AHF_FogDistanceStart; + uniform half AHF_FogDistanceEnd; + uniform half AHF_FogDistanceFalloff; + uniform half AHF_FogColorDuo; + uniform half4 AHF_DirectionalColor; + uniform half3 AHF_DirectionalDir; + uniform half AHF_DirectionalIntensity; + uniform half AHF_DirectionalFalloff; + uniform half3 AHF_FogAxisOption; + uniform half AHF_FogHeightEnd; + uniform half AHF_FogHeightStart; + uniform half AHF_FogHeightFalloff; + uniform half AHF_FogLayersMode; + uniform half AHF_NoiseScale; + uniform half3 AHF_NoiseSpeed; + uniform half AHF_NoiseDistanceEnd; + uniform half AHF_NoiseIntensity; + uniform half AHF_NoiseModeBlend; + uniform half AHF_SkyboxFogHeight; + uniform half AHF_SkyboxFogFalloff; + uniform half AHF_SkyboxFogFill; + uniform half AHF_SkyboxFogIntensity; + uniform half AHF_FogIntensity; + float2 UnStereo( float2 UV ) + { + #if UNITY_SINGLE_PASS_STEREO + float4 scaleOffset = unity_StereoScaleOffset[ unity_StereoEyeIndex]; + UV.xy = (UV.xy - scaleOffset.zw) / scaleOffset.xy; + #endif + return UV; + } + + float3 mod3D289( float3 x ) { return x - floor( x / 289.0 ) * 289.0; } + float4 mod3D289( float4 x ) { return x - floor( x / 289.0 ) * 289.0; } + float4 permute( float4 x ) { return mod3D289( ( x * 34.0 + 1.0 ) * x ); } + float4 taylorInvSqrt( float4 r ) { return 1.79284291400159 - r * 0.85373472095314; } + float snoise( float3 v ) + { + const float2 C = float2( 1.0 / 6.0, 1.0 / 3.0 ); + float3 i = floor( v + dot( v, C.yyy ) ); + float3 x0 = v - i + dot( i, C.xxx ); + float3 g = step( x0.yzx, x0.xyz ); + float3 l = 1.0 - g; + float3 i1 = min( g.xyz, l.zxy ); + float3 i2 = max( g.xyz, l.zxy ); + float3 x1 = x0 - i1 + C.xxx; + float3 x2 = x0 - i2 + C.yyy; + float3 x3 = x0 - 0.5; + i = mod3D289( i); + float4 p = permute( permute( permute( i.z + float4( 0.0, i1.z, i2.z, 1.0 ) ) + i.y + float4( 0.0, i1.y, i2.y, 1.0 ) ) + i.x + float4( 0.0, i1.x, i2.x, 1.0 ) ); + float4 j = p - 49.0 * floor( p / 49.0 ); // mod(p,7*7) + float4 x_ = floor( j / 7.0 ); + float4 y_ = floor( j - 7.0 * x_ ); // mod(j,N) + float4 x = ( x_ * 2.0 + 0.5 ) / 7.0 - 1.0; + float4 y = ( y_ * 2.0 + 0.5 ) / 7.0 - 1.0; + float4 h = 1.0 - abs( x ) - abs( y ); + float4 b0 = float4( x.xy, y.xy ); + float4 b1 = float4( x.zw, y.zw ); + float4 s0 = floor( b0 ) * 2.0 + 1.0; + float4 s1 = floor( b1 ) * 2.0 + 1.0; + float4 sh = -step( h, 0.0 ); + float4 a0 = b0.xzyw + s0.xzyw * sh.xxyy; + float4 a1 = b1.xzyw + s1.xzyw * sh.zzww; + float3 g0 = float3( a0.xy, h.x ); + float3 g1 = float3( a0.zw, h.y ); + float3 g2 = float3( a1.xy, h.z ); + float3 g3 = float3( a1.zw, h.w ); + float4 norm = taylorInvSqrt( float4( dot( g0, g0 ), dot( g1, g1 ), dot( g2, g2 ), dot( g3, g3 ) ) ); + g0 *= norm.x; + g1 *= norm.y; + g2 *= norm.z; + g3 *= norm.w; + float4 m = max( 0.6 - float4( dot( x0, x0 ), dot( x1, x1 ), dot( x2, x2 ), dot( x3, x3 ) ), 0.0 ); + m = m* m; + m = m* m; + float4 px = float4( dot( x0, g0 ), dot( x1, g1 ), dot( x2, g2 ), dot( x3, g3 ) ); + return 42.0 * dot( m, px); + } + + + + v2f vert ( appdata v ) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + + float3 temp_cast_0 = (( _IsStandardPipeline * 0.0 )).xxx; + + float4 ase_clipPos = UnityObjectToClipPos(v.vertex); + float4 screenPos = ComputeScreenPos(ase_clipPos); + o.ase_texcoord1 = screenPos; + + float3 vertexValue = float3(0, 0, 0); + #if ASE_ABSOLUTE_VERTEX_POS + vertexValue = v.vertex.xyz; + #endif + vertexValue = temp_cast_0; + #if ASE_ABSOLUTE_VERTEX_POS + v.vertex.xyz = vertexValue; + #else + v.vertex.xyz += vertexValue; + #endif + o.vertex = UnityObjectToClipPos(v.vertex); + +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; +#endif + return o; + } + + fixed4 frag (v2f i ) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + fixed4 finalColor; +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + float3 WorldPosition = i.worldPos; +#endif + float4 screenPos = i.ase_texcoord1; + float4 ase_screenPosNorm = screenPos / screenPos.w; + ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5; + float2 UV235_g1045 = ase_screenPosNorm.xy; + float2 localUnStereo235_g1045 = UnStereo( UV235_g1045 ); + float2 break248_g1045 = localUnStereo235_g1045; + float clampDepth227_g1045 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, ase_screenPosNorm.xy ); + #ifdef UNITY_REVERSED_Z + float staticSwitch250_g1045 = ( 1.0 - clampDepth227_g1045 ); + #else + float staticSwitch250_g1045 = clampDepth227_g1045; + #endif + float3 appendResult244_g1045 = (float3(break248_g1045.x , break248_g1045.y , staticSwitch250_g1045)); + float4 appendResult220_g1045 = (float4((appendResult244_g1045*2.0 + -1.0) , 1.0)); + float4 break229_g1045 = mul( unity_CameraInvProjection, appendResult220_g1045 ); + float3 appendResult237_g1045 = (float3(break229_g1045.x , break229_g1045.y , break229_g1045.z)); + float4 appendResult233_g1045 = (float4(( ( appendResult237_g1045 / break229_g1045.w ) * half3(1,1,-1) ) , 1.0)); + float4 break245_g1045 = mul( unity_CameraToWorld, appendResult233_g1045 ); + float3 appendResult239_g1045 = (float3(break245_g1045.x , break245_g1045.y , break245_g1045.z)); + float3 WorldPositionFromDepth253_g1045 = appendResult239_g1045; + float3 WorldPosition2_g1045 = WorldPositionFromDepth253_g1045; + float temp_output_7_0_g1047 = AHF_FogDistanceStart; + half FogDistanceMask12_g1045 = pow( abs( saturate( ( ( distance( WorldPosition2_g1045 , _WorldSpaceCameraPos ) - temp_output_7_0_g1047 ) / ( AHF_FogDistanceEnd - temp_output_7_0_g1047 ) ) ) ) , AHF_FogDistanceFalloff ); + float3 lerpResult258_g1045 = lerp( (AHF_FogColorStart).rgb , (AHF_FogColorEnd).rgb , ( saturate( ( FogDistanceMask12_g1045 - 0.5 ) ) * AHF_FogColorDuo )); + float3 normalizeResult318_g1045 = normalize( ( WorldPosition2_g1045 - _WorldSpaceCameraPos ) ); + float dotResult145_g1045 = dot( normalizeResult318_g1045 , AHF_DirectionalDir ); + half DirectionalMask30_g1045 = pow( abs( ( (dotResult145_g1045*0.5 + 0.5) * AHF_DirectionalIntensity ) ) , AHF_DirectionalFalloff ); + float3 lerpResult40_g1045 = lerp( lerpResult258_g1045 , (AHF_DirectionalColor).rgb , DirectionalMask30_g1045); + float3 temp_output_2_0_g1046 = lerpResult40_g1045; + float3 gammaToLinear3_g1046 = GammaToLinearSpace( temp_output_2_0_g1046 ); + #ifdef UNITY_COLORSPACE_GAMMA + float3 staticSwitch1_g1046 = temp_output_2_0_g1046; + #else + float3 staticSwitch1_g1046 = gammaToLinear3_g1046; + #endif + float3 temp_output_256_0_g1045 = staticSwitch1_g1046; + half3 AHF_FogAxisOption181_g1045 = AHF_FogAxisOption; + float3 break159_g1045 = ( WorldPosition2_g1045 * AHF_FogAxisOption181_g1045 ); + float temp_output_7_0_g1048 = AHF_FogHeightEnd; + half FogHeightMask16_g1045 = pow( abs( saturate( ( ( ( break159_g1045.x + break159_g1045.y + break159_g1045.z ) - temp_output_7_0_g1048 ) / ( AHF_FogHeightStart - temp_output_7_0_g1048 ) ) ) ) , AHF_FogHeightFalloff ); + float lerpResult328_g1045 = lerp( ( FogDistanceMask12_g1045 * FogHeightMask16_g1045 ) , saturate( ( FogDistanceMask12_g1045 + FogHeightMask16_g1045 ) ) , AHF_FogLayersMode); + float simplePerlin3D193_g1045 = snoise( ( ( WorldPosition2_g1045 * ( 1.0 / AHF_NoiseScale ) ) + ( -AHF_NoiseSpeed * _Time.y ) ) ); + float temp_output_7_0_g1050 = AHF_NoiseDistanceEnd; + half NoiseDistanceMask7_g1045 = saturate( ( ( distance( WorldPosition2_g1045 , _WorldSpaceCameraPos ) - temp_output_7_0_g1050 ) / ( 0.0 - temp_output_7_0_g1050 ) ) ); + float lerpResult198_g1045 = lerp( 1.0 , (simplePerlin3D193_g1045*0.5 + 0.5) , ( NoiseDistanceMask7_g1045 * AHF_NoiseIntensity * AHF_NoiseModeBlend )); + half NoiseSimplex3D24_g1045 = lerpResult198_g1045; + #if defined(AHF_NOISEMODE_OFF) + float staticSwitch42_g1045 = lerpResult328_g1045; + #elif defined(AHF_NOISEMODE_PROCEDURAL3D) + float staticSwitch42_g1045 = ( lerpResult328_g1045 * NoiseSimplex3D24_g1045 ); + #else + float staticSwitch42_g1045 = lerpResult328_g1045; + #endif + float3 normalizeResult169_g1045 = normalize( WorldPosition2_g1045 ); + float3 break170_g1045 = ( normalizeResult169_g1045 * AHF_FogAxisOption181_g1045 ); + float temp_output_7_0_g1049 = AHF_SkyboxFogHeight; + float saferPower309_g1045 = max( abs( saturate( ( ( abs( ( break170_g1045.x + break170_g1045.y + break170_g1045.z ) ) - temp_output_7_0_g1049 ) / ( 0.0 - temp_output_7_0_g1049 ) ) ) ) , 0.0001 ); + float lerpResult179_g1045 = lerp( pow( saferPower309_g1045 , AHF_SkyboxFogFalloff ) , 1.0 , AHF_SkyboxFogFill); + half SkyboxFogHeightMask108_g1045 = ( lerpResult179_g1045 * AHF_SkyboxFogIntensity ); + float clampDepth118_g1045 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, ase_screenPosNorm.xy ); + #ifdef UNITY_REVERSED_Z + float staticSwitch123_g1045 = clampDepth118_g1045; + #else + float staticSwitch123_g1045 = ( 1.0 - clampDepth118_g1045 ); + #endif + half SkyboxMask95_g1045 = ( 1.0 - ceil( staticSwitch123_g1045 ) ); + float lerpResult112_g1045 = lerp( staticSwitch42_g1045 , SkyboxFogHeightMask108_g1045 , SkyboxMask95_g1045); + float temp_output_43_0_g1045 = ( lerpResult112_g1045 * AHF_FogIntensity ); + float4 appendResult114_g1045 = (float4(temp_output_256_0_g1045 , temp_output_43_0_g1045)); + + + finalColor = appendResult114_g1045; + return finalColor; + } + ENDCG + } + } + + + +} +/*ASEBEGIN +Version=18103 +1927;1;1906;1020;5409.4;5525.235;2.429641;True;False +Node;AmplifyShaderEditor.RangedFloatNode;879;-3136,-4864;Half;False;Property;_HeightFogGlobal;_HeightFogGlobal;4;1;[HideInInspector];Create;False;0;0;True;0;False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.IntNode;891;-2656,-4864;Float;False;Property;_TransparentQueue;_TransparentQueue;6;1;[HideInInspector];Create;False;0;0;True;0;False;3000;0;0;1;INT;0 +Node;AmplifyShaderEditor.FunctionNode;1029;-3328,-4608;Inherit;False;Base;-1;;1045;13c50910e5b86de4097e1181ba121e0e;2,116,1,99,1;0;3;FLOAT4;113;FLOAT3;86;FLOAT;87 +Node;AmplifyShaderEditor.FunctionNode;915;-3328,-4480;Inherit;False;Is Pipeline;0;;1044;2b33d0c660fbdb24c98bea96428031b0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;885;-2912,-4864;Half;False;Property;_IsHeightFogShader;_IsHeightFogShader;5;1;[HideInInspector];Create;False;0;0;True;0;False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;892;-3328,-4864;Half;False;Property;_TITLE;< TITLE >;7;0;Create;True;0;0;True;1;StyledBanner(Height Fog Global);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;383;-3072,-4608;Float;False;True;-1;2;;0;1;Hidden/BOXOPHOBIC/Atmospherics/Height Fog Global;0770190933193b94aaa3065e307002fa;True;Unlit;0;0;Unlit;2;True;2;5;False;-1;10;False;-1;0;5;False;-1;10;False;-1;True;0;False;-1;0;False;-1;True;False;True;1;False;-1;True;True;True;True;True;0;False;-1;True;True;222;False;-1;255;False;-1;255;False;-1;6;False;-1;2;False;-1;0;False;-1;0;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;True;2;False;594;True;7;False;595;True;False;0;False;500;1000;False;500;True;2;RenderType=Overlay=RenderType;Queue=Overlay=Queue=0;True;2;0;False;False;False;False;False;False;False;False;False;True;2;LightMode=ForwardBase;PreviewType=Skybox;False;0;;0;0;Standard;1;Vertex Position,InvertActionOnDeselection;1;0;1;True;False;;0 +Node;AmplifyShaderEditor.CommentaryNode;880;-3328,-4992;Inherit;False;919.8825;100;Drawers;0;;1,0.475862,0,1;0;0 +WireConnection;383;0;1029;113 +WireConnection;383;1;915;0 +ASEEND*/ +//CHKSM=BFDE70D7D1E42608460807DF4DA7EDF074083B59 \ No newline at end of file diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Global.shader.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Global.shader.meta new file mode 100644 index 00000000..36bde76b --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Global.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3a7ef1b66bafb7a448a880ef76d2e6e6 +timeCreated: 1568125885 +licenseType: Store +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Per Object.shader b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Per Object.shader new file mode 100644 index 00000000..30f012c8 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Per Object.shader @@ -0,0 +1,294 @@ +// Made with Amplify Shader Editor +// Available at the Unity Asset Store - http://u3d.as/y3X +Shader "BOXOPHOBIC/Atmospherics/Height Fog Per Object" +{ + Properties + { + [HideInInspector]_HeightFogPerObject("_HeightFogPerObject", Float) = 1 + [HideInInspector]_IsStandardPipeline("_IsStandardPipeline", Float) = 0 + [HideInInspector]_IsHeightFogShader("_IsHeightFogShader", Float) = 1 + [HideInInspector]_TransparentQueue("_TransparentQueue", Int) = 3000 + [StyledBanner(Height Fog Per Object)]_TITLEE("< TITLEE >", Float) = 1 + [StyledCategory(Custom Alpha Inputs)]_CUSTOM("[ CUSTOM ]", Float) = 1 + _Color("Color", Color) = (1,1,1,1) + _MainTex("MainTex", 2D) = "white" {} + + } + + SubShader + { + + + Tags { "RenderType"="Transparent" "Queue"="Transparent" } + LOD 0 + + CGINCLUDE + #pragma target 3.0 + ENDCG + Blend SrcAlpha OneMinusSrcAlpha , One One + Cull Back + ColorMask RGBA + ZWrite Off + ZTest LEqual + + + + Pass + { + Name "Unlit" + //Tags { "LightMode"="ForwardBase" } + CGPROGRAM + + + + #ifndef UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX + //only defining to not throw compilation error over Unity 5.5 + #define UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input) + #endif + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_instancing + #include "UnityCG.cginc" + #include "UnityShaderVariables.cginc" + #define ASE_NEEDS_FRAG_WORLD_POSITION + #pragma multi_compile AHF_NOISEMODE_OFF AHF_NOISEMODE_PROCEDURAL3D + + + struct appdata + { + float4 vertex : POSITION; + float4 color : COLOR; + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 ase_texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : SV_POSITION; +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + float3 worldPos : TEXCOORD0; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 ase_texcoord1 : TEXCOORD1; + }; + + uniform half _CUSTOM; + uniform half _HeightFogPerObject; + uniform half _IsHeightFogShader; + uniform half _TITLEE; + uniform int _TransparentQueue; + uniform half _IsStandardPipeline; + uniform half4 AHF_FogColorStart; + uniform half4 AHF_FogColorEnd; + uniform half AHF_FogDistanceStart; + uniform half AHF_FogDistanceEnd; + uniform half AHF_FogDistanceFalloff; + uniform half AHF_FogColorDuo; + uniform half4 AHF_DirectionalColor; + uniform half3 AHF_DirectionalDir; + uniform half AHF_DirectionalIntensity; + uniform half AHF_DirectionalFalloff; + uniform half3 AHF_FogAxisOption; + uniform half AHF_FogHeightEnd; + uniform half AHF_FogHeightStart; + uniform half AHF_FogHeightFalloff; + uniform half AHF_FogLayersMode; + uniform half AHF_NoiseScale; + uniform half3 AHF_NoiseSpeed; + uniform half AHF_NoiseDistanceEnd; + uniform half AHF_NoiseIntensity; + uniform half AHF_NoiseModeBlend; + uniform half AHF_FogIntensity; + uniform half4 _Color; + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + float3 mod3D289( float3 x ) { return x - floor( x / 289.0 ) * 289.0; } + float4 mod3D289( float4 x ) { return x - floor( x / 289.0 ) * 289.0; } + float4 permute( float4 x ) { return mod3D289( ( x * 34.0 + 1.0 ) * x ); } + float4 taylorInvSqrt( float4 r ) { return 1.79284291400159 - r * 0.85373472095314; } + float snoise( float3 v ) + { + const float2 C = float2( 1.0 / 6.0, 1.0 / 3.0 ); + float3 i = floor( v + dot( v, C.yyy ) ); + float3 x0 = v - i + dot( i, C.xxx ); + float3 g = step( x0.yzx, x0.xyz ); + float3 l = 1.0 - g; + float3 i1 = min( g.xyz, l.zxy ); + float3 i2 = max( g.xyz, l.zxy ); + float3 x1 = x0 - i1 + C.xxx; + float3 x2 = x0 - i2 + C.yyy; + float3 x3 = x0 - 0.5; + i = mod3D289( i); + float4 p = permute( permute( permute( i.z + float4( 0.0, i1.z, i2.z, 1.0 ) ) + i.y + float4( 0.0, i1.y, i2.y, 1.0 ) ) + i.x + float4( 0.0, i1.x, i2.x, 1.0 ) ); + float4 j = p - 49.0 * floor( p / 49.0 ); // mod(p,7*7) + float4 x_ = floor( j / 7.0 ); + float4 y_ = floor( j - 7.0 * x_ ); // mod(j,N) + float4 x = ( x_ * 2.0 + 0.5 ) / 7.0 - 1.0; + float4 y = ( y_ * 2.0 + 0.5 ) / 7.0 - 1.0; + float4 h = 1.0 - abs( x ) - abs( y ); + float4 b0 = float4( x.xy, y.xy ); + float4 b1 = float4( x.zw, y.zw ); + float4 s0 = floor( b0 ) * 2.0 + 1.0; + float4 s1 = floor( b1 ) * 2.0 + 1.0; + float4 sh = -step( h, 0.0 ); + float4 a0 = b0.xzyw + s0.xzyw * sh.xxyy; + float4 a1 = b1.xzyw + s1.xzyw * sh.zzww; + float3 g0 = float3( a0.xy, h.x ); + float3 g1 = float3( a0.zw, h.y ); + float3 g2 = float3( a1.xy, h.z ); + float3 g3 = float3( a1.zw, h.w ); + float4 norm = taylorInvSqrt( float4( dot( g0, g0 ), dot( g1, g1 ), dot( g2, g2 ), dot( g3, g3 ) ) ); + g0 *= norm.x; + g1 *= norm.y; + g2 *= norm.z; + g3 *= norm.w; + float4 m = max( 0.6 - float4( dot( x0, x0 ), dot( x1, x1 ), dot( x2, x2 ), dot( x3, x3 ) ), 0.0 ); + m = m* m; + m = m* m; + float4 px = float4( dot( x0, g0 ), dot( x1, g1 ), dot( x2, g2 ), dot( x3, g3 ) ); + return 42.0 * dot( m, px); + } + + + + v2f vert ( appdata v ) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + + int CustomVertexOffset918 = 0; + float3 temp_cast_0 = (( CustomVertexOffset918 + ( _IsStandardPipeline * 0.0 ) )).xxx; + + o.ase_texcoord1.xy = v.ase_texcoord.xy; + + //setting value to unused interpolator channels and avoid initialization warnings + o.ase_texcoord1.zw = 0; + float3 vertexValue = float3(0, 0, 0); + #if ASE_ABSOLUTE_VERTEX_POS + vertexValue = v.vertex.xyz; + #endif + vertexValue = temp_cast_0; + #if ASE_ABSOLUTE_VERTEX_POS + v.vertex.xyz = vertexValue; + #else + v.vertex.xyz += vertexValue; + #endif + o.vertex = UnityObjectToClipPos(v.vertex); + +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; +#endif + return o; + } + + fixed4 frag (v2f i ) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + fixed4 finalColor; +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + float3 WorldPosition = i.worldPos; +#endif + float3 WorldPosition2_g771 = WorldPosition; + float temp_output_7_0_g860 = AHF_FogDistanceStart; + half FogDistanceMask12_g771 = pow( abs( saturate( ( ( distance( WorldPosition2_g771 , _WorldSpaceCameraPos ) - temp_output_7_0_g860 ) / ( AHF_FogDistanceEnd - temp_output_7_0_g860 ) ) ) ) , AHF_FogDistanceFalloff ); + float3 lerpResult258_g771 = lerp( (AHF_FogColorStart).rgb , (AHF_FogColorEnd).rgb , ( saturate( ( FogDistanceMask12_g771 - 0.5 ) ) * AHF_FogColorDuo )); + float3 normalizeResult318_g771 = normalize( ( WorldPosition2_g771 - _WorldSpaceCameraPos ) ); + float dotResult145_g771 = dot( normalizeResult318_g771 , AHF_DirectionalDir ); + half DirectionalMask30_g771 = pow( abs( ( (dotResult145_g771*0.5 + 0.5) * AHF_DirectionalIntensity ) ) , AHF_DirectionalFalloff ); + float3 lerpResult40_g771 = lerp( lerpResult258_g771 , (AHF_DirectionalColor).rgb , DirectionalMask30_g771); + float3 temp_output_2_0_g859 = lerpResult40_g771; + float3 gammaToLinear3_g859 = GammaToLinearSpace( temp_output_2_0_g859 ); + #ifdef UNITY_COLORSPACE_GAMMA + float3 staticSwitch1_g859 = temp_output_2_0_g859; + #else + float3 staticSwitch1_g859 = gammaToLinear3_g859; + #endif + float3 temp_output_256_0_g771 = staticSwitch1_g859; + half3 AHF_FogAxisOption181_g771 = AHF_FogAxisOption; + float3 break159_g771 = ( WorldPosition2_g771 * AHF_FogAxisOption181_g771 ); + float temp_output_7_0_g861 = AHF_FogHeightEnd; + half FogHeightMask16_g771 = pow( abs( saturate( ( ( ( break159_g771.x + break159_g771.y + break159_g771.z ) - temp_output_7_0_g861 ) / ( AHF_FogHeightStart - temp_output_7_0_g861 ) ) ) ) , AHF_FogHeightFalloff ); + float lerpResult328_g771 = lerp( ( FogDistanceMask12_g771 * FogHeightMask16_g771 ) , saturate( ( FogDistanceMask12_g771 + FogHeightMask16_g771 ) ) , AHF_FogLayersMode); + float simplePerlin3D193_g771 = snoise( ( ( WorldPosition2_g771 * ( 1.0 / AHF_NoiseScale ) ) + ( -AHF_NoiseSpeed * _Time.y ) ) ); + float temp_output_7_0_g863 = AHF_NoiseDistanceEnd; + half NoiseDistanceMask7_g771 = saturate( ( ( distance( WorldPosition2_g771 , _WorldSpaceCameraPos ) - temp_output_7_0_g863 ) / ( 0.0 - temp_output_7_0_g863 ) ) ); + float lerpResult198_g771 = lerp( 1.0 , (simplePerlin3D193_g771*0.5 + 0.5) , ( NoiseDistanceMask7_g771 * AHF_NoiseIntensity * AHF_NoiseModeBlend )); + half NoiseSimplex3D24_g771 = lerpResult198_g771; + #if defined(AHF_NOISEMODE_OFF) + float staticSwitch42_g771 = lerpResult328_g771; + #elif defined(AHF_NOISEMODE_PROCEDURAL3D) + float staticSwitch42_g771 = ( lerpResult328_g771 * NoiseSimplex3D24_g771 ); + #else + float staticSwitch42_g771 = lerpResult328_g771; + #endif + float temp_output_43_0_g771 = ( staticSwitch42_g771 * AHF_FogIntensity ); + float2 uv0_MainTex = i.ase_texcoord1.xy * _MainTex_ST.xy + _MainTex_ST.zw; + float temp_output_1_0_g753 = tex2D( _MainTex, uv0_MainTex ).a; + float temp_output_7_0_g752 = AHF_FogDistanceStart; + float lerpResult3_g753 = lerp( temp_output_1_0_g753 , ceil( temp_output_1_0_g753 ) , saturate( ( ( distance( WorldPosition , _WorldSpaceCameraPos ) - temp_output_7_0_g752 ) / ( AHF_FogDistanceEnd - temp_output_7_0_g752 ) ) )); + half CustomAlphaInputs897 = ( _Color.a * lerpResult3_g753 ); + float4 appendResult384 = (float4(temp_output_256_0_g771 , ( temp_output_43_0_g771 * CustomAlphaInputs897 ))); + + + finalColor = appendResult384; + return finalColor; + } + ENDCG + } + } + + + +} +/*ASEBEGIN +Version=18103 +1927;1;1906;1020;4148.027;3949.353;1;True;False +Node;AmplifyShaderEditor.WorldPosInputsNode;943;-3328,-3584;Float;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 +Node;AmplifyShaderEditor.TextureCoordinatesNode;895;-3328,-3840;Inherit;False;0;892;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.SamplerNode;892;-3072,-3840;Inherit;True;Property;_MainTex;MainTex;10;0;Create;False;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;MipBias;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.FunctionNode;942;-3072,-3584;Inherit;False;Compute Fog Distance;-1;;751;a5f090963b8f9394a984ee752ce42488;0;1;13;FLOAT3;0,0,0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.FunctionNode;913;-2688,-3840;Inherit;False;Handle Tex Alpha;-1;;753;92f31391e7f50294c9c2d8747c81d6b6;0;2;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.ColorNode;894;-3328,-4096;Half;False;Property;_Color;Color;9;0;Create;False;0;0;False;0;False;1,1,1,1;0,0,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.SimpleMultiplyOpNode;896;-2304,-4096;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.RegisterLocalVarNode;897;-2144,-4096;Half;False;CustomAlphaInputs;-1;True;1;0;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.IntNode;919;-3328,-3200;Float;False;Constant;_Int0;Int 0;5;0;Create;True;0;0;False;0;False;0;0;0;1;INT;0 +Node;AmplifyShaderEditor.RegisterLocalVarNode;918;-3136,-3200;Half;False;CustomVertexOffset;-1;True;1;0;INT;0;False;1;INT;0 +Node;AmplifyShaderEditor.FunctionNode;944;-3328,-4736;Inherit;False;Base;-1;;771;13c50910e5b86de4097e1181ba121e0e;2,116,0,99,0;0;3;FLOAT4;113;FLOAT3;86;FLOAT;87 +Node;AmplifyShaderEditor.GetLocalVarNode;898;-3328,-4544;Inherit;False;897;CustomAlphaInputs;1;0;OBJECT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.SimpleMultiplyOpNode;938;-3008,-4608;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.FunctionNode;935;-2816,-4512;Inherit;False;Is Pipeline;1;;864;2b33d0c660fbdb24c98bea96428031b0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.GetLocalVarNode;920;-2816,-4608;Inherit;False;918;CustomVertexOffset;1;0;OBJECT;0;False;1;INT;0 +Node;AmplifyShaderEditor.RangedFloatNode;890;-2688,-5248;Half;False;Property;_IsHeightFogShader;_IsHeightFogShader;5;1;[HideInInspector];Create;False;0;0;True;0;False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;923;-3328,-5248;Half;False;Property;_TITLEE;< TITLEE >;7;0;Create;True;0;0;True;1;StyledBanner(Height Fog Per Object);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.IntNode;922;-2432,-5248;Float;False;Property;_TransparentQueue;_TransparentQueue;6;1;[HideInInspector];Create;False;0;0;True;0;False;3000;0;0;1;INT;0 +Node;AmplifyShaderEditor.RangedFloatNode;879;-2944,-5248;Half;False;Property;_HeightFogPerObject;_HeightFogPerObject;0;1;[HideInInspector];Create;False;0;0;True;0;False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;899;-3169,-5248;Half;False;Property;_CUSTOM;[ CUSTOM ];8;0;Create;True;0;0;True;1;StyledCategory(Custom Alpha Inputs);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.SimpleAddOpNode;936;-2512,-4592;Inherit;False;2;2;0;INT;0;False;1;FLOAT;0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.DynamicAppendNode;384;-2816,-4736;Inherit;False;FLOAT4;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0 +Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;383;-2304,-4736;Float;False;True;-1;2;;0;1;BOXOPHOBIC/Atmospherics/Height Fog Per Object;0770190933193b94aaa3065e307002fa;True;Unlit;0;0;Unlit;2;True;2;5;False;-1;10;False;-1;4;1;False;-1;1;False;-1;True;0;False;-1;0;False;-1;True;False;True;0;False;-1;True;True;True;True;True;0;False;-1;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;True;2;False;594;True;0;False;595;True;False;10;True;890;10;True;890;True;2;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;2;0;False;False;False;False;False;False;False;False;False;True;1;LightMode=ForwardBase;False;0;;0;0;Standard;1;Vertex Position,InvertActionOnDeselection;1;0;1;True;False;;0 +Node;AmplifyShaderEditor.CommentaryNode;916;-3328,-3328;Inherit;False;1409.549;100;Custom Vertex Offset / Add here your custom Vertex Offset;0;;0.684,1,0,1;0;0 +Node;AmplifyShaderEditor.CommentaryNode;891;-3328,-4224;Inherit;False;1418.51;100;Custom Alpha Inputs / Add here your custom Alpha Inputs;0;;0.684,1,0,1;0;0 +Node;AmplifyShaderEditor.CommentaryNode;939;-3328,-4864;Inherit;False;1405.154;100;Final Pass;0;;0.684,1,0,1;0;0 +Node;AmplifyShaderEditor.CommentaryNode;880;-3328,-5376;Inherit;False;1406.973;101;Drawers;0;;1,0.475862,0,1;0;0 +WireConnection;892;1;895;0 +WireConnection;942;13;943;0 +WireConnection;913;1;892;4 +WireConnection;913;2;942;0 +WireConnection;896;0;894;4 +WireConnection;896;1;913;0 +WireConnection;897;0;896;0 +WireConnection;918;0;919;0 +WireConnection;938;0;944;87 +WireConnection;938;1;898;0 +WireConnection;936;0;920;0 +WireConnection;936;1;935;0 +WireConnection;384;0;944;86 +WireConnection;384;3;938;0 +WireConnection;383;0;384;0 +WireConnection;383;1;936;0 +ASEEND*/ +//CHKSM=F74943620D06474AE029A1BD15340645926FE0B9 \ No newline at end of file diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Per Object.shader.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Per Object.shader.meta new file mode 100644 index 00000000..f3ccd01b --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Per Object.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 19dce7f705377aa41bc0a573347bbd27 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.mat b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.mat new file mode 100644 index 00000000..f745a1b1 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.mat @@ -0,0 +1,62 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Height Fog Preset + m_Shader: {fileID: 4800000, guid: a3a3bc8785681554d9558e2ea68f100e, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: [] + m_Floats: + - _DIRECTIONALL: 1 + - _DirectionalCustom: 0 + - _DirectionalFalloff: 2 + - _DirectionalIntensity: 1 + - _DirectionalMode: 0 + - _DirectionalModeBlend: 0 + - _FOGG: 1 + - _FogAxisMode: 1 + - _FogColorDuo: 0 + - _FogDistanceEnd: 100 + - _FogDistanceFalloff: 1 + - _FogDistanceStart: -100 + - _FogHeightEnd: 200 + - _FogHeightFalloff: 1 + - _FogHeightStart: 0 + - _FogIntensity: 1 + - _FogLayersMode: 0 + - _IsHeightFogPreset: 1 + - _IsHeightFogShader: 1 + - _IsStandardPipeline: 0 + - _NOISEE: 1 + - _NoiseDistanceEnd: 50 + - _NoiseIntensity: 1 + - _NoiseMode: 0 + - _NoiseModeBlend: 0 + - _NoiseScale: 30 + - _SKYBOXX: 1 + - _SkyboxFogFalloff: 1 + - _SkyboxFogFill: 1 + - _SkyboxFogHeight: 1 + - _SkyboxFogIntensity: 1 + - _TITLE: 1 + m_Colors: + - _DirectionalColor: {r: 1, g: 0.7793103, b: 0.5, a: 1} + - _DirectionalCustomDir: {r: 0, g: 0, b: 0, a: 0} + - _DirectionalDir: {r: 0.7081007, g: 0.28231323, b: 0.6472192, a: 0} + - _FogAxisOption: {r: 0, g: 1, b: 0, a: 0} + - _FogColorEnd: {r: 0.8862745, g: 1.443137, b: 2, a: 1} + - _FogColorStart: {r: 1, g: 0, b: 0.5, a: 1} + - _NoiseSpeed: {r: 0.5, g: 0, b: 0.5, a: 0} diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.mat.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.mat.meta new file mode 100644 index 00000000..0ee7b5b8 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca85a1519dc35be41b6251ab2147d038 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.shader b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.shader new file mode 100644 index 00000000..1a6e8d00 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.shader @@ -0,0 +1,231 @@ +// Made with Amplify Shader Editor +// Available at the Unity Asset Store - http://u3d.as/y3X +Shader "BOXOPHOBIC/Atmospherics/Height Fog Preset" +{ + Properties + { + [HideInInspector]_IsStandardPipeline("_IsStandardPipeline", Float) = 0 + [HideInInspector]_IsHeightFogPreset("_IsHeightFogPreset", Float) = 1 + [HideInInspector]_IsHeightFogShader("_IsHeightFogShader", Float) = 1 + [StyledBanner(Height Fog Preset)]_TITLE("< TITLE >", Float) = 1 + [StyledCategory(Fog)]_FOGG("[ FOGG]", Float) = 1 + _FogIntensity("Fog Intensity", Range( 0 , 1)) = 1 + [Enum(X Axis,0,Y Axis,1,Z Axis,2)][Space(10)]_FogAxisMode("Fog Axis Mode", Float) = 1 + [Enum(Multiply Distance And Height,0,Additive Distance And Height,1)]_FogLayersMode("Fog Layers Mode", Float) = 0 + [HideInInspector]_FogAxisOption("_FogAxisOption", Vector) = (0,0,0,0) + [HDR][Space(10)]_FogColorStart("Fog Color Start", Color) = (0.4411765,0.722515,1,1) + [HDR]_FogColorEnd("Fog Color End", Color) = (0.8862745,1.443137,2,1) + _FogColorDuo("Fog Color Duo", Range( 0 , 1)) = 1 + [Space(10)]_FogDistanceStart("Fog Distance Start", Float) = -200 + _FogDistanceEnd("Fog Distance End", Float) = 200 + _FogDistanceFalloff("Fog Distance Falloff", Range( 1 , 8)) = 2 + [Space(10)]_FogHeightStart("Fog Height Start", Float) = 0 + _FogHeightEnd("Fog Height End", Float) = 200 + _FogHeightFalloff("Fog Height Falloff", Range( 1 , 8)) = 2 + [StyledCategory(Skybox)]_SKYBOXX("[ SKYBOXX ]", Float) = 1 + _SkyboxFogIntensity("Skybox Fog Intensity", Range( 0 , 1)) = 1 + _SkyboxFogHeight("Skybox Fog Height", Range( 0 , 1)) = 1 + _SkyboxFogFalloff("Skybox Fog Falloff", Range( 1 , 8)) = 1 + _SkyboxFogFill("Skybox Fog Fill", Range( 0 , 1)) = 1 + [StyledCategory(Directional)]_DIRECTIONALL("[ DIRECTIONALL ]", Float) = 1 + [Enum(Off,0,On,1)]_DirectionalMode("Directional Mode", Float) = 1 + _DirectionalIntensity("Directional Intensity", Range( 0 , 1)) = 1 + _DirectionalFalloff("Directional Falloff", Range( 1 , 8)) = 2 + [HDR]_DirectionalColor("Directional Color", Color) = (1,0.7793103,0.5,1) + [HideInInspector]_DirectionalDir("Directional Dir", Vector) = (0,0,0,0) + [StyledCategory(Noise)]_NOISEE("[ NOISEE ]", Float) = 1 + [Enum(Off,0,Procedural 3D,2)]_NoiseMode("Noise Mode", Float) = 2 + [HideInInspector]_NoiseModeBlend("_NoiseModeBlend", Float) = 1 + _NoiseIntensity("Noise Intensity", Range( 0 , 1)) = 1 + _NoiseDistanceEnd("Noise Distance End", Float) = 50 + _NoiseScale("Noise Scale", Float) = 30 + _NoiseSpeed("Noise Speed", Vector) = (0.5,0,0.5,0) + + } + + SubShader + { + + + Tags { "RenderType"="Overlay" "Queue"="Overlay" } + LOD 0 + + CGINCLUDE + #pragma target 3.0 + ENDCG + Blend SrcAlpha OneMinusSrcAlpha + Cull Off + ColorMask RGBA + ZWrite Off + ZTest Always + + + + Pass + { + Name "Unlit" + //Tags { "LightMode"="ForwardBase" } + CGPROGRAM + + + + #ifndef UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX + //only defining to not throw compilation error over Unity 5.5 + #define UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input) + #endif + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_instancing + #include "UnityCG.cginc" + + + struct appdata + { + float4 vertex : POSITION; + float4 color : COLOR; + UNITY_VERTEX_INPUT_INSTANCE_ID + + }; + + struct v2f + { + float4 vertex : SV_POSITION; +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + float3 worldPos : TEXCOORD0; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + + }; + + uniform half _FogHeightEnd; + uniform half _FogHeightStart; + uniform half _NoiseScale; + uniform half _NoiseDistanceEnd; + uniform half _FogDistanceEnd; + uniform half _FogHeightFalloff; + uniform half _DirectionalIntensity; + uniform half _FogDistanceStart; + uniform half _NoiseModeBlend; + uniform half _SkyboxFogIntensity; + uniform half _FogLayersMode; + uniform half _SkyboxFogHeight; + uniform half _SkyboxFogFill; + uniform half _IsHeightFogPreset; + uniform half _FogDistanceFalloff; + uniform half _SkyboxFogFalloff; + uniform half _DirectionalFalloff; + uniform half _NoiseIntensity; + uniform half _NoiseMode; + uniform half _NOISEE; + uniform half4 _FogColorEnd; + uniform half _FOGG; + uniform half _FogColorDuo; + uniform half _SKYBOXX; + uniform half _DirectionalMode; + uniform half3 _NoiseSpeed; + uniform half _IsHeightFogShader; + uniform half _TITLE; + uniform half _DIRECTIONALL; + uniform half4 _DirectionalColor; + uniform half _FogIntensity; + uniform half _FogAxisMode; + uniform half4 _FogColorStart; + uniform float4 _FogAxisOption; + uniform half3 _DirectionalDir; + uniform half _IsStandardPipeline; + + + v2f vert ( appdata v ) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + + float3 temp_cast_0 = (( _IsStandardPipeline * 0.0 )).xxx; + + float3 vertexValue = float3(0, 0, 0); + #if ASE_ABSOLUTE_VERTEX_POS + vertexValue = v.vertex.xyz; + #endif + vertexValue = temp_cast_0; + #if ASE_ABSOLUTE_VERTEX_POS + v.vertex.xyz = vertexValue; + #else + v.vertex.xyz += vertexValue; + #endif + o.vertex = UnityObjectToClipPos(v.vertex); + +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; +#endif + return o; + } + + fixed4 frag (v2f i ) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + fixed4 finalColor; +#ifdef ASE_NEEDS_FRAG_WORLD_POSITION + float3 WorldPosition = i.worldPos; +#endif + + + finalColor = fixed4(1,1,1,1); + return finalColor; + } + ENDCG + } + } + CustomEditor "HeightFogShaderGUI" + + +} +/*ASEBEGIN +Version=18103 +1927;1;1906;1020;3249.694;3596.392;1;True;False +Node;AmplifyShaderEditor.RangedFloatNode;627;-3024,-4864;Half;False;Property;_SKYBOXX;[ SKYBOXX ];21;0;Create;True;0;0;True;1;StyledCategory(Skybox);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;653;-2816,-3968;Half;False;Property;_FogColorDuo;Fog Color Duo;14;0;Create;True;0;0;True;0;False;1;0;0;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.Vector3Node;227;-3328,-2560;Half;False;Property;_NoiseSpeed;Noise Speed;38;0;Create;True;0;0;True;0;False;0.5,0,0.5;0.5,0,0.5;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 +Node;AmplifyShaderEditor.RangedFloatNode;640;-3328,-3072;Half;False;Property;_DirectionalMode;Directional Mode;27;1;[Enum];Create;True;2;Off;0;On;1;0;True;0;False;1;1;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;626;-3168,-4864;Half;False;Property;_FOGG;[ FOGG];7;0;Create;True;0;0;True;1;StyledCategory(Fog);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;629;-2640,-4864;Half;False;Property;_NOISEE;[ NOISEE ];32;0;Create;True;0;0;True;1;StyledCategory(Noise);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;632;-2480,-4864;Half;False;Property;_ADVANCEDD;[ ADVANCEDD ];39;0;Create;True;0;0;False;1;StyledCategory(Advanced);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.FunctionNode;646;-480,-4352;Inherit;False;Is Pipeline;0;;1;2b33d0c660fbdb24c98bea96428031b0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.ColorNode;648;-3072,-3968;Half;False;Property;_FogColorEnd;Fog Color End;13;1;[HDR];Create;True;0;0;True;0;False;0.8862745,1.443137,2,1;1,1.5,2,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.Vector4Node;655;-2432,-4224;Inherit;False;Property;_FogAxisOption;_FogAxisOption;11;1;[HideInInspector];Create;True;0;0;True;0;False;0,0,0,0;0,1,0,0;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.ColorNode;137;-3328,-3968;Half;False;Property;_FogColorStart;Fog Color Start;12;1;[HDR];Create;True;0;0;True;1;Space(10);False;0.4411765,0.722515,1,1;0.3538489,1,0,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.ColorNode;102;-2432,-3072;Half;False;Property;_DirectionalColor;Directional Color;30;1;[HDR];Create;True;0;0;True;0;False;1,0.7793103,0.5,1;1,0.75,0.5,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.Vector3Node;625;-1952,-3072;Half;False;Property;_DirectionalDir;Directional Dir;31;1;[HideInInspector];Create;True;0;0;True;0;False;0,0,0;0,0,0;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 +Node;AmplifyShaderEditor.RangedFloatNode;645;-3328,-4224;Half;False;Property;_FogAxisMode;Fog Axis Mode;9;1;[Enum];Create;True;3;X Axis;0;Y Axis;1;Z Axis;2;0;True;1;Space(10);False;1;1;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;558;-3328,-4864;Half;False;Property;_TITLE;< TITLE >;6;0;Create;True;0;0;True;1;StyledBanner(Height Fog Preset);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;643;-3104,-4736;Half;False;Property;_IsHeightFogShader;_IsHeightFogShader;5;1;[HideInInspector];Create;False;0;0;True;0;False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;278;-3328,-4352;Half;False;Property;_FogIntensity;Fog Intensity;8;0;Create;True;0;0;True;0;False;1;1;0;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;628;-2848,-4864;Half;False;Property;_DIRECTIONALL;[ DIRECTIONALL ];26;0;Create;True;0;0;True;1;StyledCategory(Directional);False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;639;-3072,-2560;Half;False;Property;_NoiseMode;Noise Mode;33;1;[Enum];Create;True;2;Off;0;Procedural 3D;2;0;True;0;False;2;2;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;633;-3072,-3072;Half;False;Property;_DirectionalIntensity;Directional Intensity;28;0;Create;True;0;0;True;0;False;1;1;0;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;650;-2816,-3584;Half;False;Property;_FogHeightFalloff;Fog Height Falloff;20;0;Create;True;0;0;True;0;False;2;3.41;1;8;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;635;-2224,-2560;Half;False;Property;_NoiseModeBlend;_NoiseModeBlend;34;1;[HideInInspector];Create;True;0;0;True;0;False;1;1;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;106;-3328,-3712;Half;False;Property;_FogDistanceStart;Fog Distance Start;15;0;Create;True;0;0;True;1;Space(10);False;-200;-200;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;107;-3072,-3712;Half;False;Property;_FogDistanceEnd;Fog Distance End;16;0;Create;True;0;0;True;0;False;200;0;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;103;-3328,-3584;Half;False;Property;_FogHeightStart;Fog Height Start;18;0;Create;True;0;0;True;1;Space(10);False;0;30;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;74;-3072,-3584;Half;False;Property;_FogHeightEnd;Fog Height End;19;0;Create;True;0;0;True;0;False;200;38.4;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;349;-2608,-2560;Half;False;Property;_NoiseDistanceEnd;Noise Distance End;36;0;Create;True;0;0;True;0;False;50;50;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;230;-2384,-2560;Half;False;Property;_NoiseScale;Noise Scale;37;0;Create;True;0;0;True;0;False;30;30;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;651;-2752,-3328;Half;False;Property;_SkyboxFogFalloff;Skybox Fog Falloff;24;0;Create;True;0;0;True;0;False;1;1;1;8;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;649;-2816,-3712;Half;False;Property;_FogDistanceFalloff;Fog Distance Falloff;17;0;Create;True;0;0;True;0;False;2;1;1;8;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;345;-2896,-2560;Half;False;Property;_NoiseIntensity;Noise Intensity;35;0;Create;True;0;0;True;0;False;1;0;0;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;654;-2784,-3072;Half;False;Property;_DirectionalFalloff;Directional Falloff;29;0;Create;True;0;0;True;0;False;2;1;1;8;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;644;-3328,-4736;Half;False;Property;_IsHeightFogPreset;_IsHeightFogPreset;4;1;[HideInInspector];Create;False;0;0;True;0;False;1;1;1;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;657;-3072,-4224;Half;False;Property;_FogLayersMode;Fog Layers Mode;10;1;[Enum];Create;True;2;Multiply Distance And Height;0;Additive Distance And Height;1;0;True;0;False;0;1;0;0;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;656;-3328,-3328;Half;False;Property;_SkyboxFogIntensity;Skybox Fog Intensity;22;0;Create;True;0;0;True;0;False;1;1;0;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;266;-2464,-3328;Half;False;Property;_SkyboxFogFill;Skybox Fog Fill;25;0;Create;True;0;0;True;0;False;1;0;0;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.RangedFloatNode;88;-3040,-3328;Half;False;Property;_SkyboxFogHeight;Skybox Fog Height;23;0;Create;True;0;0;True;0;False;1;1;0;1;0;1;FLOAT;0 +Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;383;-320,-4352;Float;False;True;-1;2;HeightFogShaderGUI;0;1;BOXOPHOBIC/Atmospherics/Height Fog Preset;0770190933193b94aaa3065e307002fa;True;Unlit;0;0;Unlit;2;True;2;5;False;-1;10;False;-1;0;5;False;-1;10;False;-1;True;0;False;-1;0;False;-1;True;False;True;2;False;-1;True;True;True;True;True;0;False;-1;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;True;2;False;594;True;7;False;595;True;False;0;False;500;0;False;500;True;2;RenderType=Overlay=RenderType;Queue=Overlay=Queue=0;True;2;0;False;False;False;False;False;False;False;False;False;True;1;LightMode=ForwardBase;False;0;;0;0;Standard;1;Vertex Position,InvertActionOnDeselection;1;0;1;True;False;;0 +Node;AmplifyShaderEditor.CommentaryNode;557;-3328,-4992;Inherit;False;1022.024;100;Drawers / Settings;0;;1,0.4980392,0,1;0;0 +Node;AmplifyShaderEditor.CommentaryNode;612;-3326,-4480;Inherit;False;3198.742;100;Props;0;;0.497,1,0,1;0;0 +WireConnection;383;1;646;0 +ASEEND*/ +//CHKSM=9EFA234C1F1A493196CE52E9554310373041C300 \ No newline at end of file diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.shader.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.shader.meta new file mode 100644 index 00000000..19d529e5 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Resources/Height Fog Preset.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a3a3bc8785681554d9558e2ea68f100e +timeCreated: 1567415769 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime.meta new file mode 100644 index 00000000..856dabf6 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c9c840958f8546c4e9667f0757d8557a +folderAsset: yes +timeCreated: 1555297627 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/Boxophobic.AtmosphericHeightFog.Runtime.asmdef b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/Boxophobic.AtmosphericHeightFog.Runtime.asmdef new file mode 100644 index 00000000..7ba3ccb0 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/Boxophobic.AtmosphericHeightFog.Runtime.asmdef @@ -0,0 +1,14 @@ +{ + "name": "Boxophobic.AtmosphericHeightFog.Runtime", + "references": [ + "Boxophobic.Utils.Scripts" + ], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +} \ No newline at end of file diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/Boxophobic.AtmosphericHeightFog.Runtime.asmdef.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/Boxophobic.AtmosphericHeightFog.Runtime.asmdef.meta new file mode 100644 index 00000000..849ed431 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/Boxophobic.AtmosphericHeightFog.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 946ad27fa286e62409a42cca7d545b88 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogEnums.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogEnums.cs new file mode 100644 index 00000000..ba3b8379 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogEnums.cs @@ -0,0 +1,37 @@ +// Cristian Pop - https://boxophobic.com/ + +namespace AtmosphericHeightFog +{ + public enum FogMode + { + UseScriptSettings = 10, + UsePresetSettings = 15, + UseTimeOfDay = 20, + } + + public enum FogAxisMode + { + XAxis = 0, + YAxis = 1, + ZAxis = 2, + } + + public enum FogLayersMode + { + MultiplyDistanceAndHeight = 10, + AdditiveDistanceAndHeight = 20, + } + + public enum FogDirectionalMode + { + Off = 0, + On = 1 + } + + public enum FogNoiseMode + { + Off = 0, + Procedural3D = 3 + } +} + diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogEnums.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogEnums.cs.meta new file mode 100644 index 00000000..ff110f08 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogEnums.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5472a508dc786f44eac5926a86dba7ff +timeCreated: 1554699905 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogGlobal.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogGlobal.cs new file mode 100644 index 00000000..4850cbc8 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogGlobal.cs @@ -0,0 +1,439 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEngine; +using Boxophobic.StyledGUI; +using UnityEngine.Serialization; + +namespace AtmosphericHeightFog +{ + [RequireComponent(typeof(MeshRenderer))] + [RequireComponent(typeof(MeshFilter))] + [ExecuteInEditMode] + public class HeightFogGlobal : StyledMonoBehaviour + { + [StyledBanner(0.55f, 0.7f, 1f, "Height Fog Global", "", "https://docs.google.com/document/d/1pIzIHIZ-cSh2ykODSZCbAPtScJ4Jpuu7lS3rNEHCLbc/edit#heading=h.kfvqsi6kusw4")] + public bool styledBanner; + + [StyledCategory("Scene")] + public bool categoryScene; + + public Camera mainCamera; + public Light mainDirectional; + + [StyledCategory("Mode")] + public bool categoryMode; + + public FogMode fogMode = FogMode.UseScriptSettings; + + [StyledMessage("Info", "The Preset feature requires a material using the BOXOPHOBIC > Atmospherics > Fog Preset shader.", 10, 0)] + public bool messagePreset = false; + + [StyledMessage("Info", "The Time Of Day feature works by interpolating two Fog Preset materials using the BOXOPHOBIC > Atmospherics > Fog Preset shader. Please note that not all material properties can be interpolated properly!", 10, 0)] + public bool messageTimeOfDay = false; + + [Space(10)] + public Material presetMaterial; + + [Space(10)] + public Material presetDay; + public Material presetNight; + + [Space(10)] + [Range(0, 1)] + public float timeOfDay = 0; + + [StyledCategory("Fog")] + public bool categoryFog; + + [Range(0, 1)] + public float fogIntensity = 1; + + [Space(10)] + public FogAxisMode fogAxisMode = FogAxisMode.YAxis; + public FogLayersMode fogLayersMode = FogLayersMode.MultiplyDistanceAndHeight; + + [Space(10)] + [FormerlySerializedAs("fogColor")] + [ColorUsage(false, true)] + public Color fogColorStart = new Color(0.5f, 0.75f, 1.0f, 1.0f); + [ColorUsage(false, true)] + public Color fogColorEnd = new Color(0.75f, 1f, 1.25f, 1.0f); + [Range(0f, 1f)] + public float fogColorDuo = 0; + + [Space(10)] + public float fogDistanceStart = -100; + public float fogDistanceEnd = 100; + [Range(1, 8)] + public float fogDistanceFalloff = 1; + + [Space(10)] + public float fogHeightStart = 0; + public float fogHeightEnd = 100; + [Range(1f, 8f)] + public float fogHeightFalloff = 1; + + [StyledCategory("Skybox")] + public bool categorySkybox; + + [Range(0, 1)] + public float skyboxFogIntensity = 1; + [Range(0, 1)] + public float skyboxFogHeight = 1; + [Range(1, 8)] + public float skyboxFogFalloff = 1; + [Range(0, 1)] + public float skyboxFogFill = 0; + + [StyledCategory("Directional")] + public bool categoryDirectional; + + [Range(0, 1)] + public float directionalIntensity = 1; + [Range(1, 8)] + public float directionalFalloff = 1; + [ColorUsage(false, true)] + public Color directionalColor = new Color(1f, 0.75f, 0.5f, 1f); + + [StyledCategory("Noise")] + public bool categoryNoise; + + public FogNoiseMode noiseMode = FogNoiseMode.Procedural3D; + [Range(0, 1)] + public float noiseIntensity = 1; + public float noiseDistanceEnd = 50; + public float noiseScale = 30; + public Vector3 noiseSpeed = new Vector3(0.5f, 0f, 0.5f); + + [StyledCategory("Advanced")] + public bool categoryAdvanced; + + public bool manualPositionAndScale = false; + public int renderPriority = 1; + + [StyledSpace(5)] + public bool styledSpace0; + + Material localMaterial; + Material blendMaterial; + Material globalMaterial; + Material missingMaterial; + Material currentMaterial; + [HideInInspector] + public Material overrideMaterial; + [HideInInspector] + public float overrideCamToVolumeDistance = 1f; + [HideInInspector] + public float overrideVolumeDistanceFade = 0f; + + [HideInInspector] + public int version = 0; + + // Deprecated + [HideInInspector] + public FogDirectionalMode directionalMode = FogDirectionalMode.On; + + void Awake() + { + if (version < 180) + { + directionalIntensity = directionalIntensity * (int)directionalMode; + version = 180; + } + + gameObject.name = "Height Fog Global"; + + gameObject.transform.position = Vector3.zero; + gameObject.transform.rotation = Quaternion.identity; + + GetCamera(); + GetDirectional(); + + if (mainCamera != null) + { + if (mainCamera.depthTextureMode != DepthTextureMode.Depth || mainCamera.depthTextureMode != DepthTextureMode.DepthNormals) + { + mainCamera.depthTextureMode = DepthTextureMode.Depth; + } + } + else + { + Debug.Log("[Atmospheric Height Fog] Camera not found! Make sure you have a camera in the scene or your camera has the MainCamera tag!"); + } + + var sphereMeshGO = GameObject.CreatePrimitive(PrimitiveType.Sphere); + var sphereMesh = sphereMeshGO.GetComponent().sharedMesh; + DestroyImmediate(sphereMeshGO); + + gameObject.GetComponent().sharedMesh = sphereMesh; + + localMaterial = new Material(Shader.Find("BOXOPHOBIC/Atmospherics/Height Fog Preset")); + localMaterial.name = "Local"; + + overrideMaterial = new Material(localMaterial); + overrideMaterial.name = "Override"; + + blendMaterial = new Material(localMaterial); + blendMaterial.name = "Blend"; + + globalMaterial = new Material(Shader.Find("Hidden/BOXOPHOBIC/Atmospherics/Height Fog Global")); + globalMaterial.name = "Height Fog Global"; + + missingMaterial = Resources.Load("Height Fog Preset"); + + gameObject.GetComponent().sharedMaterial = globalMaterial; + } + + void OnEnable() + { + gameObject.GetComponent().enabled = true; + } + + void OnDisable() + { + gameObject.GetComponent().enabled = false; + Shader.SetGlobalFloat("AHF_FogIntensity", 0); + } + + void OnDestroy() + { + Shader.SetGlobalFloat("AHF_FogIntensity", 0); + } + + void Update() + { + if (mainCamera == null) + { + Debug.Log("[Atmospheric Height Fog] " + "Make sure you set scene camera tag to Main Camera for the fog to work!"); + return; + } + + if (!manualPositionAndScale) + { + SetFogSphereSize(); + SetFogSpherePosition(); + } + + currentMaterial = localMaterial; + + if (fogMode == FogMode.UseScriptSettings) + { + SetLocalMaterial(); + + messageTimeOfDay = false; + messagePreset = false; + } + else if (fogMode == FogMode.UsePresetSettings) + { + if (presetMaterial != null && presetMaterial.HasProperty("_IsHeightFogPreset")) + { + currentMaterial = presetMaterial; + messagePreset = false; + } + else + { + currentMaterial = missingMaterial; + messagePreset = true; + } + + messageTimeOfDay = false; + } + else if (fogMode == FogMode.UseTimeOfDay) + { + if (presetDay != null && presetDay.HasProperty("_IsHeightFogPreset") && presetNight != null && presetNight.HasProperty("_IsHeightFogPreset")) + { + currentMaterial.Lerp(presetDay, presetNight, timeOfDay); + messageTimeOfDay = false; + } + else + { + currentMaterial = missingMaterial; + messageTimeOfDay = true; + } + + messagePreset = false; + } + + if (mainDirectional != null) + { + currentMaterial.SetVector("_DirectionalDir", -mainDirectional.transform.forward); + } + else + { + currentMaterial.SetVector("_DirectionalDir", Vector4.zero); + } + + if (overrideCamToVolumeDistance > overrideVolumeDistanceFade) + { + blendMaterial.CopyPropertiesFromMaterial(currentMaterial); + } + else if (overrideCamToVolumeDistance < overrideVolumeDistanceFade) + { + var lerp = 1 - (overrideCamToVolumeDistance / overrideVolumeDistanceFade); + blendMaterial.Lerp(currentMaterial, overrideMaterial, lerp); + } + + SetGlobalMaterials(); + SetRenderQueue(); + } + + void GetCamera() + { + if (mainCamera == null) + { + mainCamera = Camera.main; + } + } + + void GetDirectional() + { + if (mainDirectional == null) + { + var allLights = FindObjectsOfType(); + var intensity = 0.0f; + + for (int i = 0; i < allLights.Length; i++) + { + if (allLights[i].type == LightType.Directional) + { + if (allLights[i].intensity > intensity) + { + mainDirectional = allLights[i]; + } + } + } + } + } + + void SetLocalMaterial() + { + localMaterial.SetFloat("_FogIntensity", fogIntensity); + + localMaterial.SetColor("_FogColorStart", fogColorStart); + localMaterial.SetColor("_FogColorEnd", fogColorEnd); + localMaterial.SetFloat("_FogColorDuo", fogColorDuo); + + localMaterial.SetFloat("_FogDistanceStart", fogDistanceStart); + localMaterial.SetFloat("_FogDistanceEnd", fogDistanceEnd); + localMaterial.SetFloat("_FogDistanceFalloff", fogDistanceFalloff); + + localMaterial.SetFloat("_FogHeightStart", fogHeightStart); + localMaterial.SetFloat("_FogHeightEnd", fogHeightEnd); + localMaterial.SetFloat("_FogHeightFalloff", fogHeightFalloff); + + localMaterial.SetFloat("_SkyboxFogIntensity", skyboxFogIntensity); + localMaterial.SetFloat("_SkyboxFogHeight", skyboxFogHeight); + localMaterial.SetFloat("_SkyboxFogFalloff", skyboxFogFalloff); + localMaterial.SetFloat("_SkyboxFogFill", skyboxFogFill); + + localMaterial.SetFloat("_DirectionalIntensity", directionalIntensity); + localMaterial.SetFloat("_DirectionalFalloff", directionalFalloff); + localMaterial.SetColor("_DirectionalColor", directionalColor); + + localMaterial.SetFloat("_NoiseIntensity", noiseIntensity); + localMaterial.SetFloat("_NoiseDistanceEnd", noiseDistanceEnd); + localMaterial.SetFloat("_NoiseScale", noiseScale); + localMaterial.SetVector("_NoiseSpeed", noiseSpeed); + + if (fogAxisMode == FogAxisMode.XAxis) + { + localMaterial.SetVector("_FogAxisOption", new Vector4(1, 0, 0, 0)); + } + else if (fogAxisMode == FogAxisMode.YAxis) + { + localMaterial.SetVector("_FogAxisOption", new Vector4(0, 1, 0, 0)); + } + else if (fogAxisMode == FogAxisMode.ZAxis) + { + localMaterial.SetVector("_FogAxisOption", new Vector4(0, 0, 1, 0)); + } + + if (fogLayersMode == FogLayersMode.MultiplyDistanceAndHeight) + { + localMaterial.SetFloat("_FogLayersMode", 0.0f); + } + else + { + localMaterial.SetFloat("_FogLayersMode", 1.0f); + } + + if (noiseMode == FogNoiseMode.Procedural3D) + { + localMaterial.SetFloat("_NoiseModeBlend", 1.0f); + } + else + { + localMaterial.SetFloat("_NoiseModeBlend", 0.0f); + } + } + + void SetGlobalMaterials() + { + if (blendMaterial.HasProperty("_IsHeightFogPreset") == false) + { + return; + } + + Shader.SetGlobalFloat("AHF_FogIntensity", blendMaterial.GetFloat("_FogIntensity")); + + Shader.SetGlobalVector("AHF_FogAxisOption", blendMaterial.GetVector("_FogAxisOption")); + Shader.SetGlobalFloat("AHF_FogLayersMode", blendMaterial.GetFloat("_FogLayersMode")); + + Shader.SetGlobalColor("AHF_FogColorStart", blendMaterial.GetColor("_FogColorStart")); + Shader.SetGlobalColor("AHF_FogColorEnd", blendMaterial.GetColor("_FogColorEnd")); + Shader.SetGlobalFloat("AHF_FogColorDuo", blendMaterial.GetFloat("_FogColorDuo")); + + Shader.SetGlobalFloat("AHF_FogDistanceStart", blendMaterial.GetFloat("_FogDistanceStart")); + Shader.SetGlobalFloat("AHF_FogDistanceEnd", blendMaterial.GetFloat("_FogDistanceEnd")); + Shader.SetGlobalFloat("AHF_FogDistanceFalloff", blendMaterial.GetFloat("_FogDistanceFalloff")); + + Shader.SetGlobalFloat("AHF_FogHeightStart", blendMaterial.GetFloat("_FogHeightStart")); + Shader.SetGlobalFloat("AHF_FogHeightEnd", blendMaterial.GetFloat("_FogHeightEnd")); + Shader.SetGlobalFloat("AHF_FogHeightFalloff", blendMaterial.GetFloat("_FogHeightFalloff")); + + Shader.SetGlobalFloat("AHF_SkyboxFogIntensity", blendMaterial.GetFloat("_SkyboxFogIntensity")); + Shader.SetGlobalFloat("AHF_SkyboxFogHeight", blendMaterial.GetFloat("_SkyboxFogHeight")); + Shader.SetGlobalFloat("AHF_SkyboxFogFalloff", blendMaterial.GetFloat("_SkyboxFogFalloff")); + Shader.SetGlobalFloat("AHF_SkyboxFogFill", blendMaterial.GetFloat("_SkyboxFogFill")); + + Shader.SetGlobalVector("AHF_DirectionalDir", blendMaterial.GetVector("_DirectionalDir")); + Shader.SetGlobalFloat("AHF_DirectionalIntensity", blendMaterial.GetFloat("_DirectionalIntensity")); + Shader.SetGlobalFloat("AHF_DirectionalFalloff", blendMaterial.GetFloat("_DirectionalFalloff")); + Shader.SetGlobalColor("AHF_DirectionalColor", blendMaterial.GetColor("_DirectionalColor")); + + Shader.SetGlobalFloat("AHF_NoiseModeBlend", blendMaterial.GetFloat("_NoiseModeBlend")); + Shader.SetGlobalFloat("AHF_NoiseIntensity", blendMaterial.GetFloat("_NoiseIntensity")); + Shader.SetGlobalFloat("AHF_NoiseDistanceEnd", blendMaterial.GetFloat("_NoiseDistanceEnd")); + Shader.SetGlobalFloat("AHF_NoiseScale", blendMaterial.GetFloat("_NoiseScale")); + Shader.SetGlobalVector("AHF_NoiseSpeed", blendMaterial.GetVector("_NoiseSpeed")); + + if (blendMaterial.GetFloat("_NoiseModeBlend") > 0) + { + Shader.DisableKeyword("AHF_NOISEMODE_OFF"); + Shader.EnableKeyword("AHF_NOISEMODE_PROCEDURAL3D"); + } + else + { + Shader.DisableKeyword("AHF_NOISEMODE_PROCEDURAL3D"); + Shader.EnableKeyword("AHF_NOISEMODE_OFF"); + } + } + + void SetFogSphereSize() + { + var cameraFar = mainCamera.farClipPlane - 1; + gameObject.transform.localScale = new Vector3(cameraFar, cameraFar, cameraFar); + } + + void SetFogSpherePosition() + { + transform.position = mainCamera.transform.position; + } + + void SetRenderQueue() + { + globalMaterial.renderQueue = 3000 + renderPriority; + } + } +} + diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogGlobal.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogGlobal.cs.meta new file mode 100644 index 00000000..f03d0673 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogGlobal.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d8023d2ae1fcb2948a39527720c2087b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 100 + icon: {fileID: 2800000, guid: 1ed6c69382334dd4e94337c8860e7116, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogOverride.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogOverride.cs new file mode 100644 index 00000000..abbbefe4 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogOverride.cs @@ -0,0 +1,392 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEngine; +using Boxophobic.StyledGUI; +using UnityEngine.Serialization; + +namespace AtmosphericHeightFog +{ + [ExecuteInEditMode] + [HelpURL("https://docs.google.com/document/d/1pIzIHIZ-cSh2ykODSZCbAPtScJ4Jpuu7lS3rNEHCLbc/edit#heading=h.hd5jt8lucuqq")] + public class HeightFogOverride : StyledMonoBehaviour + { + [StyledBanner(0.55f, 0.7f, 1f, "Height Fog Override", "", "https://docs.google.com/document/d/1pIzIHIZ-cSh2ykODSZCbAPtScJ4Jpuu7lS3rNEHCLbc/edit#heading=h.hd5jt8lucuqq")] + public bool styledBanner; + + [StyledMessage("Info", "The Height Fog Global object is missing from your scene! Please add it before using the Height Fog Override component!", 5, 0)] + public bool messageNoHeightFogGlobal = false; + + [StyledCategory("Volume")] + public bool categoryVolume; + + public float volumeDistanceFade = 3; + public bool volumeGizmoVisibility = true; + + [StyledCategory("Scene")] + public bool categoryScene; + + public Camera mainCamera; + public Light mainDirectional; + + [StyledCategory("Mode")] + public bool categoryMode; + + public FogMode fogMode = FogMode.UseScriptSettings; + + [StyledMessage("Info", "The Preset feature requires a material using the BOXOPHOBIC > Atmospherics > Fog Preset shader.", 10, 0)] + public bool messagePreset = false; + + [StyledMessage("Info", "The Time Of Day feature works by interpolating two Fog Preset materials using the BOXOPHOBIC > Atmospherics > Fog Preset shader. Please note that not all material properties can be interpolated properly!", 10, 0)] + public bool messageTimeOfDay = false; + + [Space(10)] + public Material presetMaterial; + + [Space(10)] + public Material presetDay; + public Material presetNight; + + [Space(10)] + [Range(0, 1)] + public float timeOfDay = 0; + + [StyledCategory("Fog")] + public bool categoryFog; + + [Range(0, 1)] + public float fogIntensity = 1; + + [Space(10)] + public FogAxisMode fogAxisMode = FogAxisMode.YAxis; + public FogLayersMode fogLayersMode = FogLayersMode.MultiplyDistanceAndHeight; + + [Space(10)] + [FormerlySerializedAs("fogColor")] + [ColorUsage(false, true)] + public Color fogColorStart = new Color(0.5f, 0.75f, 0.0f, 1.0f); + [ColorUsage(false, true)] + public Color fogColorEnd = new Color(0.75f, 1f, 0.0f, 1.0f); + [Range(0, 1)] + public float fogColorDuo = 0; + + [Space(10)] + public float fogDistanceStart = -100; + public float fogDistanceEnd = 100; + [Range(1, 8)] + public float fogDistanceFalloff = 1; + + [Space(10)] + public float fogHeightStart = 0; + public float fogHeightEnd = 100; + [Range(1f, 8f)] + public float fogHeightFalloff = 1; + + [StyledCategory("Skybox")] + public bool categorySkybox; + + [Range(0, 1)] + public float skyboxFogIntensity = 1; + [Range(0, 1)] + public float skyboxFogHeight = 1; + [Range(1, 8)] + public float skyboxFogFalloff = 1; + [Range(0, 1)] + public float skyboxFogFill = 0; + + [StyledCategory("Directional")] + public bool categoryDirectional; + + [Range(0, 1)] + public float directionalIntensity = 1; + [Range(1, 8)] + public float directionalFalloff = 1; + [ColorUsage(false, true)] + public Color directionalColor = new Color(1f, 0.75f, 0.5f, 1f); + + [StyledCategory("Noise")] + public bool categoryNoise; + + public FogNoiseMode noiseMode = FogNoiseMode.Procedural3D; + [Range(0, 1)] + public float noiseIntensity = 1; + public float noiseDistanceEnd = 50; + public float noiseScale = 30; + public Vector3 noiseSpeed = new Vector3(0.5f, 0f, 0.5f); + + [StyledSpace(5)] + public bool styledSpace0; + + Material localMaterial; + Material missingMaterial; + Material currentMaterial; + Collider volumeCollider; + HeightFogGlobal globalFog = null; + bool distanceSent = false; + + [HideInInspector] + public int version = 0; + + // Deprecated + [HideInInspector] + public FogDirectionalMode directionalMode = FogDirectionalMode.On; + + void Start() + { + if (version < 180) + { + directionalIntensity = directionalIntensity * (int)directionalMode; + version = 180; + } + + volumeCollider = GetComponent(); + + if (volumeCollider == null) + { + Debug.Log("[Atmospheric Height Fog] Please create override volumes from the GameObject menu > BOXOPHOBIC > Atmospheric Height Fog > Override!"); + DestroyImmediate(this); + } + + if (GameObject.Find("Height Fog Global") != null) + { + GameObject globalFogGO = GameObject.Find("Height Fog Global"); + globalFog = globalFogGO.GetComponent(); + + messageNoHeightFogGlobal = false; + } + else + { + messageNoHeightFogGlobal = true; + } + + GetDirectional(); + + localMaterial = new Material(Shader.Find("BOXOPHOBIC/Atmospherics/Height Fog Preset")); + localMaterial.name = "Local"; + + missingMaterial = Resources.Load("Height Fog Preset"); + + SetLocalMaterial(); + } + + void OnDisable() + { + if (globalFog != null) + { + globalFog.overrideCamToVolumeDistance = 1; + globalFog.overrideVolumeDistanceFade = 0; + } + } + + void OnDestroy() + { + if (globalFog != null) + { + globalFog.overrideCamToVolumeDistance = 1; + globalFog.overrideVolumeDistanceFade = 0; + } + } + + void Update() + { + GetCamera(); + + if (mainCamera == null || globalFog == null) + { + return; + } + + currentMaterial = localMaterial; + + if (fogMode == FogMode.UseScriptSettings) + { + SetLocalMaterial(); + + messageTimeOfDay = false; + messagePreset = false; + } + else if (fogMode == FogMode.UsePresetSettings) + { + if (presetMaterial != null && presetMaterial.HasProperty("_IsHeightFogPreset")) + { + currentMaterial = presetMaterial; + messagePreset = false; + } + else + { + currentMaterial = missingMaterial; + messagePreset = true; + } + + messageTimeOfDay = false; + } + else if (fogMode == FogMode.UseTimeOfDay) + { + if (presetDay != null && presetDay.HasProperty("_IsHeightFogPreset") && presetNight != null && presetNight.HasProperty("_IsHeightFogPreset")) + { + currentMaterial.Lerp(presetDay, presetNight, timeOfDay); + messageTimeOfDay = false; + } + else + { + currentMaterial = missingMaterial; + messageTimeOfDay = true; + } + + + messagePreset = false; + } + + if (mainDirectional != null) + { + currentMaterial.SetVector("_DirectionalDir", -mainDirectional.transform.forward); + } + else + { + currentMaterial.SetVector("_DirectionalDir", Vector4.zero); + } + + Vector3 camPos = mainCamera.transform.position; + Vector3 closestPos = volumeCollider.ClosestPoint(camPos); + + float dist = Vector3.Distance(camPos, closestPos); + + if (dist > volumeDistanceFade && distanceSent == false) + { + globalFog.overrideCamToVolumeDistance = Mathf.Infinity; + distanceSent = true; + } + else if (dist < volumeDistanceFade) + { + globalFog.overrideMaterial = currentMaterial; + globalFog.overrideCamToVolumeDistance = dist; + globalFog.overrideVolumeDistanceFade = volumeDistanceFade; + distanceSent = false; + } + } + + void OnDrawGizmos() + { + if (volumeCollider == null || !volumeGizmoVisibility) + { + return; + } + + var color = currentMaterial.GetColor("_FogColorStart"); + var mul = 2f; + + if (volumeCollider.GetType() == typeof(BoxCollider)) + { + var col = GetComponent(); + + Gizmos.color = new Color(color.r * mul, color.g * mul, color.b * mul, 1.0f); + Gizmos.DrawWireCube(transform.position, new Vector3(transform.lossyScale.x * col.size.x, transform.lossyScale.y * col.size.y, transform.lossyScale.z * col.size.z)); + + Gizmos.color = new Color(color.r * mul, color.g * mul, color.b * mul, 0.5f); + Gizmos.DrawWireCube(transform.position, new Vector3(transform.lossyScale.x * col.size.x + (volumeDistanceFade * 2), transform.lossyScale.y * col.size.y + (volumeDistanceFade * 2), transform.lossyScale.z * col.size.z + (volumeDistanceFade * 2))); + + } + else + { + var col = GetComponent(); + var scale = Mathf.Max(Mathf.Max(gameObject.transform.localScale.x, gameObject.transform.localScale.y), gameObject.transform.localScale.z); + + Gizmos.color = new Color(color.r * mul, color.g * mul, color.b * mul, 1.0f); + Gizmos.DrawWireSphere(transform.position, col.radius * scale); + + Gizmos.color = new Color(color.r * mul, color.g * mul, color.b * mul, 0.5f); + Gizmos.DrawWireSphere(transform.position, col.radius * scale + volumeDistanceFade); + } + } + + void GetCamera() + { + if (mainCamera == null) + { + mainCamera = Camera.main; + } + } + + void GetDirectional() + { + if (mainDirectional == null) + { + var allLights = FindObjectsOfType(); + var intensity = 0.0f; + + for (int i = 0; i < allLights.Length; i++) + { + if (allLights[i].type == LightType.Directional) + { + if (allLights[i].intensity > intensity) + { + mainDirectional = allLights[i]; + } + } + } + } + } + + void SetLocalMaterial() + { + localMaterial.SetFloat("_FogIntensity", fogIntensity); + + localMaterial.SetColor("_FogColorStart", fogColorStart); + localMaterial.SetColor("_FogColorEnd", fogColorEnd); + localMaterial.SetFloat("_FogColorDuo", fogColorDuo); + + localMaterial.SetFloat("_FogDistanceStart", fogDistanceStart); + localMaterial.SetFloat("_FogDistanceEnd", fogDistanceEnd); + localMaterial.SetFloat("_FogDistanceFalloff", fogDistanceFalloff); + + localMaterial.SetFloat("_FogHeightStart", fogHeightStart); + localMaterial.SetFloat("_FogHeightEnd", fogHeightEnd); + localMaterial.SetFloat("_FogHeightFalloff", fogHeightFalloff); + + localMaterial.SetFloat("_SkyboxFogIntensity", skyboxFogIntensity); + localMaterial.SetFloat("_SkyboxFogHeight", skyboxFogHeight); + localMaterial.SetFloat("_SkyboxFogFalloff", skyboxFogFalloff); + localMaterial.SetFloat("_SkyboxFogFill", skyboxFogFill); + + localMaterial.SetFloat("_DirectionalIntensity", directionalIntensity); + localMaterial.SetFloat("_DirectionalFalloff", directionalFalloff); + localMaterial.SetColor("_DirectionalColor", directionalColor); + + localMaterial.SetFloat("_NoiseIntensity", noiseIntensity); + localMaterial.SetFloat("_NoiseDistanceEnd", noiseDistanceEnd); + localMaterial.SetFloat("_NoiseScale", noiseScale); + localMaterial.SetVector("_NoiseSpeed", noiseSpeed); + + if (fogAxisMode == FogAxisMode.XAxis) + { + localMaterial.SetVector("_FogAxisOption", new Vector4(1, 0, 0, 0)); + } + else if (fogAxisMode == FogAxisMode.YAxis) + { + localMaterial.SetVector("_FogAxisOption", new Vector4(0, 1, 0, 0)); + } + else if (fogAxisMode == FogAxisMode.ZAxis) + { + localMaterial.SetVector("_FogAxisOption", new Vector4(0, 0, 1, 0)); + } + + if (fogLayersMode == FogLayersMode.MultiplyDistanceAndHeight) + { + localMaterial.SetFloat("_FogLayersMode", 0.0f); + } + else + { + localMaterial.SetFloat("_FogLayersMode", 1.0f); + } + + if (noiseMode == FogNoiseMode.Procedural3D) + { + localMaterial.SetFloat("_NoiseModeBlend", 1.0f); + } + else + { + localMaterial.SetFloat("_NoiseModeBlend", 0.0f); + } + } + } +} + diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogOverride.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogOverride.cs.meta new file mode 100644 index 00000000..86ea5b0e --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogOverride.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: ac1c26670b7bd6a47ac695141473ab42 +timeCreated: 1568146209 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 500f3eaec95c62949b969478343b29d4, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogPerObject.cs b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogPerObject.cs new file mode 100644 index 00000000..6a014d97 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogPerObject.cs @@ -0,0 +1,186 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEngine; +using Boxophobic; +using Boxophobic.StyledGUI; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace AtmosphericHeightFog +{ + [ExecuteInEditMode] + [DisallowMultipleComponent] + [HelpURL("https://docs.google.com/document/d/1pIzIHIZ-cSh2ykODSZCbAPtScJ4Jpuu7lS3rNEHCLbc/edit#heading=h.pzat2b29j9a0")] + public class HeightFogPerObject : StyledMonoBehaviour + { + [StyledBanner(0.474f, 0.709f, 0.901f, "Height Fog Per Object", "", "https://docs.google.com/document/d/1pIzIHIZ-cSh2ykODSZCbAPtScJ4Jpuu7lS3rNEHCLbc/edit#heading=h.pzat2b29j9a0")] + public bool styledBanner; + + [StyledMessage("Info", "The Object does not have a Mesh Renderer!", 5, 5)] + public bool messageNoRenderer = false; + + [StyledMessage("Info", "Objects using multiple materials are not supported!", 5, 5)] + public bool messageMultiMaterials = false; + + [StyledMessage("Info", "The Object does not have a Material assigned!", 5, 5)] + public bool messageNoMaterial = false; + + [StyledMessage("Info", "Please note that the Height Fog Per Object option will not work for all transparent objects. Available in Play mode only. Please read the documentation for more!", 0, 0)] + public bool messageTransparencySupport = true; + + [StyledCategory("Settings")] + public bool categoryMaterial; + + public Material customFogMaterial = null; + + [StyledMessage("Info", "The is not a valid Height Fog material! Please assign the correct shader first!", 5, 0)] + public bool messageInvalidFogMaterial = false; + + [StyledSpace(5)] + public bool styledSpace0; + + int transparencyRenderQueue = 3002; + + Material originalMaterial; + Material instanceMaterial; + Material transparencyMaterial; + + GameObject transparencyGO; + + void Awake() + { + if (GameObjectIsInvalid()) + { + return; + } + +#if UNITY_EDITOR + if (Application.isPlaying == false) + { + GameObjectDisableBathingFlag(); + return; + } +#endif + + transparencyGO = new GameObject(gameObject.name + " (Height Fog Object)"); + + transparencyGO.transform.parent = gameObject.transform; + transparencyGO.transform.localPosition = Vector3.zero; + transparencyGO.transform.localRotation = Quaternion.identity; + transparencyGO.transform.localScale = Vector3.one; + + transparencyGO.AddComponent(); + transparencyGO.AddComponent(); + + transparencyGO.GetComponent().sharedMesh = gameObject.GetComponent().sharedMesh; + + Material originalMaterial = gameObject.GetComponent().sharedMaterial; + + instanceMaterial = new Material(originalMaterial); + instanceMaterial.name = originalMaterial.name + " (Instance)"; + //instanceMaterial.SetOverrideTag("DisableBatching", "True"); + + if (customFogMaterial == null) + { + transparencyMaterial = new Material(instanceMaterial); + transparencyMaterial.shader = Shader.Find("BOXOPHOBIC/Atmospherics/Height Fog Per Object"); + transparencyMaterial.name = originalMaterial.name + " (Generic Fog)"; + } + else if (customFogMaterial != null) + { + if (customFogMaterial.HasProperty("_IsHeightFogShader")) + { + transparencyMaterial = customFogMaterial; + transparencyMaterial.name = originalMaterial.name + " (Custom Fog)"; + } + else + { + transparencyMaterial = new Material(instanceMaterial); + transparencyMaterial.shader = Shader.Find("BOXOPHOBIC/Atmospherics/Height Fog Per Object"); + transparencyMaterial.name = originalMaterial.name + " (Generic Fog)"; + } + } + + if (transparencyMaterial.HasProperty("_IsStandardPipeline")) + { + transparencyRenderQueue = 3002; + } + else + { + transparencyRenderQueue = 3102; + } + + instanceMaterial.renderQueue = transparencyRenderQueue; + transparencyMaterial.renderQueue = transparencyRenderQueue + 1; + + gameObject.GetComponent().material = instanceMaterial; + transparencyGO.GetComponent().material = transparencyMaterial; + + } +#if UNITY_EDITOR + void Update() + { + if (Application.isPlaying == true) + { + return; + } + + if (gameObject.isStatic) + { + GameObjectDisableBathingFlag(); + } + + if (customFogMaterial == null) + { + messageInvalidFogMaterial = false; + } + else if (customFogMaterial != null) + { + if (customFogMaterial.HasProperty("_IsHeightFogShader") == false) + { + messageInvalidFogMaterial = true; + } + else + { + messageInvalidFogMaterial = false; + } + } + } +#endif + + bool GameObjectIsInvalid() + { + bool invalid = false; + + if (gameObject.GetComponent() == null) + { + messageNoRenderer = true; + invalid = true; + } + + else if (gameObject.GetComponent().sharedMaterials.Length > 1) + { + messageMultiMaterials = true; + invalid = true; + } + + else if (gameObject.GetComponent().sharedMaterial == null) + { + messageNoMaterial = true; + invalid = true; + } + + return invalid; + } + +#if UNITY_EDITOR + void GameObjectDisableBathingFlag() + { + StaticEditorFlags flags = GameObjectUtility.GetStaticEditorFlags(gameObject); + flags = flags & ~(StaticEditorFlags.BatchingStatic); + GameObjectUtility.SetStaticEditorFlags(gameObject, flags); + } +#endif + } +} diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogPerObject.cs.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogPerObject.cs.meta new file mode 100644 index 00000000..8e2a36c7 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Runtime/HeightFogPerObject.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 002595e91f609a246845cbf8a32fd288 +timeCreated: 1568222395 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: -333 + icon: {fileID: 2800000, guid: e5ce702f9a95f4f42a9ebd790113406a, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders.meta new file mode 100644 index 00000000..00ea5412 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0f14f2cbed5e00a40a3fa94241cf6c27 +folderAsset: yes +timeCreated: 1570704692 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders/UI Default (Height Fog Support).shader b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders/UI Default (Height Fog Support).shader new file mode 100644 index 00000000..a30f1675 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders/UI Default (Height Fog Support).shader @@ -0,0 +1,280 @@ +// Made with Amplify Shader Editor +// Available at the Unity Asset Store - http://u3d.as/y3X +Shader "UI/Default (Height Fog Support)" +{ + Properties + { + [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _ColorMask ("Color Mask", Float) = 15 + + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + [HideInInspector] _texcoord( "", 2D ) = "white" {} + + } + + SubShader + { + LOD 0 + + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" } + + Stencil + { + Ref [_Stencil] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + CompFront [_StencilComp] + PassFront [_StencilOp] + FailFront Keep + ZFailFront Keep + CompBack Always + PassBack Keep + FailBack Keep + ZFailBack Keep + } + + + Cull Off + Lighting Off + ZWrite Off + ZTest [unity_GUIZTestMode] + Blend SrcAlpha OneMinusSrcAlpha + ColorMask [_ColorMask] + + + Pass + { + Name "Default" + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #include "UnityShaderVariables.cginc" + #define ASE_NEEDS_FRAG_COLOR + #pragma multi_compile AHF_NOISEMODE_OFF AHF_NOISEMODE_PROCEDURAL3D + + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + + }; + + struct v2f + { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + half2 texcoord : TEXCOORD0; + float4 worldPosition : TEXCOORD1; + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 ase_texcoord2 : TEXCOORD2; + }; + + uniform fixed4 _Color; + uniform fixed4 _TextureSampleAdd; + uniform float4 _ClipRect; + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform half4 AHF_FogColorStart; + uniform half4 AHF_FogColorEnd; + uniform half AHF_FogDistanceStart; + uniform half AHF_FogDistanceEnd; + uniform half AHF_FogDistanceFalloff; + uniform half AHF_FogColorDuo; + uniform half4 AHF_DirectionalColor; + uniform half3 AHF_DirectionalDir; + uniform half AHF_DirectionalIntensity; + uniform half AHF_DirectionalFalloff; + uniform half3 AHF_FogAxisOption; + uniform half AHF_FogHeightEnd; + uniform half AHF_FogHeightStart; + uniform half AHF_FogHeightFalloff; + uniform half AHF_FogLayersMode; + uniform half AHF_NoiseScale; + uniform half3 AHF_NoiseSpeed; + uniform half AHF_NoiseDistanceEnd; + uniform half AHF_NoiseIntensity; + uniform half AHF_NoiseModeBlend; + uniform half AHF_FogIntensity; + float3 mod3D289( float3 x ) { return x - floor( x / 289.0 ) * 289.0; } + float4 mod3D289( float4 x ) { return x - floor( x / 289.0 ) * 289.0; } + float4 permute( float4 x ) { return mod3D289( ( x * 34.0 + 1.0 ) * x ); } + float4 taylorInvSqrt( float4 r ) { return 1.79284291400159 - r * 0.85373472095314; } + float snoise( float3 v ) + { + const float2 C = float2( 1.0 / 6.0, 1.0 / 3.0 ); + float3 i = floor( v + dot( v, C.yyy ) ); + float3 x0 = v - i + dot( i, C.xxx ); + float3 g = step( x0.yzx, x0.xyz ); + float3 l = 1.0 - g; + float3 i1 = min( g.xyz, l.zxy ); + float3 i2 = max( g.xyz, l.zxy ); + float3 x1 = x0 - i1 + C.xxx; + float3 x2 = x0 - i2 + C.yyy; + float3 x3 = x0 - 0.5; + i = mod3D289( i); + float4 p = permute( permute( permute( i.z + float4( 0.0, i1.z, i2.z, 1.0 ) ) + i.y + float4( 0.0, i1.y, i2.y, 1.0 ) ) + i.x + float4( 0.0, i1.x, i2.x, 1.0 ) ); + float4 j = p - 49.0 * floor( p / 49.0 ); // mod(p,7*7) + float4 x_ = floor( j / 7.0 ); + float4 y_ = floor( j - 7.0 * x_ ); // mod(j,N) + float4 x = ( x_ * 2.0 + 0.5 ) / 7.0 - 1.0; + float4 y = ( y_ * 2.0 + 0.5 ) / 7.0 - 1.0; + float4 h = 1.0 - abs( x ) - abs( y ); + float4 b0 = float4( x.xy, y.xy ); + float4 b1 = float4( x.zw, y.zw ); + float4 s0 = floor( b0 ) * 2.0 + 1.0; + float4 s1 = floor( b1 ) * 2.0 + 1.0; + float4 sh = -step( h, 0.0 ); + float4 a0 = b0.xzyw + s0.xzyw * sh.xxyy; + float4 a1 = b1.xzyw + s1.xzyw * sh.zzww; + float3 g0 = float3( a0.xy, h.x ); + float3 g1 = float3( a0.zw, h.y ); + float3 g2 = float3( a1.xy, h.z ); + float3 g3 = float3( a1.zw, h.w ); + float4 norm = taylorInvSqrt( float4( dot( g0, g0 ), dot( g1, g1 ), dot( g2, g2 ), dot( g3, g3 ) ) ); + g0 *= norm.x; + g1 *= norm.y; + g2 *= norm.z; + g3 *= norm.w; + float4 m = max( 0.6 - float4( dot( x0, x0 ), dot( x1, x1 ), dot( x2, x2 ), dot( x3, x3 ) ), 0.0 ); + m = m* m; + m = m* m; + float4 px = float4( dot( x0, g0 ), dot( x1, g1 ), dot( x2, g2 ), dot( x3, g3 ) ); + return 42.0 * dot( m, px); + } + + + + v2f vert( appdata_t IN ) + { + v2f OUT; + UNITY_SETUP_INSTANCE_ID( IN ); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + UNITY_TRANSFER_INSTANCE_ID(IN, OUT); + OUT.worldPosition = IN.vertex; + float3 ase_worldPos = mul(unity_ObjectToWorld, IN.vertex).xyz; + OUT.ase_texcoord2.xyz = ase_worldPos; + + + //setting value to unused interpolator channels and avoid initialization warnings + OUT.ase_texcoord2.w = 0; + + OUT.worldPosition.xyz += float3( 0, 0, 0 ) ; + OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + + OUT.texcoord = IN.texcoord; + + OUT.color = IN.color * _Color; + return OUT; + } + + fixed4 frag(v2f IN ) : SV_Target + { + float2 uv_MainTex = IN.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw; + float4 temp_output_4_0 = ( IN.color * ( tex2D( _MainTex, uv_MainTex ) + _TextureSampleAdd ) ); + float3 ase_worldPos = IN.ase_texcoord2.xyz; + float3 WorldPosition2_g874 = ase_worldPos; + float temp_output_7_0_g876 = AHF_FogDistanceStart; + half FogDistanceMask12_g874 = pow( abs( saturate( ( ( distance( WorldPosition2_g874 , _WorldSpaceCameraPos ) - temp_output_7_0_g876 ) / ( AHF_FogDistanceEnd - temp_output_7_0_g876 ) ) ) ) , AHF_FogDistanceFalloff ); + float3 lerpResult258_g874 = lerp( (AHF_FogColorStart).rgb , (AHF_FogColorEnd).rgb , ( saturate( ( FogDistanceMask12_g874 - 0.5 ) ) * AHF_FogColorDuo )); + float3 normalizeResult318_g874 = normalize( ( WorldPosition2_g874 - _WorldSpaceCameraPos ) ); + float dotResult145_g874 = dot( normalizeResult318_g874 , AHF_DirectionalDir ); + half DirectionalMask30_g874 = pow( abs( ( (dotResult145_g874*0.5 + 0.5) * AHF_DirectionalIntensity ) ) , AHF_DirectionalFalloff ); + float3 lerpResult40_g874 = lerp( lerpResult258_g874 , (AHF_DirectionalColor).rgb , DirectionalMask30_g874); + float3 temp_output_2_0_g875 = lerpResult40_g874; + float3 gammaToLinear3_g875 = GammaToLinearSpace( temp_output_2_0_g875 ); + #ifdef UNITY_COLORSPACE_GAMMA + float3 staticSwitch1_g875 = temp_output_2_0_g875; + #else + float3 staticSwitch1_g875 = gammaToLinear3_g875; + #endif + float3 temp_output_256_0_g874 = staticSwitch1_g875; + float3 temp_output_92_86_g873 = temp_output_256_0_g874; + half3 AHF_FogAxisOption181_g874 = AHF_FogAxisOption; + float3 break159_g874 = ( WorldPosition2_g874 * AHF_FogAxisOption181_g874 ); + float temp_output_7_0_g877 = AHF_FogHeightEnd; + half FogHeightMask16_g874 = pow( abs( saturate( ( ( ( break159_g874.x + break159_g874.y + break159_g874.z ) - temp_output_7_0_g877 ) / ( AHF_FogHeightStart - temp_output_7_0_g877 ) ) ) ) , AHF_FogHeightFalloff ); + float lerpResult328_g874 = lerp( ( FogDistanceMask12_g874 * FogHeightMask16_g874 ) , saturate( ( FogDistanceMask12_g874 + FogHeightMask16_g874 ) ) , AHF_FogLayersMode); + float simplePerlin3D193_g874 = snoise( ( ( WorldPosition2_g874 * ( 1.0 / AHF_NoiseScale ) ) + ( -AHF_NoiseSpeed * _Time.y ) ) ); + float temp_output_7_0_g879 = AHF_NoiseDistanceEnd; + half NoiseDistanceMask7_g874 = saturate( ( ( distance( WorldPosition2_g874 , _WorldSpaceCameraPos ) - temp_output_7_0_g879 ) / ( 0.0 - temp_output_7_0_g879 ) ) ); + float lerpResult198_g874 = lerp( 1.0 , (simplePerlin3D193_g874*0.5 + 0.5) , ( NoiseDistanceMask7_g874 * AHF_NoiseIntensity * AHF_NoiseModeBlend )); + half NoiseSimplex3D24_g874 = lerpResult198_g874; + #if defined(AHF_NOISEMODE_OFF) + float staticSwitch42_g874 = lerpResult328_g874; + #elif defined(AHF_NOISEMODE_PROCEDURAL3D) + float staticSwitch42_g874 = ( lerpResult328_g874 * NoiseSimplex3D24_g874 ); + #else + float staticSwitch42_g874 = lerpResult328_g874; + #endif + float temp_output_43_0_g874 = ( staticSwitch42_g874 * AHF_FogIntensity ); + float temp_output_92_87_g873 = temp_output_43_0_g874; + float3 lerpResult82_g873 = lerp( (temp_output_4_0).rgb , temp_output_92_86_g873 , temp_output_92_87_g873); + float4 appendResult9 = (float4(lerpResult82_g873 , (temp_output_4_0).a)); + + half4 color = appendResult9; + + #ifdef UNITY_UI_CLIP_RECT + color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); + #endif + + #ifdef UNITY_UI_ALPHACLIP + clip (color.a - 0.001); + #endif + + return color; + } + ENDCG + } + } + + + +} +/*ASEBEGIN +Version=18103 +1927;1;1906;1020;359.1003;561.1945;1;True;False +Node;AmplifyShaderEditor.TemplateShaderPropertyNode;2;-512,0;Inherit;False;0;0;_MainTex;Shader;0;5;SAMPLER2D;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.SamplerNode;3;-320,0;Inherit;True;Property;_TextureSample0;Texture Sample 0;0;0;Create;True;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.TemplateShaderPropertyNode;11;-320,192;Inherit;False;0;0;_TextureSampleAdd;Pass;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.VertexColorNode;12;-512,-256;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 +Node;AmplifyShaderEditor.SimpleAddOpNode;10;64,64;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.SimpleMultiplyOpNode;4;256,-256;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0 +Node;AmplifyShaderEditor.SwizzleNode;6;448,-256;Inherit;False;FLOAT3;0;1;2;3;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0 +Node;AmplifyShaderEditor.FunctionNode;21;640,-256;Inherit;False;Apply Height Fog;-1;;873;950890317d4f36a48a68d150cdab0168;0;1;81;FLOAT3;0,0,0;False;3;FLOAT3;85;FLOAT3;86;FLOAT;87 +Node;AmplifyShaderEditor.SwizzleNode;7;448,-160;Inherit;False;FLOAT;3;1;2;3;1;0;COLOR;0,0,0,0;False;1;FLOAT;0 +Node;AmplifyShaderEditor.DynamicAppendNode;9;896,-256;Inherit;False;FLOAT4;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0 +Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;1;1088,-256;Float;False;True;-1;2;;0;4;UI/Default (Height Fog Support);5056123faa0c79b47ab6ad7e8bf059a4;True;Default;0;0;Default;2;True;2;5;False;-1;10;False;-1;0;1;False;-1;0;False;-1;False;False;True;2;False;-1;True;True;True;True;True;0;True;-9;True;True;0;True;-5;255;True;-8;255;True;-7;0;True;-4;0;True;-6;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;True;2;False;-1;True;0;True;-11;False;True;5;Queue=Transparent=Queue=0;IgnoreProjector=True;RenderType=Transparent=RenderType;PreviewType=Plane;CanUseSpriteAtlas=True;False;0;False;False;False;False;False;False;False;False;False;False;True;2;0;;0;0;Standard;0;0;1;True;False;;0 +WireConnection;3;0;2;0 +WireConnection;10;0;3;0 +WireConnection;10;1;11;0 +WireConnection;4;0;12;0 +WireConnection;4;1;10;0 +WireConnection;6;0;4;0 +WireConnection;21;81;6;0 +WireConnection;7;0;4;0 +WireConnection;9;0;21;85 +WireConnection;9;3;7;0 +WireConnection;1;0;9;0 +ASEEND*/ +//CHKSM=49D35CE9F5579F0E10E33D6935C93B9E757590B8 \ No newline at end of file diff --git a/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders/UI Default (Height Fog Support).shader.meta b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders/UI Default (Height Fog Support).shader.meta new file mode 100644 index 00000000..902f0505 --- /dev/null +++ b/Assets/BOXOPHOBIC/Atmospheric Height Fog/Core/Shaders/UI Default (Height Fog Support).shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d2c008f025f10e84e840af15703382d8 +timeCreated: 1570703163 +licenseType: Store +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0