首先,我想弄清楚,我是一個絕對的初學者,當談到帆布& 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