OpenGL ES 1.1 - Kindle Fire上的视觉人工制品(alpha问题)

时间:2014-02-27 14:01:18

标签: android opengl-es kindle-fire

我遇到了一个视觉神器,当我在Kndle Fire(android 2.3.4)上启动游戏时:我的粒子周围有灰色方块。
该代码适用于iOS和Nexus!
此外,ddms拍摄的截图看起来是正确的(这是从Kindle Fire截取屏幕截图的唯一方法)!

以下是错误和正确的sreenshots:

enter image description here

这是我的GL设置代码:

    glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glLineWidth(1.5);
glDisable(GL_LIGHTING);
glDisable(GL_DEPTH_TEST);

glDisable(GL_NORMALIZE);
glDisable(GL_CULL_FACE);
glShadeModel(GL_FLAT); 

float alpha_ref = 1 / 255.f;
glAlphaFunc(GL_GEQUAL, alpha_ref);

glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gFilter);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gFilter);

glDisable(GL_TEXTURE_2D); // will be enabled later when texture set!

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glFrontFace(GL_CW);
float fZero[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, fZero);
glColor4ub(255, 255, 255, 255);

我会感激任何建议!

1 个答案:

答案 0 :(得分:0)

终于找到了这里的提示: https://legacy.madewithmarmalade.com/ru/node/57184

因此,答案是在GLES设置中评论颜色深度要求:

 const EGLint attribs[] = {
        EGL_SURFACE_TYPE, EGL_WINDOW_BIT, 
        /*EGL_BLUE_SIZE, 8,*/  
        /*EGL_GREEN_SIZE, 8,*/  
        /*EGL_RED_SIZE, 8,*/
        EGL_NONE
 };