0

しばらくの間、HUD テクスチャをシミュレータ用に表示しようとしましたが、成功しませんでした。

まず、テクスチャを次のようにバインドします。

glGenTextures(1,&hudTexObj);
gHud = getPPM("textures/purplenebula/hud.ppm",&n,&m,&s);
glBindTexture(GL_TEXTURE_2D,hudTexObj);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); 
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,n,m,0,GL_RGB,GL_UNSIGNED_INT, gHud);

そして、それを QUAD にマップしようとすると、クワッド全体が単一の茶色になり、すべてのテクセルを使用したいと考えています。これが私がマッピングする方法です:

    glBindTexture(GL_TEXTURE_2D,hudTexObj);

glBegin(GL_QUADS);
glTexCoord2f(0.0,0.0);
glVertex2f(0,0);

glTexCoord2f(0.0,1.0);
glVertex2f(0,m);

glTexCoord2f(1.0,1.0);
glVertex2f(n,m);

glTexCoord2f(1.0,0.0);
glVertex2f(n,0);
glEnd();

奇妙なことに、上記の正確なコードを取得して独自のプログラムでテクスチャを表示できましたが、それをメイン プログラムに入れると失敗します。テクスチャマトリックスと関係があるのでしょうか? この時点で私は唖然とします。

4

1 に答える 1

1

愚かなことに、私はコードの別の部分で自動tex座標生成を有効にしていました。したがって、1つのテクセルの色が画像全体を覆っている場合は、それが原因である可能性があります。

于 2009-05-07T20:51:53.173 に答える