首先,我想弄清楚,我是一个绝对的初学者,当谈到帆布& three.js所在画布上绘制的图像,并返回作为纹理
我已经采取了现有项目并且正在尝试做一些小的修改,即将图像绘制到纹理上而不是仅写入文本。我希望纹理具有设置的背景颜色,并试图在其上绘制透明png图像。
我试图修改的方法返回一个纹理用于另一个函数,该函数目前正在做更多的东西,我可能无法在这里解释。
我试过几种方法,我似乎无法得到我想要的行为。
方法#1
在这种方法中,我得到的背景颜色,但我没有得到的图像显示
var ts = calc_texture_size(size + size * 2 * margin) * 2;
canvas.width = canvas.height = ts;
context.fillStyle = back_color;
context.fillRect(0, 0, canvas.width, canvas.height);
var img = new Image();
function drawIcon() {
context.drawImage(img,0,0);
}
img.onload = drawIcon();
img.src = "img/test.png";
var texture = new THREE.Texture(canvas);
texture.needsUpdate = true;
return texture;
方法2
做一些后研究,似乎我应该使用TextureLoader,但我无法弄清楚如何在画布上绘制颜色/形状。在这种情况下,图像独立显示,没有任何背景颜色。
var imgTex = new new THREE.TextureLoader().load("img/test.png",function(t){
texture.map = imgTex;
});
texture.needsUpdate = true;
return texture;
我怎样才能成功地绘制在彩色背景上的图像,并返回它作为其他功能使用纹理?
[HERE](https://jsfiddle.net/2pha/e6rbt3r4/)是在画布上合并2个图像并将其应用为纹理的示例 – 2pha