我不掌握的OpenGL的所有微妙很抱歉,如果我的问题是不够的停用mipmaping时出现空白纹理?
在iPhone精确我加载纹理(PNG图片)这样的
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, iTextureSize.width, iTextureSize.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_FILTER, GL_NEAREST);
效果很好,但我注意到,这个分配恰好是textureData大小的两倍。 我读过论坛,这可能是由于mipmaping造成的,所以我试图通过 评论glTexParameteri行来关闭它,但是我的纹理是空白的。
这是一个问题是我的显示代码中的纹理加载参数? 我的显示代码是这样的
glTexCoordPointer(2, GL_FLOAT, 0, texture);
glVertexPointer(DIMENSION, GL_SHORT, 0, iVertex);
glBindTexture(GL_TEXTURE_2D, (GLuint)textureID);
glDrawArrays(GL_TRIANGLE_FAN, 0, iVertexCount);
你是什么意思'分配恰好两倍的textureData大小?上传纹理后,您还可以释放内存textureData点。 glTexImage创建一个完整的副本。 – datenwolf
我已经释放textureData但是glTexImage2D分配了两次纹理数据的大小 – CodeFlakes