为什么OpenGL ES显示的png图片没有透明度呢?

我的图片是有alpha的png图片,在ndk里用了以下的语句:glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imageWidth, imageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, bitmapData);bitmapData是一个byte[]的位图数据,每四个为一个像素的RGBA,为什么我显示出来的图片没有透明效果呢?
最新回答
夏迟归

2024-05-02 02:10:55

那是如何画出来的呢?void engine_draw_bitmap(){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); float points[]= { -2.0f,-2.0f,0, 2.0f,-2.0f,0, 2.0f,2.0f,0, -2.0f,2.0f,0 }; glMatrixMode(GL_PROJECTION); glLoadIdentity();// glFrontFace(GL_CW);// 允许2D贴图// glEnable(GL_TEXTURE_2D); glEnableClientState(GL_VERTEX_ARRAY); glColor4f(0.0f,0.0f,1.0f,1.0f); glVertexPointer(3, GL_FLOAT, 0, points);// glDrawElements(GL_TRIANGLE_STRIP, 6, GL_UNSIGNED_SHORT, index); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); LOGW("已经画了图形!");// glDisableClientState(GL_VERTEX_ARRAY);// LOGW("关闭顶点设置功能!"); glFlush(); glLoadIdentity(); eglSwapBuffers(engine->display, engine->surface);}我这样写的,为什么没有显示呢,只有背景是白色的。
青春喂了作业

2024-05-02 08:41:41

你改动过图片的大小吧 我以前改过图片大小,最后就不是透明的了,楼主的原因不知道是不是 和我一样的原因