0

こんにちは私は立方体を作成し、片側にテクスチャが必要です。

glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, texture[0]);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filterMode);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filterMode);

        glBegin(GL_POLYGON);   //Vorderseite
    glColor4f(1.0f,0.0f,0.0f,1.0f); //ROT
    glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    glColor4f(1.0f,1.0f,0.0f,1.0f); //GELB
    glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    glColor4f(1.0f,1.0f,1.0f,1.0f); //WEISS
    glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    glColor4f(1.0f,0.0f,1.0f,1.0f); //MAGENTA
    glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    glEnd();

    glDisable(GL_TEXTURE_2D);

でもテクスチャが見えないのですが、何が悪かったのでしょうか?ありがとう。

4

2 に答える 2

4

テクスチャ座標を指定していません。対応する呼び出しの前にglTexCoord、ベクトルがマップされるテクスチャの一部を示す1つの呼び出し(2f最も一般的に使用されるバリアント)を発行する必要があります。glVertex

それ以外の場合、OpenGLは、テクスチャをポリゴンに貼り付ける方法を認識していません。

于 2010-04-14T16:50:34.227 に答える
2

まず第一に、これは立方体ではなく、ただの四角形のように見えます。立方体は6つの異なる四角形GL_QUADSで構成されています..(代わりにそれを使用できますGL_POLYGON

2つ目は、テクスチャをロードしているが、頂点にマッピングしていないことです。テクスチャがクワッドにどのようにフィットするかをマッピングするための座標を指定する必要があります。あなたはを使用してそれを行うことができます

glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);

この例はNEHEOpenGLガイドから抜粋したものであり、非常によく説明されているので、ぜひご覧になることをお勧めします:http: //nehe.gamedev.net

テクスチャマッピングに関するチュートリアル6を確認してください:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson = 06

于 2010-04-14T16:53:08.747 に答える