0
我試圖在使用ndk的opengl es 1的正方形上顯示紋理。 我使用這個「黑客」從apk中加載PNG:http://www.anddev.org/ndk_opengl_-_loading_resources_and_assets_from_native_code-t11978.htmlOpenGL ES紋理在4列和行中複製
這似乎工作正常。 當我想將紋理應用到我的四邊形時,紋理看起來是重複的。
經過一番研究,我認爲這個問題是從我的渲染代碼來:
//the order is correct even if it is not in the numeric order
GLfloat vertexBuffer[] = {
_vertices[0].x, _vertices[0].y,
_vertices[3].x, _vertices[3].y,
_vertices[1].x, _vertices[1].y,
_vertices[2].x, _vertices[2].y,
};
GLfloat texCoords[] = {
0.0, 1.0, // left-bottom
1.0, 1.0, // right-bottom
0.0, 0.0, // left-top
1.0, 0.0 // right-top
};
glBindTexture(GL_TEXTURE_2D, _texture->getTexture());
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, texCoords);
glVertexPointer(2, GL_FLOAT, 0, vertexBuffer);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glBindTexture(GL_TEXTURE_2D, 0);
嗯,我不不要認爲應該根據發佈的代碼進行。有沒有其他的opengl env變量與紋理有關?如果您設置了'glTexParameter(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP); glTexParameter(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);'? – Tim 2012-03-20 21:20:39
謝謝,我試圖玩glTexParameter,沒有成功,然後我再次檢查代碼與紋理一起玩,如果我發現問題是我的圖像沒有alpha通道。這個問題必須在png加載函數中。 – 2012-03-21 08:01:23
你確定OpenGL中的紋理座標是這樣的映射嗎? – mr5 2013-03-15 16:32:19