2009-04-09 20 views
1

私はSOILとGLUTを使ってOpenGLで単純なテクスチャ付き矩形を作ろうとしています。OpenGL、SOILライブラリ、テクスチャ付きの長方形

これは(glutDisplayFunc(ディスプレイ)によって主に実行される)私の表示機能である:これにより

void Display() 
{ 
    GLuint tex_2d; 

    glMatrixMode (GL_MODELVIEW); 
    glLoadIdentity(); 
    glClear (GL_COLOR_BUFFER_BIT); 
    glClearColor (1.0,1.0,1.0,1.0); 
    gluLookAt (eyex,eyey,eyez,centerx,centery,centerz,0,1,0); 

    glEnable(GL_TEXTURE_2D); 
    tex_2d = SOIL_load_OGL_texture 
    (
     "img.png", 
     SOIL_LOAD_AUTO, 
     SOIL_CREATE_NEW_ID, 
     SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT 
    ); 
    if(0 == tex_2d) 
    { 
     printf("SOIL loading error: '%s'\n", SOIL_last_result()); 
     exit(1); 
    } 

    glBindTexture(GL_TEXTURE_2D, tex_2d); 

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR); 

    glColor3f (0.0,0.0,0.0); 
    glBegin(GL_POLYGON); 

         glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f); 
         glTexCoord2f(1.0f, 0.0f); glVertex2f(1.0f, 0.0f); 
         glTexCoord2f(1.0f, 1.0f); glVertex2f(1.0f, 1.0f); 
         glTexCoord2f(0.0f, 1.0f); glVertex2f(0.0f, 1.0f); 

    glEnd(); 
    glDisable(GL_TEXTURE_2D); 
    glFlush(); 
    glutSwapBuffers(); 
} 

は、任意のテクスチャなしのみ黒い長方形の参照です。私はこれで何時間か何かしようとしています。助けてください、ありがとうございます。

+0

あなたはテクスチャすべてのフレームをロードしていますか? – GManNickG

+0

私はそれをしてはいけないと知っていますが、他の場所にテクスチャをロードしているときでさえ、それでも動作しません。 – mmatloka

答えて

3

矩形を描画する直前に色を黒に設定することはできますか?

glColor3f (0.0,0.0,0.0); 

が白の代わりにしてみ行...

glColor3f (1.0,1.0,1.0); 
+0

Lol ...私は黒がテクスチャをカバーしているとは思わなかったし、白はそうではない...たくさんありがとう! – mmatloka

関連する問題