由于您正在为文本创建纹理,因此唯一的方法就是增加纹理分辨率。当前发生的情况是您正在获取一个小纹理并对其进行拉伸,这使得它变得模糊,例如,当您将图像缩略图拉伸到全尺寸时也会发生同样的事情。
忽略未加载的纹理,黑色区域,它们对于示例并不重要
现场演示
我为增加纹理的清晰度所做的是创建一个 600 x 120 的画布(这是演示使用的大小的两倍),在其上绘制文本并将其设置fontsize
为 120 像素,然后我将网格设为 300 x 60,这是纹理大小的一半。
// Specified the width I wanted
canvas1.width=600;
// Specified the height I wanted
canvas1.height=120;
// Made the font larger
context1.font = "Bold 100px Arial";
context1.fillStyle = "rgba(255,0,0,0.95)";
// changed the position of the text on the created canvas
context1.fillText('Hello, world!', 0, 100);
创建网格时,我只是指定了我想要的网格大小,即纹理大小的 50%,以匹配演示网格大小。
var mesh1 = new THREE.Mesh(
new THREE.PlaneGeometry(300, 60),
material1
);