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.

34 lines (32 loc) 1.37 kB
const ext = { id: "KHR_materials_diffuse_transmission", async applyMaterial(mat, ctx) { const e = mat._rawMatDef?.extensions?.KHR_materials_diffuse_transmission; if (!e) { return null; } const intensity = typeof e.diffuseTransmissionFactor === "number" ? e.diffuseTransmissionFactor : 0; const [colorTex, intensityTex] = await Promise.all([ctx._texture(e.diffuseTransmissionColorTexture, true), ctx._texture(e.diffuseTransmissionTexture, false)]); if (intensity <= 0 && !colorTex && !intensityTex) { return null; } const cf = Array.isArray(e.diffuseTransmissionColorFactor) && e.diffuseTransmissionColorFactor.length === 3 ? e.diffuseTransmissionColorFactor : [1, 1, 1]; const out = { subsurface: { translucency: { intensity, color: [cf[0], cf[1], cf[2]], ...colorTex ? { colorTexture: colorTex } : void 0, ...intensityTex ? { intensityTexture: intensityTex } : void 0 }, // Thin-surface diffuse transmission has no volume: BJS sets // min = max = 0 so the Burley transmittance collapses to exactly // the tint color (thickness clamps to epsilon, temp → 1). thickness: { min: 0, max: 0 } } }; return out; } }; export { ext as default }; //# sourceMappingURL=gltf-ext-diffuse-transmission-B6LFJcNz.esm.js.map