次のようなテクスチャ座標をマッピングしました。
static float texCoord[] = {
0, 1,
1, 1,
1, 0,
0, 0
};
そしてそれを描くことによって:
void Rectangle::Draw()
{
const float vertices[] = {
x, y,
x + width, y,
x, y - height,
x + width, y - height
};
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glColor3ub(255, 255, 255);
glVertexPointer(2, GL_FLOAT, 0, vertices);
glTexCoordPointer(2, GL_FLOAT, 2, texCoord);
if (IsTypeHorizontal()) glBindTexture(GL_TEXTURE_2D, texture_H);
else /* (IsTypeVertical())*/ glBindTexture(GL_TEXTURE_2D, texture_V);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
縦(高さ>横)で描かれたテクスチャは良いのですが、横(高さ<幅)で描かれたテクスチャは反転して見えます。テクスチャ座標をtexCoord_H
とtexCoord_V
で分けても、描画された画像はまだ反転していますか?
まだ何を知る必要がありますか? ここで私のコードの問題は何ですか?
PS。SOIL を使用して OpenGL でテクスチャをアップロードします