@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
38 lines (35 loc) • 1.24 kB
JavaScript
import { Y as PBR_HAS_EMISSIVE_COLOR, y as PBR_HAS_EMISSIVE } from './index-By0tcgYN.esm.js';
function createEmissiveColorFragment(hasEmissiveTexture) {
return {
_id: "emissive-color",
_uboFields: [
{ _name: "emissiveColor", _type: "vec3<f32>" },
{ _name: "_emissiveColorPad", _type: "f32" }
],
_fragmentSlots: {
AT: hasEmissiveTexture ? `emissive=material.emissiveColor*textureSample(emissiveTexture,emissiveSampler,input.uv).rgb;` : `emissive=material.emissiveColor;`
}
};
}
function writeEmissiveUBO(data, material, offsets) {
if (!material.emissiveColor || !offsets.has("emissiveColor")) {
return;
}
const off = offsets.get("emissiveColor") / 4;
data[off] = material.emissiveColor[0];
data[off + 1] = material.emissiveColor[1];
data[off + 2] = material.emissiveColor[2];
}
const pbrExt = {
id: "emissive-color",
phase: "fragment",
frag(ctx) {
if (!(ctx._features & PBR_HAS_EMISSIVE_COLOR)) {
return null;
}
return createEmissiveColorFragment((ctx._features & PBR_HAS_EMISSIVE) !== 0);
},
writeUbo: writeEmissiveUBO
};
export { createEmissiveColorFragment, pbrExt, writeEmissiveUBO };
//# sourceMappingURL=emissive-fragment-BsFgxeC9.esm.js.map