playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
28 lines (26 loc) • 753 B
JavaScript
var fresnelSchlickPS = `
vec3 getFresnel(
float cosTheta,
float gloss,
vec3 specularity
, vec3 iridescenceFresnel,
float iridescenceIntensity
) {
float fresnel = pow(1.0 - saturate(cosTheta), 5.0);
float glossSq = gloss * gloss;
float specIntensity = max(specularity.r, max(specularity.g, specularity.b));
vec3 ret = specularity + (max(vec3(glossSq * specIntensity), specularity) - specularity) * fresnel;
return mix(ret, iridescenceFresnel, iridescenceIntensity);
return ret;
}
float getFresnelCC(float cosTheta) {
float fresnel = pow(1.0 - saturate(cosTheta), 5.0);
return 0.04 + (1.0 - 0.04) * fresnel;
}
`;
export { fresnelSchlickPS as default };