【发布时间】:2020-11-17 12:35:30
【问题描述】:
我正在尝试基于此示例here 将具有上下文2d 的画布作为texture 添加到webgl 画布。 webgl 画布上的纹理似乎是空白的,但是当我将纹理画布单独附加到 DOM 时,图像已加载。我可能在这里遗漏了什么?
const canvas = document.createElement("canvas");
const textureCanvas = document.createElement('canvas');
textureCanvas.width = 200
textureCanvas.height = 200
const ctx = textureCanvas.getContext('2d')
const img = new Image();
img.src = "https://i.imgur.com/uIEexIc.jpg";
img.crossOrigin = 'Anonymous'
img.onload = (i) => {
ctx.drawImage(img, 0,0, 200, 200)
}
const gl = canvas.getContext("webgl");
const canvasTexture = gl.createTexture();
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
gl.bindTexture(gl.TEXTURE_2D, canvasTexture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, textureCanvas);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);
gl.generateMipmap(gl.TEXTURE_2D);
gl.bindTexture(gl.TEXTURE_2D, null);
【问题讨论】:
标签: javascript canvas webgl webgl2