UNPKG

@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
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