Texturen in OpenGL
-
Hi,
ich weiß dass es das Falsche Forum ist, aber als unregistreirter in Spieleprog-Forum zu posten ist ja nicht erlaubt.
Mein Problem sind Texturen in OpenGl.
Immer wenn ich einen Filter auf eine Textur anwende, so sind z.B. Quads die z.b. nur mit Farben gemalt wurden nicht sichtbar. Wo das Problem ist weiß ich nicht. Habe mit openGl vor nicht so langer Zeit angefangen.//// Graphik-Laden Graphic* graphic = load("mypic.tga"); GLuint id; glGenTextures(1, &id); glBindTexture(GL_TEXTURE_2D, &id); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); if (graphic->hasAlpha) glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, graphic->width, graphic->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, graphic->data); else glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, graphic->width, graphic->height, 0, GL_RGB, GL_UNSIGNED_BYTE, graphic->data); // Wenn ich die folgenden 2 zeilen aufrufe so sind ist der Rechteck nicht // sichtbar. // Ich habe auch versucht, die Filter vor glTexImage2D aufzurufen, // bringt genauso nichts. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); delete graphic;
Jetzt die Zeichenfunktion. Vielleicht zeichne ich etwas falsch
void draw() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(0,0,-5); glBegin(GL_QUADS); glColor3f(1,0,0); glVertex3f(0,0,0); glVertex3f(256,0,0); glColor3f(0,1,0); glVertex3f(256,256,0); glVertex3f(0,256,0); glEnd(); }
Und falls es wichtig ist:
* 2D-Texturen sind eingeschaltet
* depth-test auch. Funktion: GL_LEQUAL
* glShadeModel ist auf GL_SMOOTH
* Backface-Culling ist abgeschaltet.
* glViewport(0, 0, 800, 600);
* glOrtho(0, 800, 0, 600, -10, 10);
* Die Textur-Lade-Funktion load() funktioniert
-
Wie waers mal texture koordinaten?
-
Flow_cplus* schrieb:
Wie waers mal texture koordinaten?
Wozu? Bei mir werden nur die "von hand" gefärbten Quads nicht gezeichnet. So wie bei der oberen Funktion. Einen Quad zu texturieren geht ohne Probleme.
-
glBindTexture( GL_TEXTURE_2D, 0 );
-
Quads die z.b. nur mit Farben gemalt wurden nicht sichtbar.
Bei den ohne Texturen dürfen 2D-Texturen nicht an sein