0

同じテクスチャを使用する複数のテクスチャ付きクワッドがあるが、座標が異なると、テクスチャがモーフィングされます。私のコードは次のようになります。

glBindTexture(GL_TEXTURE_2D, texture_id);
glBegin(GL_QUADS);
    glVertex2f(0, 0);    glTexCoords2f(0, 0);
    glVertex2f(32, 0);    glTexCoords2f(.5, 0);
    glVertex2f(32, 32);    glTexCoords2f(.5, .5);
    glVertex2f(0, 32);    glTexCoords2f(0, .5);
glEnd();

glTranslatef(32, 0, 0);

glBegin(GL_QUADS);
    glVertex2f(0, 0);    glTexCoords2f(.5, .5);
    glVertex2f(32, 0);    glTexCoords2f(1, .5);
    glVertex2f(32, 32);    glTexCoords2f(1, 1);
    glVertex2f(0, 32);    glTexCoords2f(.5, 1);
glEnd();

これの原因と修正方法を知っている人はいますか?

4

1 に答える 1

1

glTexCoord と glVertex を間違った順序で呼び出しています。glVertex は常に、頂点を完成させるために呼び出される最後の属性である必要があります。

次のようにする必要があります。

glBegin(GL_QUADS);
    glTexCoords2f(0, 0);    glVertex2f(0, 0);    
    ...
于 2012-09-23T01:08:10.637 に答える