Javascript 在three.js中为文本精灵创建画布。它创建文本精灵,但画布具有默认高度和宽度

Javascript 在three.js中为文本精灵创建画布。它创建文本精灵,但画布具有默认高度和宽度,javascript,three.js,sprite,Javascript,Three.js,Sprite,上面是创建精灵的代码。需要对此进行任何更改,或者有任何其他方法来创建文本精灵。为什么要注释掉canvas.height=70?您可以使用.width和.height设置画布的大小。我尝试过这样做,但没有影响画布,因此我将其注释掉。在three.js中还有其他方法可以用来制作2d精灵吗? `var fontface = parameters.fontface || 'Helvetica'; var fontsize = parameters.fontsize || 60; var canvas =

上面是创建精灵的代码。需要对此进行任何更改,或者有任何其他方法来创建文本精灵。

为什么要注释掉
canvas.height=70?您可以使用
.width
.height
设置画布的大小。我尝试过这样做,但没有影响画布,因此我将其注释掉。在three.js中还有其他方法可以用来制作2d精灵吗?
`var fontface = parameters.fontface || 'Helvetica';
var fontsize = parameters.fontsize || 60;
var canvas = document.createElement('canvas');
// canvas.height = 70;
console.log(canvas.height, canvas.width)

var context = canvas.getContext('2d');
if (bold == true) {
  context.font = "Bold " + fontsize + "px " + fontface;
} else {
context.font = fontsize + "px " + fontface;
}
// get size data (height depends only on font size)
var metrics = context.measureText(message);
var textWidth = metrics.width;
// text color
context.fillStyle = 'rgba(0.5, 0, 1.0, 0.5)';
context.fillText(message, 0, fontsize);
// canvas contents will be used for a texture
console.log(context, metrics, textWidth);
var texture = new THREE.Texture(canvas)
texture.minFilter = THREE.LinearFilter;
texture.needsUpdate = true;
var spriteMaterial = new THREE.SpriteMaterial({ map: texture });
var sprite = new THREE.Sprite(spriteMaterial);
sprite.scale.set(0.002 * 100, 0.0025 * 150);
sprite.center.set(0, 1);
return sprite;`