Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 14, 2025 01:06

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: BMP - Loader - verdreht
BeitragVerfasst: Mo Mär 03, 2008 22:57 
Offline
DGL Member
Benutzeravatar

Registriert: Do Feb 21, 2008 22:10
Beiträge: 89
Wohnort: Boppard
Hi ich hab ein kleines Problem

Bei meiner laden funktion für bmp texturen steckt der wurm drin.

Die lädt zwar die Texturen, verdreht diese aber.

Ich habe einen für TGA der lädt die schön und gut.

Aber der BMP - LOADER lädt die genau um 180° verdreht!

Also das im Vergleich zum TGA Oben Unten ist und umgekehrt!

Weiß einer wie ichj im Quelltext oder durch OpenGl das bild beim Laden drehen kann?


// Edit Lossy: Titel angepasst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 03, 2008 23:27 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das Verhalten ist vollkommen normal. Denn ein BMP wird mit der letzten Zeile zu erst in die Datei geschreiben. Das Bedeutet es ist nicht gedreht sondern vertikal gespiegelt. Das kannst du entweder selber ausgleichen. Dazu musst du das Bild entweder selber spiegeln. Also die Zeilen von unten nach oben kopieren und umgekehrt. Oder aber du gleichst das mit den Texturkoordinaten aus. Was häufig gemacht wird aber bei Mipmaps zum Beispiel versagt, denn dann muss das Bild mit der ersten Zeile im Speicher liegen.

Dieses Problem kann dir im übrigen bei TGAs genau sogut über den Weg laufen, denn dort gibt es dafür ein Flag was angibt ob es mit der Ersten oder mit der letzten Zeile zu erst im Speicher liegt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 03, 2008 23:48 
Offline
DGL Member
Benutzeravatar

Registriert: Do Feb 21, 2008 22:10
Beiträge: 89
Wohnort: Boppard
Kennst du denn einen Code, der die Zeilen wieder spiegelt oder so?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 04, 2008 08:28 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ohne, dass ich das schonmal geschrieben hätte:

Frage die menge an zeilen ab
lege einen 2D-Puffer in der passenden größe an.
for (int i = 0; i < zeilenzahl; i++)
Puffer[zeilenzahl-1-i] = Bild[i];

Alternativ kannst du Lossys glBitmap.pas benutzen. Die funktioniert. Wurde bestimmt schon tausendfach getestet.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 04, 2008 08:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das Einzige was du machen musst ist einen zweiten gleichgroßen Speicherbereich zu erstellen und dann dort die Zeilen von unten nach oben zu kopieren. Anschließend löscht du den originalen Speicher und benutzt den neu erstellten als Original. Fertig.

Aber ich kenne auch einen Code. Ich habe in meinem Loader so etwas eingebaut. Schau dort einfach mal nach der Methode TglBitmap2D.FlipVert. Den kannst du natürlich nicht 1 zu 1 übernehmen aber mehr als oben beschrieben mache ich auch nicht.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]