0
我为我的游戏使用OpenGL-ES 1.1。除了当我绘制99%透明的纹理时,alpha混合对我来说工作得非常好。例如,如果我有一个512x512的图像,中间只有一条2px黑线。这些纹理在android上绘制为绝对白色。OpenGL-ES主要是透明纹理绘制白色
我的混合功能:
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);
那么有什么办法呢? – user2238284
使用本机代码无论如何您都不需要Bitmap类。使用Java,您可以使用GLES11封装器调用GLES11.glTexImage2D()并传入ByteBuffer以避免使用GLUtils,PNGDecoder和Bitmap。 – ClayMontgomery
感谢您的回复。我添加了如何设置gl纹理的代码。函数maOpenGLTexImage2D是一个等效于glTexImage2D()的mosync sdk函数。你能告诉我如何修改代码吗?对不起,我刚刚学习opengl – user2238284