float fresnelReflectance(SurfaceOutput s, half3 lightDir,half3 viewDir) { half H = dot (s.Normal, lightDir); float base = 1.0 - dot( viewDir, H ); float exponential = pow( base, 5.0 ); return exponential + 0.028 * ( 1.0 - exponential ); } Try passing just the normal in rather than the whole struct? I started to try to work…