سؤال

أحاول أن أقوم بإجراء مستطيلة محكم بسيطة في OpenGL باستخدام التربة وفأمة.

هذه هي وظيفة العرض الخاصة بي (تم تنفيذه في الرئيسية بواسطة glondisplayfunf (العرض)):

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