By the way the check for the dot product against the snow amount should be greater than or equal to. If you just have greater than or less than, then it won’t work properly. With the greater than or equal to it will allow the entire rock to be covered in snow or not at all but we can also have snow gradually added on.
Check to see if you have this line written out exactly:
if(dot(WorldNormalVector(IN, o.Normal), _SnowDirection.xyz) >= _SnowAmount)
I assume you have everything within that if statement setup correctly as snow is visible, but just not gradual.