Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- inline half calculateBRDF(in SurfaceData data, in half NdotH, in half LdotH)
- {
- half d = NdotH * NdotH * data.roughness2MinusOne + 1.00001h;
- half LdotH2 = LdotH * LdotH;
- half specularTerm = data.roughness2 / ((d * d) * max(0.1h, LdotH2) * data.normalizationTerm);
- return specularTerm;
- }
- inline half3 applyBRDF(in SurfaceData data, in half3 lightPos, in half3 lightColor)
- {
- half3 L = normalize(lightPos);
- half3 H = normalize(data.view + L);
- half NdotH = saturate(dot(data.normal, H));
- half LdotH = saturate(dot(L, H));
- half3 radiance = lightColor * diffuse(L, data.normal);
- half brdf = calculateBRDF(data, NdotH, LdotH);
- return (brdf * data.specular + data.diffuse) * radiance;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement