在上篇文章中,我们分析了 URP下的SimpleLit的 Lambert漫反射计算。
我们在这篇文章中,进行 URP下的SimpleLit的 BlinnPhone 高光反射计算的分析。
Specular = SpecularColor * Ks * pow(max(0,dot(N,H)),Shininess)
以上这些,我们在之前的步骤中,已经分析过了
我们主要看 specular 和 smoothness
half smoothness = exp2(10 * surfaceData.smoothness + 1);
float3 halfVec = SafeNormalize(float3(lightDir) + float3(viewDir));
half NdotH = half(saturate(dot(normal, halfVec)));
half modifier = pow(NdotH, smoothness);
half3 specularReflection = specular.rgb * modifier;
return lightColor * specularReflection;