Seite 1 von 1

Problem beim Texturieren (OpenGL); Textur nur weiß

Verfasst: 1. Juli 2006 21:05
von AnTeevY
Hallo allerseits ;)

Wie man schon im Threadtitel lesen kann, hab ich ein Problem mit den Texturen in OpenGL. Ich habe schon einige verschiedene Lösungswege probiert, aber egal was ich mache, immer ist der Würfel, auf dem normalerweise die Textur sein sollte, komplett weiß. Fehlermeldungen kommen keine...

z.B. habe ich es mit folgendem Code versucht:

Code: Alles auswählen

void GLWidget::BindTexture(QImage& img, GLuint& textureid)
{       
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
    glBindTexture(GL_TEXTURE_2D, textureid);

    QImage data;

    data = QGLWidget::convertToGLFormat( img );

    // note use 4 bits for alph channel
    gluBuild2DMipmaps(GL_TEXTURE_2D, 4, data.width(), data.height(),GL_RGBA, GL_UNSIGNED_BYTE, data.bits());
   
    //Assign the mip map levels and texture info
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);   

    // texture now assigned to the id "textureid"
}
Dem QImage img habe ich zuvor folgendes zugewiesen:

Code: Alles auswählen

img.load( "nehe.bmp" );
Seit einer guten halben Woche schlag ich mich nun damit rum, ohne Lösung :( Wäre nett, wenn ihr mir helfen könnte, sicherlich hab ich irgendwas gravierendes übersehen... danke im Voraus.

Verfasst: 2. Juli 2006 14:11
von FaS
Tja wie sieht denn deine Zeichenroutine aus??

Code: Alles auswählen

glEnable( GL_TEXTURE_2D ); // <-- möglicherweise fehlt das??
glBegin( GL_QUADS );
  glTexCoord2f( 0.0, 0.0 ); glVertex3f( 0.0, 0.0, 0.0 );
  glTexCoord2f( 1.0, 0.0 ); glVertex3f( w_,  0.0, 0.0 );
  glTexCoord2f( 1.0, 1.0 ); glVertex3f( w_,  h_,  0.0 );
  glTexCoord2f( 0.0, 1.0 ); glVertex3f( 0.0, h_,  0.0 );
glEnd();

Verfasst: 2. Juli 2006 14:31
von AnTeevY
Oh, ok, danke für die Antwort, aber daran lags nicht. Ich Dummkopf habe immer die exe im Debug-Ordner gestartet, aber die Bilddatei war im übergeordneten Ordner *g*

Problem gelöst :)