相关疑难解决方法(0)

WebGL上的Multitexture GL_TEXTURE1问题

我正在学习在WebGL上使用multitexture.我有以下着色器代码片段:

uniform int flag;

uniform sampler2D texture0;
uniform sampler2D texture1;

varying vec2 v_texCoord;

void main()
{
    vec2 texCoord = vec2(v_texCoord.s, 1.0 - v_texCoord.t);

    vec4 texel0 = texture2D(texture0, texCoord);
    vec4 texel1 = texture2D(texture1, texCoord);

    if (1 == flag) 
    {
        gl_FragColor = texel1;

    } else
    {
        gl_FragColor = texel0;
    }
}
Run Code Online (Sandbox Code Playgroud)

另外,我的JavaScript代码片段:

gl.uniform1i(gl.getUniformLocation(gl.program, "flag"), 1);
gl.uniform1i(gl.getUniformLocation(gl.program, "texture0"), 0);     // Texture Unit 0
gl.uniform1i(gl.getUniformLocation(gl.program, "texture1"), 1);     // Texture Unit 1
// Activate 2 textures
gl.enable(gl.TEXTURE_2D);

gl.activeTexture(gl.GL_TEXTURE0);    
gl.bindTexture(gl.TEXTURE_2D, photoTexture0);

gl.activeTexture(gl.GL_TEXTURE1);    
gl.bindTexture(gl.TEXTURE_2D, photoTexture1);
Run Code Online (Sandbox Code Playgroud)

photoTexture1(texture1)仅在屏幕上显示黑色.我可以正确显示photoTexture0(texture0).似乎在着色器中看不到photoTexture1(texture1).

由于上面的代码不起作用,我是新手,我想知道我做错了什么和/或我误解了多纹理的工作原理. …

webgl

4
推荐指数
1
解决办法
3828
查看次数

标签 统计

webgl ×1