OpenGL ES2.0在帧缓冲纹理上出现故障

时间:2012-03-22 07:39:21

标签: android opengl-es opengl-es-2.0

我的基于Android的游戏(OpenGl ES2.0)中的纹理渲染存在问题。我不知道这个问题,因为在大多数设备上这个问题都不存在,而且一切都很好 关于下面附带的屏幕截图,左侧的红色条在主框架缓冲区上绘制,因此它正确显示。其他所有内容都在屏幕外纹理上呈现,然后在主帧缓冲区上呈现。 我附上三星Galaxy Y S5360上的屏幕截图(我不知道其他设备上是否会出现此问题)以及负责屏幕外帧缓冲/纹理创建的代码:

GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texture[i]);
GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null);      
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, framebuffer[i]);
GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, texture[i], 0);

if(GLES20.glCheckFramebufferStatus(GLES20.GL_FRAMEBUFFER) != GLES20.GL_FRAMEBUFFER_COMPLETE) {
// ...

Bad rendering

1 个答案:

答案 0 :(得分:0)

如果我没弄错的话,三星Galaxy Y S5360只有OpenGL ES-CM 1.1请参阅http://geekprison.com/2163-samsung-galaxy-y-s5360-pricespecification-announced-for-india/