通过texSubImage2D更新WebGLTexture会丢失数据?

时间:2017-03-06 18:52:52

标签: canvas webgl

只要使用带有HtmlCanvasElement的texSubImage2D更新WebGLTexture,所有细线都会消失。即使启用了图像平滑,将相关画布渲染到另一个画布也能正常工作。

创建画布:

ctx.clearRect(0, 0, ww, hh);
ctx.lineWidth = 0.25;
ctx.strokeStyle = "rgba(51,51,51,0.75)";
ctx.beginPath();
  for (let xx = 0; xx < ww; xx += 8) {
  ctx.moveTo(xx, 0);
  ctx.lineTo(xx, hh);
};
for (let yy = 0; yy < hh; yy += 8) {
  ctx.moveTo(0, yy);
  ctx.lineTo(ww, yy);
};
ctx.stroke();
ctx.closePath();

现在将其传递给WebGLTexture:

gl.bindTexture(gl.TEXTURE_2D, my_texture);
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, my_canvas);

请注意,我使用的是0.25px的线宽和使用alpha 0.75的strokeStyle rgba颜色在画布上绘制一个非常细的网格;

0 个答案:

没有答案