UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

30 lines (28 loc) 813 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _TSLBase = require("../../tsl/TSLBase.js"); // Microfacet Models for Refraction through Rough Surfaces - equation (33) // http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html // alpha is "roughness squared" in Disney’s reparameterization const D_GGX = /*@__PURE__*/(0, _TSLBase.Fn)(({ alpha, dotNH }) => { const a2 = alpha.pow2(); const denom = dotNH.pow2().mul(a2.oneMinus()).oneMinus(); // avoid alpha = 0 with dotNH = 1 return a2.div(denom.pow2()).mul(1 / Math.PI); }).setLayout({ name: 'D_GGX', type: 'float', inputs: [{ name: 'alpha', type: 'float' }, { name: 'dotNH', type: 'float' }] }); // validated var _default = exports.default = D_GGX;