【发布时间】:2017-12-15 06:07:42
【问题描述】:
我正在渲染近 200 个文本,我正在使用 2D 画布渲染。它需要更多的内存,有没有办法重用画布元素。以下是我的工作代码。
var goalCanvas = document.createElement('canvas');
goalCanvas.width = Math.pow(2, Math.round(Math.log(parseInt(name.length) * parseInt(58)) / Math.log(2)));
goalCanvas.height = 128;
var planeGeometry = new THREE.PlaneGeometry(parseInt(name.length) * parseInt(3), 8);
var featureContext = goalCanvas.getContext('2d');
featureContext.fillStyle = "#ffffff";
featureContext.font = "54px roboto_condensedregular";
featureContext.textAlign = "center";
featureContext.fillText(name, goalCanvas.width / 2, 42);
var goalTexture = new THREE.Texture(goalCanvas)
goalTexture.needsUpdate = true;
var goalMaterial = new THREE.MeshBasicMaterial({
map: goalTexture
});
goalMaterial.transparent = true;
var goalNameMesh = new THREE.Mesh(
planeGeometry,
goalMaterial
);
【问题讨论】:
-
更新格式。
标签: javascript canvas memory three.js