@openhps/core
Version:
Open Hybrid Positioning System - Core component
21 lines (19 loc) • 678 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _TSLBase = require("../../tsl/TSLBase.js");
const F_Schlick = /*@__PURE__*/(0, _TSLBase.Fn)(({
f0,
f90,
dotVH
}) => {
// Original approximation by Christophe Schlick '94
// float fresnel = pow( 1.0 - dotVH, 5.0 );
// Optimized variant (presented by Epic at SIGGRAPH '13)
// https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf
const fresnel = dotVH.mul(-5.55473).sub(6.98316).mul(dotVH).exp2();
return f0.mul(fresnel.oneMinus()).add(f90.mul(fresnel));
}); // validated
var _default = exports.default = F_Schlick;