mich beschäftigen derzeit 3 Fragen zum Thema Texturen.
kann man eine Textur aus einem TBitmap erstellen? (Ich nutze die glBitmap zum Texturen laden.) Wie kann man eine verwendete Textur gegen eine andere austauschen? In den Tuts werden die Texturen am Ende nie freigegeben - sollte man das nicht? und wie macht man das überhaupt?
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2067
Programmiersprache: C++
Zu 1.: Ja sollte gehen, du musst nur an die Pixeldaten kommen und das entsprechende Format kennen. Ob glBitmap dir helfen kann, kann ich dir gerade nicht sagen.
Zu 2.: Z.B. mit glTexSubImage.
Zu 3.: Es gehört sich an sich aufzuräumen, von daher sollte man mit glDeleteTexture sie am Ende löschen. Aber: Da das Programm danach beendet wird, wird es auch automatisch freigegeben weshalb die Nicht-Freigabe im Tutorial kein Fehler ist.
Registriert: Di Mai 10, 2011 19:00 Beiträge: 43
Programmiersprache: FreePascal , C++
Zum erstellen einer Textur aus einer TBitmap: Ob glBitmap da etwas bietet kann ich leider auch nicht sagen; ist an sich aber auch nicht wichtig weil es ziehmlich simpel ist. Das selbe Problem ist mir vor ein paar Tagen über den weg gelaufen und ich hab auch eine Lösung gefunden gefunden (sicher nicht die beste oder schnellste reicht für mich aber; vllt hilft es dir ja )
Im Prinzip brauchst du nur die Frabwerte der einzelnen Bildpunkte hintereinander weg in ein array zu schreiben und dieses an glTexImage2D(...); zu übergeben. Dabei kannst du ja selbst entscheiden wie du die Rot-, Grün-, Blau-Komponente (und eine eventuelle Alpha-Komponente anordnest). Das musst du dann bei glTexImage2D im 7. Parameter angeben. Die anderen Parameter sind im Wiki-Eintrag dazu beschrieben.
Beim Laden der Farbwerte ins Array ist mir noch aufgefallen das es viel zu langsam ist die einfachste Methode über Bitmap.Canvas.Pixels[x,y] zu wählen. Nehm lieber das schnelle scanline(). Dazu kann ich die leider nicht mehr sagen da das bei Lazarus nicht so einfach geht und ich es dementsprechend nicht testen kann... aber Google sollte genug Informationen dazu geben.
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.