繁体   English   中英

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

[英]OpenGL ES2.0 glitches on framebuffer texture

我在基于Android的游戏(OpenGl ES2.0)中渲染纹理时遇到问题。 我没有意识到这个问题,因为在大多数设备上这个问题都不存在,一切都很好。
关于下面的屏幕截图,在主帧缓冲区上绘制了左侧的红色条,因此该条正确显示。 其他所有内容均在屏幕外纹理上渲染,然后在主帧缓冲区上渲染。 我将附加在Samsung 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) {
// ...

渲染效果不好

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM