|
|
- Shader "Hidden/FogVolume"
- {
- Properties
- {
- [hideininspector]_SrcBlend("__src", Float) = 1.0
- [hideininspector]_NoiseVolume("_NoiseVolume", 3D)= "white" {}
- [hideininspector]_NoiseVolume2("_NoiseVolume2", 3D) = "white" {}
- [hideininspector]_Gradient("_Gradient", 2D) = "white" {}
- [hideininspector]CoverageTex("CoverageTex", 2D) = "grey" {}
- //[hideininspector]_ShadowTexture("_ShadowTexture", 2D) = "white" {}
- }
- CGINCLUDE
- //#define COVERAGE
- //#define EARTH_CLOUD_STYLE
- //#define VOLUMETRIC_SHADOWS _VolumetricShadowsEnabled
- //#define CONVOLVE_VOLUMETRIC_SHADOWS
- //custom depth input
- //#define ExternalDepth
- #define AMBIENT_AFFECTS_FOG_COLOR _AmbientAffectsFogColor
- //#define DEBUG_PRIMITIVES
- #define VOLUMETRIC_SHADOWS _VolumetricShadowsEnabled
- #define FOG_TINTS_INSCATTER VolumeFogInscatterColorAffectedWithFogColor
- #include "UnityCG.cginc"
- #include "CommonInputs.cginc"
- #include "Integrations.cginc"
- #define PROBES _ProxyVolume
-
- half NoiseAtten = 1;
- int _SrcBlend;
- int _ztest;
-
- #include "FogVolumeCommon.cginc"
- #define DEBUG_ITERATIONS 1
- #define DEBUG_INSCATTERING 2
- #define DEBUG_VOLUMETRIC_SHADOWS 3
- #define DEBUG_VOLUME_FOG_INSCATTER_CLAMP 4
- #define DEBUG_VOLUME_FOG_PHASE 5
- #include "FogVolumeFragment.cginc"
-
-
- ENDCG
-
- //normal pass
- SubShader
- {
-
- Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "None" }
- LOD 600
- //Blend SrcAlpha OneMinusSrcAlpha
- //Blend One OneMinusSrcAlpha
- Blend[_SrcBlend] OneMinusSrcAlpha
-
- Fog{ Mode Off }
- Cull Front
- Lighting Off
- ZWrite Off
- ZTest [_ztest]
-
- Pass
- {
-
-
- CGPROGRAM
- //#pragma multi_compile _ ExternalDepth
- #pragma multi_compile _ _FOG_LOWRES_RENDERER
- #pragma shader_feature _INSCATTERING
- #pragma shader_feature VOLUME_FOG
- #pragma shader_feature _VOLUME_FOG_INSCATTERING
- #pragma shader_feature _FOG_GRADIENT
- #pragma shader_feature _FOG_VOLUME_NOISE
- // #pragma shader_feature _COLLISION
- //#pragma multi_compile _ DEBUG
- //#pragma shader_feature SAMPLING_METHOD_ViewAligned
- #pragma shader_feature HEIGHT_GRAD
- //#pragma shader_feature _TONEMAP
- #pragma shader_feature JITTER
- #pragma shader_feature ColorAdjust
- #pragma shader_feature ABSORPTION
- #pragma multi_compile _ Twirl_X Twirl_Y Twirl_Z
- #pragma shader_feature _SHADE
- #pragma shader_feature DF
- #pragma shader_feature DIRECTIONAL_LIGHTING
- #pragma multi_compile _ ATTEN_METHOD_1 ATTEN_METHOD_2 ATTEN_METHOD_3
- #pragma shader_feature SPHERICAL_FADE
- //#pragma shader_feature _LAMBERT_SHADING
- #pragma multi_compile _ VOLUME_SHADOWS
- #pragma shader_feature LIGHT_ATTACHED
- #pragma shader_feature HALO
- //Unity define for stereo is not working. Had to do it manually
- #pragma multi_compile _ FOG_VOLUME_STEREO_ON
- #pragma exclude_renderers d3d9
- //#pragma only_renderers d3d11
- #pragma vertex vert
- #pragma fragment frag
-
- #pragma target 3.0
-
- ENDCG
- }
-
- }
-
- //opacity pass . Only for shadow rt
- SubShader
- {
- Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "None" }
- LOD 100
- Blend SrcAlpha OneMinusSrcAlpha
-
- Fog{ Mode Off }
- Cull Front
- Lighting Off
- ZWrite Off
- ZTest Always
-
- Pass
- {
- Fog{ Mode Off }
-
- CGPROGRAM
- #define SHADOW_PASS
- #pragma shader_feature _FOG_GRADIENT
- #pragma shader_feature _FOG_VOLUME_NOISE
- // #pragma shader_feature _COLLISION
- #pragma shader_feature SAMPLING_METHOD_ViewAligned
- #pragma shader_feature HEIGHT_GRAD
- #pragma multi_compile Twirl_X Twirl_Y Twirl_Z
- #pragma shader_feature DF
- //#pragma multi_compile SHADOW_PASS
- #pragma shader_feature SPHERICAL_FADE
- #pragma exclude_renderers d3d9
- //#pragma only_renderers d3d11
- #pragma glsl
- #pragma vertex vert
- #pragma fragment frag
-
- #pragma target 3.0
- ENDCG
- }
-
- }
- }
|