|
Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 System : Windows NT SERVER-PC 10.0 build 26200 (Windows 11) AMD64 User : ServerPC ( 0) PHP Version : 8.2.12 Disable Function : NONE Directory : C:/Program Files (x86)/Steam/steamapps/common/wallpaper_engine/assets/shaders/ |
Upload File : |
#if FOG_DIST
uniform vec3 g_FogDistanceColor;
uniform vec4 g_FogDistanceParams;
#endif
#if FOG_HEIGHT
uniform vec3 g_FogHeightColor;
uniform vec4 g_FogHeightParams;
#endif
vec2 CalculateFogPixelState(float viewDirLength, float worldPosHeight)
{
vec2 result = CAST2(0);
#if FOG_DIST
result.x = (viewDirLength - g_FogDistanceParams.x) / g_FogDistanceParams.y;
#endif
#if FOG_HEIGHT
result.y = (worldPosHeight - g_FogHeightParams.x) / g_FogHeightParams.y;
#endif
return result;
}
vec3 ApplyFog(in vec3 color, in vec2 fogPixelState)
{
#if FOG_HEIGHT
float fogHeight = saturate(fogPixelState.y);
color.rgb = mix(color.rgb, g_FogHeightColor,
g_FogHeightParams.z + g_FogHeightParams.w * fogHeight * fogHeight);
#endif
#if FOG_DIST
float fogDistance = saturate(fogPixelState.x);
color.rgb = mix(color.rgb, g_FogDistanceColor,
g_FogDistanceParams.z + g_FogDistanceParams.w * fogDistance * fogDistance);
#endif
return color;
}
float ApplyFogAlpha(in float alpha, in vec2 fogPixelState)
{
#if FOG_DIST
float fogDistance = saturate(fogPixelState.x);
fogDistance = g_FogDistanceParams.z + g_FogDistanceParams.w * fogDistance * fogDistance;
#else
float fogDistance = 0.0;
#endif
#if FOG_HEIGHT
float fogHeight = saturate(fogPixelState.y);
fogHeight = g_FogHeightParams.z + g_FogHeightParams.w * fogHeight * fogHeight;
#else
float fogHeight = 0.0;
#endif
float fogFactor = saturate(max(fogDistance, fogHeight));
return alpha * (1.0 - (fogFactor * fogFactor));
}