Registriert: So Okt 23, 2005 08:45 Beiträge: 9 Wohnort: Dresden
Ich hab in dem Forum schon einige ansätze gesehen um PNG-Grafiken auf seine Texturen zu bekommen nur hat mir keine bis jetzt klappen wollen...
glBitmap... Hat zwar inzwischen PNG Support aber entweder sagt er mir "unbekannter Colormode" (wenn ich mich recht erinner) und wenn ih das Laden der entsprechenden Texturen durch auskommentieren unterdrücke hab ich trotzdem nur weisse flächen anstelle der texturen (weiss gecleared) (die Texturen sind auch nicht alle auskommentiert, es sollte also noch etwas zu sehen sein). Ein zweiter Punkt ist die Objetkorientierung dieses Loaders... ist zwar im Ganzen eine nette sache, da ich aber selbst schon Klassen habe um die Texturen zu verwalten eher überflüssig).
FreeImage Lib... Im forum hab ich auch ein Quellcodeausschnitt gefunden wo die Textur mit dessen Hife ausgelesen wird, als ich allerdings sofort nach dem eintragen unter den Uses den Arsch.... voll Fehlermeldungen hatte hab ich den Versuch abgebrochen. (ich verwende Delphi 5)... zudem mag ich es nicht DLLs einzubinden wenn es nicht unbedingt nötig ist... (gleiches gilt für diverse andere lösungen die ale DLLs benötigen)
usw
Nun hab ich bei meinen Google-Suchen mal eine Lib gefunden die es ermöglicht verschiedene Formate (unter anderem PNG) in ein TImage zu laden und das ganze ohne DLL (Ist sicher nicht die einzige die das kann aber ich hab diese als erstes gefunden ^^)... währe es nicht möglich den quellcode dieser lib zu nehmen und so anzupassen das es die daten nicht für TImage direcht als Texture läd? Header auswertung kann man ja sicher übernehmen und "nur" das ablegen der daten umschriben...
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Bitte benutz das Wort TImage nicht in meiner Gegenwart. Diese Komponente halte ich oft für missverstanden und leider viel zu häufig eingesetzt. Das einzige was du bräuchtest wäre ein TPicture. Damit wärst du dann in der Lage alle Bilder zu laden die auch ein TImage laden könnte. Aber das ist ein anderes Thema. Ist zum Laden von Bildern für OpenGL nicht sonderlich praktikabel.
Wenn du nur PNGs laden möchtest, dann kannst du auch die Unit pngumage benutzen. Damit kannst du PNGs laden und direkt auf den Speicher zugreifen. Was sehr wichtig ist. Vom Prinzip her musst du nichts anderes machen als ich in der glBitmap in der Methode LoadPNG mache. Also PNG laden, in einen anderen Speicherbereich kopieren und den dann an OpenGL übergeben. In der glBitmap kopiere ich das allerdings in ein Temporäres Bitmap. Ist in der neusten Version auch anders. Sollte aber zum anschauen kein Thema sein. Denke ich.
Die ImageLib kenne ich so nicht.
Aber was mir da einfällt. Mike Lischke hat auch etwas geschrieben womit man Bilder einlesen kann. Dabei werden die Bilder in Klassen eingelesen die von TBitmap abgelitten wurden. Da es ein TBitmap ist solltest du dabei problemlos an dessen Speicher herran kommen.
Registriert: So Okt 23, 2005 08:45 Beiträge: 9 Wohnort: Dresden
Zu TImage... Will ich ja garkein TImage nehmen... Hab nur geschrieben das man mit der Lib diesen eine PNG-Grafik zukommen lassen kann...
Zu der angesprochenen Unit... wie gesagt ich hatte beim versuch deine Lib zu verwenden das prob das es nicht gefuntzt hat... (entweder kahm die Unit mit den PNGs nicht zurecht oder die texturen wurden nicht geladen ohne fehler...)
PS: als ich deine glBitmap Unit eingebunden hatte hatte ich ziemliche Probs... was hast du mit den Zeilenumbrüchen angestellt?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
TImage. War auch nicht ganz so gemeint. Ich benutze diese Komponente recht selten und sehe in einem anderem Forum immer, dass sie als Allheilmittel für graphische Aufgaben angesehen wird. Was sie definitiv nicht ist.
Was soll mit den Zeilenumbrüchen sein? Normale Delphi Zeilenumbrüche.
Zu den PNGs. Geladen werden können RGB und RGBA Tetxuren. Und das nur mit 8Bit pro Kanal. Soweit ging das eigentlich immer ganz gut.
Weiße Textur. Muss ich passen. Die Bilder müssen 2^n sein. Also eine Potenz von 2. 1, 2, 4, 8, 16, 32, 64 etc. Außer du hast eine entprechend neue Karte mit passendem Treiber. Das wäre so spontan das was passieren könnte. Bei GenTextures teste ich normal ob da irgendwo Fehler sind. Also in der Konfiguration. Sonst wüsste ich sospontan nicht wass nicht gegangen ist.
Anderenfalls schicke mir mal das png zu dann schaue ich bei Gelegenheit. Und eine Report von dem glInfo. Dann sehe ich auch so halbwegs was unterstützt wird. Mailadresse findest bei Team. Links oben.
Registriert: So Okt 23, 2005 08:45 Beiträge: 9 Wohnort: Dresden
Ich hab im moment eine Lösung um PNG zu laden... indem ich die Texturen durch eine komplett overpowered Komponnte schleife die mir die PNG in TGA umwandelt und dann von meinem Texture Loader (den mir BeRo netterweise erweitert hat) geladen werden... das ganze ist aber sehr lahm...aber es werden damit alle Komponenten ordendlich dargestellt...
Also an meinern Grafiktreibern/karte ligt es scheinbar nicht... könnte man mal soeine version deiner glBitmap bekommen wo der umweg über eine Bitmap entfällt oder ist die noch nicht fertig?
PS: bist du im IRC ereichbar oder idled dein Client nur so rum?
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.