即使设置了GL_CLAMP_TO_EDGE,纹理也会重复

时间:2010-05-30 02:28:01

标签: android opengl-es

我正试图在面板上放置一个半透明的纹理,使用下面的屏幕截图中的点1到4(不介意数字)

alt text http://img46.imageshack.us/img46/442/texturebug.png

可悲的是,你可以看到纹理在两个维度上重复自己,我试图将TEXTURE_WRAP_S从REPEAT切换到CLAMP_to_EDGE,但它不会改变任何东西。纹理加载代码在这里:

gl.glBindTexture(gl.GL_TEXTURE_2D, mTexture.get(4));
        gl.glActiveTexture(4);      
        gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MIN_FILTER,
                gl.GL_LINEAR);
        gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MAG_FILTER,
                gl.GL_LINEAR);
        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
        gl.glTexImage2D(gl.GL_TEXTURE_2D, 0, gl.GL_RGBA,
                shadowbmp.width, shadowbmp.height, 0,
                gl.GL_RGBA, gl.GL_UNSIGNED_SHORT_4_4_4_4,
                shadowbmp.buffer);

纹理坐标如下:

float shadow_bot_text[] = {                 
                    0.0f, 0.0f,
                    0.0f, 1.0f,
                    1.0f, 0.0f,
                    1.0f, 1.0f
                    };

由于

1 个答案:

答案 0 :(得分:0)

问题出在纹理加载器(png to buffer)本身而不是纹理选项中 遗憾