UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

44 lines (40 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _LightingNode = _interopRequireDefault(require("./LightingNode.js")); var _TSLBase = require("../tsl/TSLBase.js"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * A specific version of {@link IrradianceNode} that is only relevant * for {@link MeshBasicNodeMaterial}. Since the material is unlit, it * requires a special scaling factor for the light map. * * @augments LightingNode */ class BasicLightMapNode extends _LightingNode.default { static get type() { return 'BasicLightMapNode'; } /** * Constructs a new basic light map node. * * @param {?Node<vec3>} [lightMapNode=null] - The light map node. */ constructor(lightMapNode = null) { super(); /** * The light map node. * * @type {?Node<vec3>} */ this.lightMapNode = lightMapNode; } setup(builder) { // irradianceLightMap property is used in the indirectDiffuse() method of BasicLightingModel const RECIPROCAL_PI = (0, _TSLBase.float)(1 / Math.PI); builder.context.irradianceLightMap = this.lightMapNode.mul(RECIPROCAL_PI); } } var _default = exports.default = BasicLightMapNode;