TG9six 03a642d635 first push
first push
2025-09-06 17:17:39 +04:00

33 lines
1.1 KiB
HLSL

#ifndef VOLUMETRIC_FOG_2_FOG_DISTANCE
#define VOLUMETRIC_FOG_2_FOG_DISTANCE
float4 _DistanceData;
TEXTURE2D(_DepthGradientTex);
SAMPLER(_depthGradient_linear_clamp_sampler);
TEXTURE2D(_HeightGradientTex);
SAMPLER(_heightGradient_linear_clamp_sampler);
inline half ApplyFogDistance(float3 rayStart, float3 wpos) {
float2 vd = rayStart.xz - wpos.xz;
float voidDistance = dot(vd, vd) * _DistanceData.w;
half alpha = saturate(1.0 + (voidDistance - 1.0) * _DistanceData.y);
return alpha;
}
inline half4 ApplyDepthGradient(float3 rayStart, float3 wpos) {
float2 vd = rayStart.xz - wpos.xz;
float depthGradientCoord = dot(vd, vd) * _DistanceData.z;
half4 depthColor = SAMPLE_TEXTURE2D_LOD(_DepthGradientTex, _depthGradient_linear_clamp_sampler, float2(depthGradientCoord, 0), 0);
return depthColor;
}
inline half4 ApplyHeightGradient(float3 wpos) {
float heightGradientCoord = saturate( (wpos.y - BOUNDS_BOTTOM) / BOUNDS_SIZE_Y );
half4 heightColor = SAMPLE_TEXTURE2D_LOD(_HeightGradientTex, _heightGradient_linear_clamp_sampler, float2(heightGradientCoord, 0), 0);
return heightColor;
}
#endif