@openhps/core
Version:
Open Hybrid Positioning System - Core component
44 lines (40 loc) • 1.28 kB
JavaScript
;
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;