Hi Leute ich bin noch nicht lange hier angmeldet und hab mich bis her auch noch nicht getraut ne Frage zu stellen. Mit dem Risiko jetzt eine Frage zu stellen die an einer anderen Stelle schon beantwortet wurde. Ich benutze den Textur loader GlBitmap_loader und im gegensatz zu SDL funktioniert das bei mir eigentlich ganz toll. (ich hätte auch nichts dagegen SDL zu benutzen aber ich bin damit einfach nicht zu rande gekommen und ganz ohne Fortschritte macht es dann kein Spaß mehr) Ok. Mein Problem ist nun Texturen mit Alpha kanal benutzen zu wollen. Man kann ja nun entweder gleich eine .png benutzen oder z.B. ein .bmp und dann den Alphakanal aus einem extra Bild laden. Also. Wenn mir jemand erklärt wie man eine PNGImage - Bibiothek benutzt dann wär ich dolle dankbar. Weil mit .png arbeite ich auch gerne. Und diese Bibliothek brauch ich ja um mit dem Loader png's laden zu können. Also was muss ich mir unter dieser Bibliothek, welche PNGImage heißen soll vorstellen und wie benutze ich sie richtig oder überhaupt?
Danke schon mal für die Antwort. =)
_________________ "Man könnte auch aus den Fehlern anderer lernen aber es scheint man lernt lieber aus seinen eigenen"
Registriert: Do Feb 21, 2008 10:49 Beiträge: 55 Wohnort: Dresden
Programmiersprache: FPC/Linux
also, ich will dir ja ni reinquatschen, aber wenn du 'nen alphakanal haben willst, sollteste lieber tga verwenden. bei png hast du nämlich einen qualitätsverlust durch das speichern und das kann man bei texturen eigentlich gar nicht gebrauchen.
falls dein loader kein tga laden kann, kannst du dir ja mal ne spezifikation raussuchen. ich hatte vor jahren mal bild-loader für turbo pascal implementiert. soweit ich mich erinnern kann, konnte man die bmp-lade-routine nahezu übernehmen. oder du nimmst gleich 'n loader , der tga kann.
Danke für den Tipp. =)
Der loader kann auch tga laden ... das war mir soweit egal und jetzt wenn du das sagst nehm ich auch gern tga aber wenn ich mein Bild als tga speicher und dann lade. Hab ich ein weißes Viereck wenn ich die Textur verwende. =(
_________________ "Man könnte auch aus den Fehlern anderer lernen aber es scheint man lernt lieber aus seinen eigenen"
Registriert: Do Feb 21, 2008 10:49 Beiträge: 55 Wohnort: Dresden
Programmiersprache: FPC/Linux
dann kann es sein, dass dein loader keine komprimierten tgas liest. musste ma versuchen ohne kompression zu speichern. manche loader verkraften auch nur 32bit bilder. musste auch mal versuchen anzupassen.
Ich hab jetzt eine neue Textur angelegt. Bist du dir sicher (sorry dass ich frag ... ich weiß wenn man keine Ahung hat soll man manchmal auch einfach mal die Fresse halten =)) aber da wo das bild Tranzparent ist da bekomm ich beim rendern weiße Stellen.
_________________ "Man könnte auch aus den Fehlern anderer lernen aber es scheint man lernt lieber aus seinen eigenen"
Registriert: Do Jun 28, 2007 17:58 Beiträge: 193
Programmiersprache: Pascal, C
Hallo,
PNG ist kein verlustbehaftetes Format. Daher ist es auch für 3D-Anwendungen super zu gebrauchen, und benötigt gleichzeitig noch weniger Speicherplatz als Formate wie zum Beispiel TGA.
Um Texturen mittels PNGImage zu laden, kannst du über die Pointer "Scanline" und "AlphaScanline" (die du vorher eventuell in einen gemeinsamen Speicherbereich kopieren musst) die Bilddaten direkt mittels glTexImage2D in eine Textur laden. Das könnte ungefähr so aussehen:
Registriert: Do Feb 21, 2008 10:49 Beiträge: 55 Wohnort: Dresden
Programmiersprache: FPC/Linux
igel457 hat geschrieben:
Hallo,
PNG ist kein verlustbehaftetes Format. Daher ist es auch für 3D-Anwendungen super zu gebrauchen, und benötigt gleichzeitig noch weniger Speicherplatz als Formate wie zum Beispiel TGA.
tatsächlich. ich hab das mit jpg durcheinander gehauen, sorry . naja, ich bleibe trotzdem lieber bei meinem tga (ich verwende grundsätzlich nur dateiformate, die ich ohne weiteres verstehe und selber laden kann^^).
aber das weiß an den tranzparenten stellen ist mir trotzdem unerklärlich. was hasten für alpha-func gesetzt?
also das png kein verlustbehaftetes Format ist hab ich mir fast schon gedacht. ^^ soweit kein Problem. An Igel 457. Jetzt würde ich gerne verstehen was du da geschrieben hast. Ich kenn mich mit Pointern und eigenen Klassen alles was so in die richtung geht noch nicht besonders aus. Ich programmier noch nicht sooo lang. Ich bin kein totaler anfänger aber mit sowas hab ich mich noch nicht beschäftigt.
An McWurscht. Ich hab für Alpha_func nichts gesetzt. Ich dachte wenn ich es auf seinen Grundeinstellungen lasse ist das erstmal ok. Und bei Tga gibt es doch nur Tranzparent, oder nicht Tranzparent oder? Also halbdurchsichtig und Tranzparenzstufen kann man damit nicht benutzen oder geht das mit tga auch?
_________________ "Man könnte auch aus den Fehlern anderer lernen aber es scheint man lernt lieber aus seinen eigenen"
Registriert: Do Feb 21, 2008 10:49 Beiträge: 55 Wohnort: Dresden
Programmiersprache: FPC/Linux
Blackmind hat geschrieben:
Und bei Tga gibt es doch nur Tranzparent, oder nicht Tranzparent oder? Also halbdurchsichtig und Tranzparenzstufen kann man damit nicht benutzen oder geht das mit tga auch?
bei tga hat der alpha-kanal genau dieselben werte-möglichkeiten, wie rot, grün und blau auch. du kannst also auch stufenweise transparenz in einer textur einbauen.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.