Hey Drew, cheers for the snippet, it looks good on my end (just had to change a few things around to compensate for Max :P ) Looking back on the documents and Source shader, it seems like there is some extra magic going on? Here is what I mean: Just to be clear, you code worked perfectly fine with the Fresnel Warping…
Oh, another thing if you're doing it half-lambert, it needs to be squared. here's how the code should be all-togetherfloat3 DiffuseTerm( float3 worldNormal, float3 lightDir){ float fResult; float NDotL = dot( worldNormal, lightDir ); // Unsaturated dot (-1 to 1 range) if ( bHalfLambert ) { fResult = saturate(NDotL * 0.5 +…