我正在为我的游戏使用OpenGL-ES 1.1。除了当我绘制99%透明的纹理时,alpha混合对我来说非常好。例如,如果我有一个512x512的图像,中间只有一条2px的黑线。这样的纹理在android上完全是白色的。
我的混合功能:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
任何帮助将不胜感激。
修改:这就是我设置纹理的方法
glEnable(GL_TEXTURE_2D);
glGenTextures(1, &textureCreated);
glBindTexture(GL_TEXTURE_2D, textureCreated);
maOpenGLTexImage2D(image);
// Set texture parameters.
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
答案 0 :(得分:0)
您不能将Android Bitmap类用于OpenGL ES纹理,除非它们完全不透明。这是因为Bitmap类以Port-Duff混合的预乘格式存储像素,这与OpenGL ES混合不兼容。本文提供了更多详细信息: