Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [OpenGL] Farbverfälschung beim Darstellen von tga-Bildern (https://www.delphipraxis.net/102149-%5Bopengl%5D-farbverfaelschung-beim-darstellen-von-tga-bildern.html)

Zwoetzen 24. Okt 2007 09:03


[OpenGL] Farbverfälschung beim Darstellen von tga-Bildern
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi alle zusammen,

ich befasse mich seit neuestem mit OpenGL, um mich mal an einer kleinen 2D-Anwednung zu versuchen. Allerdings bin ich recht schnell auf folgendes Problem gestoßen:


Wenn ich ein tga-Bild als Textur einbinden will, so wird sie mit verfälschten Farben dargestellt. Ich habe eine grünliche Textur (mit Alphakanal) erstellt, allerdings wird diese in meinem Programm rosa dargestellt. :wiejetzt:
Noch als Info: Ich nehme den Texturenloader glBitmap.

Als Veranschaulichung habe ich mal eine TestTextur erstellt und reingeladen, da könnt ihr mein Problem mal sehen (anhand der elementaren Farben).
Das erste Bild zeigt die Grafik, wie ich sie erstellt habe. Dabei ist anzumerken, dass die untere Hälfte 100% transparent ist, die obere nicht.
Das zweite Bild zeigt nun die Textur in meinem Programm. Das hellere Blau ist der Hintergrund, und außerdem steht sie noch auf dem Kopf (wegen glBitmap, hab vergessen sie noch umzudrehen).

An diesem bild ist recht gut zu erkennen, dass da beim reinladen (oder abspeichern) irgendwie was schieflaufen muss.

Ich bin mir sicher, dass der Code, den ich verwende richtig ist, denn wenn ich anstelle von tga beim Laden ein JPG-File angebe, so wird dieses korrekt geladen und angezeigt. Wenn gewünscht, kann ich die Code-Schnipsel aber gerne noch posten.


Würde mich freuen, wenn mir jemand weiterhelfen kann, oder zumindest sagen kann, dass das Problem bekannt ist.


MfG zwoetzen

Lossy eX 24. Okt 2007 09:21

Re: [OpenGL] Farbverfälschung beim Darstellen von tga-Bilder
 
Die Texturen mit der glBitmap stehen nicht auf dem Kopf die sind ausnahmsweise so wie sie eigentlich sind. In Wirklichkeit stehen alle anderen auf dem Kopf. :zwinker:

Aber ich muss gestehen ich kann mir nicht erklären wieso das so komisch aussieht. Zu mal es auf mich auch so den Eindruck macht als ob das resultierende Bild auch noch etwas gedreht ist.

Stelle aber bitte sicher, dass die Fläche die du zeichnest auch eine weiße Farbe hat und die Texturkoordinaten richtig sind. Und evtluelles Licht deaktiviert ist. Also nur die blanke Textur auf einer weißen Fläche. Falls es nicht an so etwas liegt dann poste bitte mal das originale TGA als ZIP. Dann schaue ich mir das mal selber an. Und evtl den Code mit dem du diese Fläche zeichnest.

Zwoetzen 24. Okt 2007 09:28

Re: [OpenGL] Farbverfälschung beim Darstellen von tga-Bilder
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe eigentlich keine Spezialeffekte (bis auf den Alphatest) aktiviert. Wie gesagt: Nehme ich statt des tga ein jpg und zeichne es auf dasselbe Viereck, ohne irgendetwas dran zu ändern, so wird dieses ja exakt dargestellt. Hab auch vorher nix eingefärbt oder so (nur die Standartfarbe auf dieses helle Blau gesetzt) zumindest bin ich mir dessen nicht bewusst ^^

Im Anhang findest du das tga-File. Hab leider jetzt keine Zeit mehr, noch großartig was zu schreiben :roll:

Lossy eX 24. Okt 2007 10:32

Re: [OpenGL] Farbverfälschung beim Darstellen von tga-Bilder
 
So ungern ich es auch zugebe aber ja. Der Fehler liegt tatsächlich in der glBitmap. Oder bei PSP weil die was schreiben was alle anderen nicht tun. Kann man sehen wie man will. :twisted:

Dieses Feld was PSP schreibt wurde nicht berücksichtig. Und dadurch haben sich die Bilddaten um Byte verschoben. Habe ich aber nachgerüstet und auf meinen Server geladen. Also bitte aktuelle Version ziehen. News auf der Hauptseite folgt heute abend noch also nicht verwirren lassen.

Zwoetzen 24. Okt 2007 13:58

Re: [OpenGL] Farbverfälschung beim Darstellen von tga-Bilder
 
Vielen Dank, mit der neuen Version werden die TestTextur und auch meine anderen Texturen richtig dargestellt :)

EDIT:
Was mir gerade auffällt: Woher weißt du eigentlich, dass ich PSP verwende? Steht das etwa auch mit in dem Bild drin oder hast du das anhand der Struktur erkannt? (Kenn mich nicht sonderlich gut aus mit Bildern, aber das wundern mich jetzt schon ein bisschen ^^)

Lossy eX 24. Okt 2007 15:08

Re: [OpenGL] Farbverfälschung beim Darstellen von tga-Bilder
 
He He. Big Brother... :) Neee. Die Struktur ist (bis auf die eine Sache) normal ziemlich gleich, allerdings erlaubt das Format gewisse Metadaten (welche weiß ich auch nicht genau). Und da steht das drinne. Ganz unten in der Datei. Wobei mich die in dem Loader auch nicht interessieren.

3_of_8 24. Okt 2007 15:43

Re: [OpenGL] Farbverfälschung beim Darstellen von tga-Bilder
 
Evtl. lädst du das Ding nicht richtig. Schau mal genau, ob du auch wirklich alle Kanäle richtig zugewiesen hast.

Lossy eX 24. Okt 2007 17:35

Re: [OpenGL] Farbverfälschung beim Darstellen von tga-Bilder
 
3_of_8: Damit hast du recht. Allerdings ist das Problem bereits gelöst. ;)

3_of_8 24. Okt 2007 17:52

Re: [OpenGL] Farbverfälschung beim Darstellen von tga-Bilder
 
Ah hab ich nicht gesehen... (Aber so ein Problem hatte ich auch schon mal)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz