void outlineFresnel (float4 outlineColor, float outlineThickness, float outlineSoftness, float3 eyeVec, float3 worldNormal, float4 baseMat, out float4 OutlineMaterial)
{
float edge1 = saturate(outlineThickness);
// outlineSoftness cannot be 0. 0 will return a 0 division error.
float edge2 = saturate(edge1 + outlineSoftness);
float fresnel = max(dot(eyeVec, worldNormal), 0.001);
float4 finalEdge = lerp(1.0, smoothstep(edge1, edge2, fresnel), step(0.0, edge1));
OutlineMaterial = lerp(baseMat, outlineColor, (1-finalEdge));
}