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

如何在WebGL中为输出纹理或帧缓冲区提供偏移?,webgl,Webgl,如果我想在输入纹理中使用某个区域而不是整个区域,我可以使用gl.texSubImage2D()并提供x和y偏移量 输出纹理中的等价物是什么?在我的片段着色器中,我无法控制要写入的texel。 调用gl.viewPort()?我需要为此更改画布尺寸吗?正如@J.van Langen指出的那样,gl.scissor可以工作。您需要使用gl.enable(gl.scissor\u test)启用剪刀测试,然后使用gl.scissor(x,y,宽度,高度)设置要剪裁的矩形。 例如: const gl=

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

输出纹理中的等价物是什么?在我的片段着色器中,我无法控制要写入的texel。
调用
gl.viewPort()?我需要为此更改画布尺寸吗?

正如@J.van Langen指出的那样,
gl.scissor
可以工作。您需要使用
gl.enable(gl.scissor\u test)
启用剪刀测试,然后使用
gl.scissor(x,y,宽度,高度)设置要剪裁的矩形。

例如:

const gl=document.querySelector(“canvas”).getContext(“webgl”);
总帐启用(总帐剪刀测试);
gl.剪刀(50、25、150、75);
gl.clearColor(1,0,0,1);
总账清除(总账颜色缓冲位);//请注意,未清除整个画布
canvas{边框:1px纯黑;}

正如@J.van Langen指出的那样,
gl.剪刀将起作用。您需要使用
gl.enable(gl.scissor\u test)
启用剪刀测试,然后使用
gl.scissor(x,y,宽度,高度)设置要剪裁的矩形。

例如:

const gl=document.querySelector(“canvas”).getContext(“webgl”);
总帐启用(总帐剪刀测试);
gl.剪刀(50、25、150、75);
gl.clearColor(1,0,0,1);
总账清除(总账颜色缓冲位);//请注意,未清除整个画布
canvas{边框:1px纯黑;}

问题在于,如果使用视口,它会缩放到该矩形。你要找的可能是多谢了,伙计。我对剪刀一点也不了解。我在webvr上工作时,不小心用了这个问题是,如果使用视口,它将全部缩放到该矩形。你要找的可能是多谢了,伙计。我对剪刀一点也不了解。我在webvr上工作时,不小心用了这个令人惊叹的。非常感谢gman的回答和示例代码。非常感谢gman的回答和示例代码