@luma.gl/shadertools
Version:
Shader module system for luma.gl
73 lines (61 loc) • 1.97 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.phongLighting = exports.gouraudLighting = void 0;
var _lights = require("../lights/lights");
var _phongLighting = _interopRequireDefault(require("./phong-lighting.glsl"));
var INITIAL_MODULE_OPTIONS = {};
function getMaterialUniforms(material) {
var _material$ambient = material.ambient,
ambient = _material$ambient === void 0 ? 0.35 : _material$ambient,
_material$diffuse = material.diffuse,
diffuse = _material$diffuse === void 0 ? 0.6 : _material$diffuse,
_material$shininess = material.shininess,
shininess = _material$shininess === void 0 ? 32 : _material$shininess,
_material$specularCol = material.specularColor,
specularColor = _material$specularCol === void 0 ? [30, 30, 30] : _material$specularCol;
return {
lighting_uAmbient: ambient,
lighting_uDiffuse: diffuse,
lighting_uShininess: shininess,
lighting_uSpecularColor: specularColor.map(function (x) {
return x / 255;
})
};
}
function getUniforms() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : INITIAL_MODULE_OPTIONS;
if (!('material' in opts)) {
return {};
}
var material = opts.material;
if (!material) {
return {
lighting_uEnabled: false
};
}
return getMaterialUniforms(material);
}
var gouraudLighting = {
name: 'gouraud-lighting',
dependencies: [_lights.lights],
vs: _phongLighting.default,
defines: {
LIGHTING_VERTEX: 1
},
getUniforms: getUniforms
};
exports.gouraudLighting = gouraudLighting;
var phongLighting = {
name: 'phong-lighting',
dependencies: [_lights.lights],
fs: _phongLighting.default,
defines: {
LIGHTING_FRAGMENT: 1
},
getUniforms: getUniforms
};
exports.phongLighting = phongLighting;
//# sourceMappingURL=phong-lighting.js.map
;