//SSS color
half3 SSS(float3 normalDir, Light mainLight, float3 viewDir, half sdm, half4 SSScolor, float power, float scale)
{
half3 sssColor = 1;
float3 lightDir = -mainLight.direction;
float3 lightDirADD = sdm * normalDir + lightDir;
float LdotV = saturate(dot(lightDirADD, viewDir));
float sssPower = saturate(pow(LdotV, power) * scale);
sssColor = SSScolor.rgb * sssPower * mainLight.shadowAttenuation;
return sssColor;
}
//背光3阶渐变
float Stair(float3 posWS,float objY, float4 adjust, float farthest)
{
float y = objY;
//背光效果区分3个Y值区间
float up1 = smoothstep(0,1,pow(saturate(y) , adjust.z));
float up2 = smoothstep(0,1,pow(saturate(y) , adjust.w));
float up3 = smoothstep(0,1,pow(saturate(y) , farthest));;
float ler = 1;
float d1 = distance(_WorldSpaceCameraPos.xyz, posWS)/adjust.y;//far
float d2 = distance(_WorldSpaceCameraPos.xyz, posWS)/adjust.x;//near
float lod0 =smoothstep(0,1, d2);
float lod1 = smoothstep(0,1, d1);
ler = lerp(up2, up3, lod1);
ler = lerp(up1, ler, lod0);
return ler;
}