代码之家  ›  专栏  ›  技术社区  ›  Jeff Saremi

如何在WebGL中为输出纹理或帧缓冲区提供偏移量?

  •  0
  • Jeff Saremi  · 技术社区  · 6 年前

    如果我想在输入纹理中使用某个区域而不是整个区域,我可以使用 gl.texSubImage2D() 并提供 x y 偏移量。

    输出纹理中的等效值是多少?考虑到在片段着色中,我无法控制要写入的texel。 会打电话给 gl.viewPort() 耍把戏吗?我需要更改画布的尺寸吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   gman    6 年前

    gl.scissor gl.enable(gl.SCISSOR_TEST) gl.scissor(x, y, width, height)

    const gl = document.querySelector("canvas").getContext("webgl");
    gl.enable(gl.SCISSOR_TEST);
    gl.scissor(50, 25, 150, 75);
    gl.clearColor(1, 0, 0, 1);
    gl.clear(gl.COLOR_BUFFER_BIT);  // notice the entire canvas is not cleared
    canvas { border: 1px solid black; }
    <canvas></canvas>

    gl.viewport gl.clear gl_Position

    gl_PointSize = 10.0