OpenGL ES2.0 глюки на текстуре кадрового буфера - PullRequest
1 голос
/ 22 марта 2012

У меня проблема с рендерингом текстур в моей игре для 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) {
// ...

Bad rendering

1 Ответ

0 голосов
/ 04 апреля 2012

Если я не ошибаюсь, Samsung Galaxy Y S5360 имеет только OpenGL ES-CM 1.1 См. http://geekprison.com/2163-samsung-galaxy-y-s5360-pricespecification-announced-for-india/

...