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
ありがとう、私はglTexParameterを使って試してみましたが、成功しませんでした。そして、画像にアルファチャンネルがないことがわかったら、テクスチャで再生したコードをもう一度チェックしました。問題はpngローディング機能にある必要があります。 –
あなたはOpenGLのテクスチャ座標が確実にマップされていますか? – mr5