WebGL检查哪个纹理单元绑定到统一纹理
是否可以使用javascript检查哪个纹理单元绑定到制服?例如,psudeo代码!:WebGL检查哪个纹理单元绑定到统一纹理,webgl,Webgl,是否可以使用javascript检查哪个纹理单元绑定到制服?例如,psudeo代码!: let samplerRef = gl.getUniformLocation(program, 'textureSampler'); gl.uniform1i(samplerRef, 0); console.log(samplerRef.textureUnit); // texture unit 0 我正在调试一些代码,这将帮助我确保我的纹理单元连接到正确的采样器。然而,我在网上找不到任何可以让我这样做
let samplerRef = gl.getUniformLocation(program, 'textureSampler');
gl.uniform1i(samplerRef, 0);
console.log(samplerRef.textureUnit); // texture unit 0
我正在调试一些代码,这将帮助我确保我的纹理单元连接到正确的采样器。然而,我在网上找不到任何可以让我这样做的代码 您可以通过调用`
const currentValue = gl.getUniform(program, uniformLocation);
还可以通过调用获取绑定到当前活动纹理单元的纹理对象
const texture2D = gl.getParameter(gl.TEXTURE_BINDING_2D);
const textureCubeMap = gl.getParameter(gl.TEXTURE_BINDING_CUBE_MAP);
因此,如果您想获得纹理对象,如果调用gl.drawXXX,uinform将使用以下操作
const unit = gl.getUniform(program, samplerUniformLocation);
gl.activeTexture(gl.TEXTURE0 + unit);
const texture2D = gl.getParameter(gl.TEXTURE_BINDING_2D);
例子
const gl=document.createElement'canvas.getContext'webgl';
常数vs=`
统一int-abc;
统一的vec3-def;
真空总管{
gl_位置=向量4def,abc;
}
`;
常数fs=`
高精度浮点;
均匀采样2d-tex;
真空总管{
gl_FragColor=纹理2dtex,vec20;
}
`;
const program=twgl.createProgramgl[vs,fs];
gl.useprogrammProgram;
gl.uniform1igl.GetUNIFORMLLocationProgram,“abc”,123;
gl.uniform3fvgl.getuniformlLocationProgram,'def',[4,5,6];
gl.uniform1igl.getUniformLocationprogram'tex',7;
gl.activeTexturegl.TEXTURE0+7;
常量tex=gl.createTexture;
gl.bindTexturegl.TEXTURE_2D,tex;
对数'--纹理单位---';
//获取所有当前绑定的纹理
const numTextureUnits=gl.getParametergl.MAX\u组合纹理图像单元;
对于let单位=0;单位