ToriaAssets/Sources/Shaders/BasicCoverage.cginc

26 lines
804 B
HLSL
Raw Normal View History

2026-05-19 12:20:15 +02:00
uniform sampler2D _MainTex;
uniform float4 _GS_SnowData1; // x = relief, y = occlusion, z = glitter, w = brightness
uniform float4 _GS_SnowData2; // x = minimum altitude, y = altitude scattering, z = coverage extension
struct Input {
float2 uv_MainTex;
float3 worldPos;
float3 worldNormal;
};
// get snow coverage on simple forms
void SetBasicCoverage(Input IN, inout SurfaceOutput o) {
// prevent snow on sides and below minimum altitude
float3 wsNormal = IN.worldNormal;
float ny = wsNormal.y - 0.2;
float flatSurface = saturate(ny * 10.0);
float minAltitude = saturate( IN.worldPos.y - _GS_SnowData2.x);
float snowCover = minAltitude * flatSurface;
// pass color data to output shader
o.Albedo = 1.0; // _GS_SnowData1.www;
o.Alpha *= snowCover;
}