1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #include "CalmWater_Variables.cginc"
- #include "CalmWater_Helper.cginc"
- #include "CalmWater_Vertex.cginc"
- #include "CalmWater_Tessellation.cginc"
- #include "CalmWater_Normals.cginc"
- #include "CalmWater_Refraction.cginc"
- #include "CalmWater_Caustics.cginc"
- #include "CalmWater_Scattering.cginc"
- #include "CalmWater_Reflections.cginc"
- #include "CalmWater_Foam.cginc"
- #include "CalmWater_Specular.cginc"
- #ifndef CALMWATER_INCLUDED
- #define CALMWATER_INCLUDED
- //Uncomment to enable enviro support
- //#include "../../Enviro - Dynamic Enviroment/Resources/Shaders/Core/EnviroFogCore.cginc"
- #ifndef LIGHTCOLOR
- #define LIGHTCOLOR
- uniform fixed4 _LightColor0;
- #endif
- // ============================================
- // Frag
- // ============================================
- fixed4 frag( v2f i ) : SV_Target
- {
- UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
- GlobalData data;
- InitializeGlobalData(data, i);
- ComputeNormals(data, i);
- ComputeRefraction(data, i);
- ComputeCaustics(data);
- ComputeScattering(data, i);
- ComputeReflections(data, i);
- ComputeFoam(data, i);
- ComputeSpecular(data);
-
- #ifdef UNITY_PASS_FORWARDADD
- data.finalColor *= _LightColor0.rgb;
- #endif
- data.finalColor += data.specular;
- //Alpha
- fixed alpha = _EdgeFade * (data.cleanDepth - data.DepthUV.z) * _Color.a;
- fixed4 c;
- #ifndef UNITY_PASS_FORWARDADD
- //Uncomment to enable enviro support
- //half2 screenUV = (i.pos.xy / i.pos.w) * _ProjectionParams.x * 0.5 + 0.5;
- //diff = TransparentFog(float4(diff, 0), i.worldPos, screenUV, i.DepthUV.z).rgb;
- c.rgb = lerp(data.cleanBuffers.rgb, data.finalColor, saturate(alpha) );
- UNITY_APPLY_FOG(i.fogCoord, c);
- #else
- UNITY_LIGHT_ATTENUATION(atten, i, i.worldPos.xyz)
- c.rgb = data.finalColor * saturate(alpha) * atten;
- #endif
-
- c.a = 1;
- return c;
- }
- #endif
|