OpenGL, библиотека ПОЧВ и текстурированный прямоугольный

StackOverflow https://stackoverflow.com/questions/735493

  •  09-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь сделать простой текстурированный прямоугольник в OpenGL, используя SOIL и GLUT.

Это моя функция отображения (выполняется в main с помощью 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();
}

При этом виден только черный прямоугольник без какой-либо текстуры.Я пытаюсь что-то с этим сделать в течение нескольких часов.Пожалуйста, помогите, заранее спасибо.

Это было полезно?

Решение

Может быть, вы установили черный цвет непосредственно перед тем, как нарисовать прямоугольник?Линия

glColor3f (0.0,0.0,0.0);

Попробуйте вместо этого белое...

glColor3f (1.0,1.0,1.0);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top