Babylonjs文档
使用 html2canvas 将 html 转换成 canvas,将 canvas更新到 DynamicTexture 中;
//伪代码
let div = document.createElement("div");
div.id = "124578"
div.style.width = "100px";
div.style.height = "100px"
div.style.background = "green"
div.innerText = "啊阿达";
div.style.color = "red";
div.style.position = "fixed"
div.style.top = "100px"
document.body.appendChild(div)
html2canvas(div, { width: 100, height: 100}).then(canvas => {
const disc = MeshBuilder.CreatePlane("plane", { width: 100,height:100, sideOrientation: Mesh.DOUBLESIDE }, this.scene);
const myDynamicTexture = new DynamicTexture("dynamic", { width: 100, height: 100 }, scene);
const ctx = myDynamicTexture.getContext();
let getCtx = canvas.getContext('2d');
ctx.putImageData(getCtx.getImageData(0, 0, 100, 100), 0, 0);
myDynamicTexture.update();
disc.billboardMode = 7;
const mat2 = new StandardMaterial("mater", scene);
mat2.diffuseTexture = myDynamicTexture;
mat2.emissiveTexture = myDynamicTexture;
disc.material = mat2;
disc.position = new Vector3(0, 0, 0);
}).catch(err => {
console.log(err)
})
效果