I have this snowy rock material I'm working on:
It's working okay but at the moment it only takes the vertex normals into account. This is a fairly low poly rock model that relies on the normal map to bring through all the detail from the high poly model. This means that my snow isnt being affects by all the high frequency nooks and crannies. I'm hiding this with a mask that breaks up the transition between snow and no-snow but it's less than ideal.
I'm not really aware enough of how vector maths works to figure out how to get the normal map to affect this. I hav a suspicion that it will involve vector transforms and/or Dot Products but after that I'm lost.
Any insight would be appreciated.
Replies
World normal with normal map is;
float3 worlNormalWithNormalMap = (tangent * worldNormal.x) + (binormal * worldNormal.y) + (worldNormal * normal.z);
Old vs New:
Final Effect:
Same effect on a slate roof tile material:
Material Tree: