Hallo,
Ein Problem was mich gerade kirre macht sind Textren bei OpenGL. Ich hab ein Testprojekt mit LWJGL am laufen und nutze die SLICK-Util um PNG Dateien als Textur einzuladen. Hat auch funktioniert bis zu dem Moment wo ich mir im Programm eine zusätzliche Texture zur Laufzeit erstellt hatte.
Fehlersuche ergab dann das irgendwie das Texture.bind() nicht richtig gearbeitet hat.
Gut nach ewigem fummeln ohne Lösung dachte ich das ich einfach mal ein GL11.glBindTexture(GL_TEXTURE_2D, texture.getTextureID());
anstelle von texture.bind() einsetze. Und siehe da mein Programm hat wieder funktioniert.
OK jetzt kam eine zweite Textur dazu und damit gibt es wieder Probleme das sie nicht auf dem zweiten Grafikobjekt angezeigt wird. Also hab ich beim testen mal das glBindTexture ausgeklammert...die Textur war immer noch auf dem ersten obwohl ich sie nirgendwo gebunden hab.
Lange rede kurzer Sinn, irgendwie raffe ich das mit dem binden von Texturen nicht. Warum er die Textur nicht ändern wenn ich glBindTexture aufrufe ist mir einfach nicht ersichtlich. Eine Kontrolle der Textur ID ergibt das diese eine andere ist. Nur richtig gebunden wird offensichtlich nichts. Und ich verstehe absolut nicht warum. Kennt irgendjemand Probleme die in diesem Zusammenhang auftreten die man irgendwie umschiffen muss?
Ok ich hab es weiter eingegrenzt. Ich hatte das so verstanden das ein glBindTexture die alte gebundene(?) Textur durch die neue ersetzt. Offensichtlich Blendet er aber die Texturen bei mir ineinander oder so etwas in der Art. Wie säubere ich den meine Texturspeicher um eine neue Textur mit z.b. glTexCoord2f(x,y); auf ein Quadrat aufzubringen?
Ein Problem was mich gerade kirre macht sind Textren bei OpenGL. Ich hab ein Testprojekt mit LWJGL am laufen und nutze die SLICK-Util um PNG Dateien als Textur einzuladen. Hat auch funktioniert bis zu dem Moment wo ich mir im Programm eine zusätzliche Texture zur Laufzeit erstellt hatte.
Fehlersuche ergab dann das irgendwie das Texture.bind() nicht richtig gearbeitet hat.
Gut nach ewigem fummeln ohne Lösung dachte ich das ich einfach mal ein GL11.glBindTexture(GL_TEXTURE_2D, texture.getTextureID());
anstelle von texture.bind() einsetze. Und siehe da mein Programm hat wieder funktioniert.
OK jetzt kam eine zweite Textur dazu und damit gibt es wieder Probleme das sie nicht auf dem zweiten Grafikobjekt angezeigt wird. Also hab ich beim testen mal das glBindTexture ausgeklammert...die Textur war immer noch auf dem ersten obwohl ich sie nirgendwo gebunden hab.
Lange rede kurzer Sinn, irgendwie raffe ich das mit dem binden von Texturen nicht. Warum er die Textur nicht ändern wenn ich glBindTexture aufrufe ist mir einfach nicht ersichtlich. Eine Kontrolle der Textur ID ergibt das diese eine andere ist. Nur richtig gebunden wird offensichtlich nichts. Und ich verstehe absolut nicht warum. Kennt irgendjemand Probleme die in diesem Zusammenhang auftreten die man irgendwie umschiffen muss?
Ok ich hab es weiter eingegrenzt. Ich hatte das so verstanden das ein glBindTexture die alte gebundene(?) Textur durch die neue ersetzt. Offensichtlich Blendet er aber die Texturen bei mir ineinander oder so etwas in der Art. Wie säubere ich den meine Texturspeicher um eine neue Textur mit z.b. glTexCoord2f(x,y); auf ein Quadrat aufzubringen?
Zuletzt bearbeitet: