Texture Loader: Unterschied zwischen den Versionen
(→Bestehende Texture Loader) |
(→Bestehende Texture Loader) |
||
(6 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 9: | Zeile 9: | ||
So einfach wie es klingt ist es aber nicht. '''Texture Loader''' sind meist recht vielfältige Tools. Viele von ihnen ermöglichen es dem Nutzer Bilder verschiedener Bildformate (wie z.B. *.jpg, *.tga, *.png etc) zu Laden und als Texture zur Verfügung zu stellen. | So einfach wie es klingt ist es aber nicht. '''Texture Loader''' sind meist recht vielfältige Tools. Viele von ihnen ermöglichen es dem Nutzer Bilder verschiedener Bildformate (wie z.B. *.jpg, *.tga, *.png etc) zu Laden und als Texture zur Verfügung zu stellen. | ||
− | Man kann sich leicht vorstellen, dass der '''Texture Loader''' für jedes Bildformat seine Ladeprocedur anpassen muss. (Ein nicht zu unterschätzender | + | Man kann sich leicht vorstellen, dass der '''Texture Loader''' für jedes Bildformat seine Ladeprocedur anpassen muss. (Ein nicht zu unterschätzender Aspekt, wenn man selber einmal einen '''Texture Loader''' schreiben will.) |
==Wie schreibe ich einen Texture Loader?== | ==Wie schreibe ich einen Texture Loader?== | ||
Zeile 34: | Zeile 34: | ||
! Name (Link) || Features, Beschreibung | ! Name (Link) || Features, Beschreibung | ||
|- valign="top" | |- valign="top" | ||
− | |[ | + | |[[Glbitmap_loader|glBitmap.pas]] |
|'''Pro''' | |'''Pro''' | ||
*Ist objektorientiert und verfügt über ein leicht erweiterbares Klassenmodel | *Ist objektorientiert und verfügt über ein leicht erweiterbares Klassenmodel | ||
Zeile 60: | Zeile 60: | ||
|- valign="top" | |- valign="top" | ||
|glBMP.pas | |glBMP.pas | ||
− | |Die ursprüngliche Seite des Autors ist leider nicht mehr verfügbar, der Loader kann aber aus dem | + | |Die ursprüngliche Seite des Autors ist leider nicht mehr verfügbar, der Loader kann aber aus dem [[DGLSDK]] bezogen werden. |
Bei der glBMP.pas handelt es sich lediglich um die Textures.pas bei der die grundlegenden Funktionalität übernommen und in eine (relativ bescheidene) Klassenstruktur gepackt und erweitert wurde. | Bei der glBMP.pas handelt es sich lediglich um die Textures.pas bei der die grundlegenden Funktionalität übernommen und in eine (relativ bescheidene) Klassenstruktur gepackt und erweitert wurde. | ||
Zeile 75: | Zeile 75: | ||
*Kann ausschließlich nur Dateien laden. | *Kann ausschließlich nur Dateien laden. | ||
*Die Texturen werden immer mit einem einheitlichen Format generiert. Texturen werden immer mit Alphakanal erzeugt. | *Die Texturen werden immer mit einem einheitlichen Format generiert. Texturen werden immer mit Alphakanal erzeugt. | ||
+ | |- valign="top" | ||
+ | |[http://andorra.sourceforge.net/ Andorra 2D] | ||
+ | |Bei Andorra 2D handelt es sich eigentlich um eine für Pascal geschriebene 2D Grafikbibliothek. Jedoch beinhaltet diese auch einen sehr leicht erweiterbaren, objektorientierten Texturlader. Es existieren native Implementierungen zum Laden von TGA, PNG und BMP Bildern sowie Bindungen für FreeImage und OpenIL. Der Andorra Loader integriert sich zudem automatisch nahtlos in die VCL, sofern dies gewünscht ist. Units des Andorra 2D Paketes, die benötigt werden sind: AdBitmap.pas (TAdBitmap) sowie die optionalen Loaderbibliotheken AdFormats, AdPNG, AdTGA, AdBMP etc. | ||
+ | |||
+ | '''Pro''' | ||
+ | *Objektorientiert | ||
+ | *Modular (erweiterbar durch einfaches einbinden entsprechender Lader-Units) | ||
+ | *Integration in die VCL (es können alle VCL Formate geladen werden und die VCL kann alle Andorra Formate laden)... | ||
+ | *... ist aber komplett von der VCL unabhängig (wenn AdFormats.pas nicht eingebunden) | ||
+ | *Viele native Lader und Anbindungen an andere Bibliotheken | ||
+ | *Grafiksystem unabhängig | ||
+ | '''Contra''' | ||
+ | *Erkennt den Dateitypen ausschließlich anhand des Dateinamen. | ||
+ | *Kann ausschließlich nur Dateien laden. | ||
+ | *Die Texturen werden immer mit einem einheitlichen Format (32 Bit) generiert. Texturen werden immer mit Alphakanal erzeugt. | ||
+ | *Die Texturen müssen per Hand auf 2^n Format gebracht und in OpenGL geladen werden. | ||
|} | |} | ||
+ | [[Kategorie:Technik_oder_Algorithmus]] |
Aktuelle Version vom 20. März 2009, 22:19 Uhr
Inhaltsverzeichnis
Texture Loader
Was ist das?
Der Texture Loader ist ein Tool, welches das Verwalten von Texturen erleichtern soll.
Sobald man Texturen in seinen Projekten verwenden will, benötigt man einen Texture Loader.
Was macht ein Texture Loader?
Er lädt Texturen!
So einfach wie es klingt ist es aber nicht. Texture Loader sind meist recht vielfältige Tools. Viele von ihnen ermöglichen es dem Nutzer Bilder verschiedener Bildformate (wie z.B. *.jpg, *.tga, *.png etc) zu Laden und als Texture zur Verfügung zu stellen.
Man kann sich leicht vorstellen, dass der Texture Loader für jedes Bildformat seine Ladeprocedur anpassen muss. (Ein nicht zu unterschätzender Aspekt, wenn man selber einmal einen Texture Loader schreiben will.)
Wie schreibe ich einen Texture Loader?
Am besten gar nicht!
Es gibt schon eine Menge leistungsfähige Texture Loader. (z.B. "glBitmap.pas" welcher aus der DGL Comunity stammt.) Wenn die Funktionen von keinem Loader deinen Ansprüchen genügen, dann nimm den der diesen am nächsten kommt und erweitere ihn entsprechend.
Wenn es unabdingbar ist, dass der Texture Loader selber geschrieben sein muss, dann hier ein paar Tips:
- Verwende für die Texturen Klassen
- Ermögliche das Laden aus Streams. Damit wird dein Loader vielseitiger.
- Die wichtigsten Bildformate für Texturen sind *.bmp, *.jpg, *.tga, *.png
- Informationen zu den Bildformaten findest du auf wotsit.org
(Es kann nie schaden sich einmal den Code eines bestehenden Texture Loader anzusehen.)
Außerdem sind die folgenden Befehle sicherlich wichtig:
Wichtige OpenGL Befehle
glGenTextures, glDeleteTextures, glBindTexture, glTexParameter, glTexImage1D, glTexImage2D, glTexEnv, glTexGen
Bestehende Texture Loader
(Loader für Delphi)
Name (Link) | Features, Beschreibung |
---|---|
glBitmap.pas | Pro
Contra
|
Textures.pas | Von der Textures.pas existieren die verschiedensten Modifikationen. Unter anderem auch eine die Texturen aus Streams laden kann. Diese Versionen sind aber alle nicht offiziel und werden auch nicht publiziert.
Pro
Contra
|
glBMP.pas | Die ursprüngliche Seite des Autors ist leider nicht mehr verfügbar, der Loader kann aber aus dem DGLSDK bezogen werden.
Bei der glBMP.pas handelt es sich lediglich um die Textures.pas bei der die grundlegenden Funktionalität übernommen und in eine (relativ bescheidene) Klassenstruktur gepackt und erweitert wurde. Pro
Contra
|
Andorra 2D | Bei Andorra 2D handelt es sich eigentlich um eine für Pascal geschriebene 2D Grafikbibliothek. Jedoch beinhaltet diese auch einen sehr leicht erweiterbaren, objektorientierten Texturlader. Es existieren native Implementierungen zum Laden von TGA, PNG und BMP Bildern sowie Bindungen für FreeImage und OpenIL. Der Andorra Loader integriert sich zudem automatisch nahtlos in die VCL, sofern dies gewünscht ist. Units des Andorra 2D Paketes, die benötigt werden sind: AdBitmap.pas (TAdBitmap) sowie die optionalen Loaderbibliotheken AdFormats, AdPNG, AdTGA, AdBMP etc.
Pro
Contra
|