@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.
33 lines (31 loc) • 931 B
JavaScript
async function compositeOrm(mr, occ) {
const w = mr.width;
const h = mr.height;
const c1 = new OffscreenCanvas(w, h);
const x1 = c1.getContext("2d");
x1.drawImage(mr, 0, 0, w, h);
const d1 = x1.getImageData(0, 0, w, h);
const c2 = new OffscreenCanvas(w, h);
const x2 = c2.getContext("2d");
x2.drawImage(occ, 0, 0, w, h);
const d2 = x2.getImageData(0, 0, w, h);
for (let j = 0; j < d1.data.length; j += 4) {
d1.data[j] = d2.data[j];
}
x1.putImageData(d1, 0, 0);
return createImageBitmap(c1);
}
const ext = {
id: "_orm-composite",
async applyMaterial(mat, ctx) {
const mr = mat._metallicRoughnessImage;
const occ = mat._occlusionImage;
if (!mr || !occ || mr === occ) {
return null;
}
const bmp = await compositeOrm(mr, occ);
return { ormTexture: ctx._uploadImage(bmp, false) };
}
};
export { ext as default };
//# sourceMappingURL=gltf-ext-orm-CSBI7gEy.esm.js.map