2

画像を表示するはずの次のコードがありますが、画像は表示されません。

GLuint tex_2d = SOIL_load_OGL_texture (
    "ImageName.tga",
    SOIL_LOAD_AUTO,
    SOIL_CREATE_NEW_ID,
    SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
glColor3f(0.0f,1.0f,.50f);
glBindTexture(GL_TEXTURE_2D, tex_2d);
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
    glTexCoord2d(0,0);        glVertex3f(factor*BOARD_BREADTH/2,-factor*BOARD_LENGTH/2,0);
    glTexCoord2d(0,1);        glVertex3f(factor*BOARD_BREADTH/2,factor*BOARD_LENGTH/2,0);
    glTexCoord2d(1,1);        glVertex3f(-factor*BOARD_BREADTH/2,factor*BOARD_LENGTH/2,0);
    glTexCoord2d(1,0);        glVertex3f(-factor*BOARD_BREADTH/2,-factor*BOARD_LENGTH/2,0);


glEnd();

しかし、出力として緑色の長方形しか得られません。コンパイルエラーはありません。

4

1 に答える 1

2

SOIL_load_OGL_texture読み込みが成功した場合、失敗した場合、正しい OpenGL テクスチャ識別子を返します0。常にチェックする必要があります。

あなたの場合、間違ったパスが問題を引き起こした場合は、相対パスを使用してください。フォルダー構造の例を次に示します。

root/
--- data/
-------- music/
-------- images/
------------ texture.tga
--- bin/
-------- debug/
------------ program.exe

その場合、相対パスは"../../data/images/texture.tga". どのように 2 回上昇するかに注意してください ( によって..、 に到達しroot/、次に に入りdata/images/ます。

root/そうすれば、フォルダー構造を維持すれば、ディスク上のどこに存在してもかまいません。

于 2013-02-22T19:04:39.403 に答える