如何在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的回答和示例代码