Mögliche fehlerquellen, die ich schon überprüft habe:
- GL_TEXTUR_2D ist enabled
- Die textur wurde zuvor mit glBindTexture gebunden
- Die größe sollte auch passen(Da bin ich mir nicht zu 100% sicher, ob man da auf irgendwas spezielles achten muss. Mein fenster ist 1024x768, glOrtho habe ich mit 800x600 'benutzt'. Vor dem Aufruf von glCopyTexImage2D habe ich auch schon versucht, per glViewport(0,0,256,256) den sichtbereich einzugrenzen, half auch nichts.)
Das was ich in die Textur haben will, wird auch garantiert gerendert, denn ich kann es recht gut sehen, nur die Textur bleibt vollkommen weiß.
Bin da relativ ratlos.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hast du als MinFilter vielleicht rein zufällig MipMaps mit aktiviert? Bzw muss die Textur vorher auch mindestens 1 mal durch glTexImage2D mit daten gefüttert werden. Dürfen auch leer sein. Nur dadurch werden Dinge in OpenGL initialisiert.
Aber da hast du schon das meiste/Alles beachtet. Wie groß ist denn deine Textur. 2^n ist nur eine Einschränkung. Zu große Texturen können trotzalledem immer noch probleme machen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Das einzige problem dass ich jetzt noch habe ist, dass der "glCopyTexImage2D"-Befehl den Punkt (0|0) unten links hat, und ich ihn aber per glOrtho nach oben links verlegt habe. Die Koordinaten für "glCopyTexImage2D" umzurechnen sollte nicht das problem sein, aber wie kann ich die Textur auf der Y-Achse invertieren, die steht nämlich auf dem Kopf. Klar könnte ich einfach die UV-Koordinaten auf dem Quad ändern, aber ch frage mich, ob es nicht noch eine elegantere lösung gibt.
müsste alles auf den Kopf drehen.
Wenn du das im Renderpass benutzt müsste es dort auf dem Kopf gerendert werden und deine Textur wird dann "richtig rum".
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Komisch das es an der Filterung lag. Die standardeinstellungen sollten eigentlich auch funktionieren. Hattest du vorher irgendwas anderes bei der Filterung eingestellt?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Einen direkten Renderpass gibt es nicht, von daher habe ich mich jetzt entschieden meiner Textur-Klasse einen yFlip parameter mit auf den weg zu geben, welcher vor dem rendern des Objekts mit der Textur(Ein Quad) den Scale-Befehl auf die Textur anwendet. Funktioniert gut.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Denke mal per Standard ist es dem Treiber überlassen was er macht und wenn er der Meinung ist er müsse MipMaps benutzen und keine erstellt werden dann gibt es nur eine weiße Fläche.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Damals bei meinem Texturmanager bin ich auf das gleiche Problem gestossen. Man muss aus mysteriösen Gründen dieses glTexParameter dazusetzen, sonst bekommt man nur weiss. Ich bin damals dran verzweifelt und hab dann in der glBitmap-Unit die Lösung gefunden.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Wie du in der Dokumentationzu glTexParameter nachlesen kannst, ist der Filter GL_LINEAR_MIPMAP_LINEAR standardmäßig für normale Texturen eingestellt. Wenn dann keine Mipmaps erstellt oder angegeben werden, ist natürlich die ganze Textur incomplete und damit nicht verwendbar.
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.