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

Aktuelle Zeit: Mi Jul 16, 2025 19:17

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glBitmap und Alphakanal
BeitragVerfasst: So Mär 30, 2008 18:20 
Offline
DGL Member

Registriert: So Jul 17, 2005 12:59
Beiträge: 89
Hi,

nachdem ich nun von der Textures.pas auf die glBitmap.pas umgestiegen bin, habe ich ein Problem mit dem Alphakanal von Texturen:

Code:
  1.  
  2.   glEnable(GL_DEPTH_TEST);
  3.   glDepthFunc(GL_ALWAYS);                                            
  4.   gluPerspective(45,form1.Width/form1.Height,0.1,250.0);
  5.   glMatrixMode(GL_MODELVIEW);
  6.   glEnable(GL_BLEND);
  7.   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  8.  
  9.   TexLoadInProgress := TglBitMap2D.Create('d:\test.jpg');
  10.   TexLoadInProgress.AddAlphaFromColorKey(255, 255, 255);
  11.   TexLoadInProgress.GenTexture(false);
  12.  


Ergibt folgendes Bild (Links ohne Alpha, Rechts mit):

Bild

Auch das Laden des Alpakanals direkt aus einer TGA Datei (mit GIMP erstellt) resultiert in einem ähnlichen Ergebnis.

Was mache ich nur falsch ;) ?

Viele Grüße
Pascal


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 30, 2008 18:29 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Gib mal das Bild. Ich vermute einfach, dass dein Bild 'defekt' ist, daher nicht überall reines Weiß ist.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 30, 2008 18:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das Bild ist vermutlich in Ordnung. Denn JPEG ist ein verlustbehaftetes Bild und bei dem ist es möglich, dass sich die Farben verändern. Das liegt an der Kompression und ist bei JPEG normal. Man kann auch schön größere Aussparungen erkennen. Die typischen JPEG Artefakte.

Alternativ solltest du ein Format wählen was nicht so komprimiert ist. Wichtig dabei. NICHT das JPEG als TGA speichern. Denn dabei bleiben dann verlustfrei die bereits existierenden Bildfehler erhalten.

Falls es geht kannst du aber evtl auch eine Abweichung (der vierte Parameter der Funktion) angeben. Dann wird nicht nur exakt die Farbe als Alpha benutzt sondern +- das was du angegeben hast. Also 5 oder so. Ändert aber nichts daran, dass JPEG keine exakten Farben darstellt sondern vertuscht es nur. Bedeutet. Es kann jederzeit wieder auftreten.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 30, 2008 19:42 
Offline
DGL Member

Registriert: So Jul 17, 2005 12:59
Beiträge: 89
Ok, bei dem JPEG lag es wohl an der Komprimierung.

Aber wieso funktioniert das nicht, wenn ich den AlphaKanal direkt aus einer TGA Datei lade?

Ich habe eine TGA Datei, der hab ich den Alphakanal schon mit Gimp eingepflanzt. Wenn ich jetzt diese Datei lade und anzeige, sieht das ähnlich aus..:

Code:
  1.  
  2.   TexLoadInProgress := TglBitMap2D.Create('d:\load1.tga');
  3.   TexLoadInProgress.AddAlphaFromFile('d:\load1.tga');
  4.  


Bild

Die TGA Datei habe ich auch mal mit angehängt.

Edit: Mit der Textures.pas funktioniert die TGA Datei ohne Probleme.

Grüße
Pascal


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Zuletzt geändert von Passi am So Mär 30, 2008 19:49, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 30, 2008 19:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wenn die Datei bereits einen Alpha hat brauchst du den nicht extra noch mal zu laden. Um genau zu sein würdest du den dadurch sogar kaputt machen. Denn AddAlphaFrom benutzt die RGB Werte für den Alpha. Wenn das Bild RGBA ist dann musst du nur LoadFromFile oder via Create machen und gut ist.

Der Anhang geht bei mir irgendwie nicht. Also ich kanns nicht ziehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 30, 2008 19:52 
Offline
DGL Member

Registriert: So Jul 17, 2005 12:59
Beiträge: 89
Ohje, ich hab den Fehler gefunden.
Mein Alphakanal in der TGA Datei war einfach Schrott :oops: . Hatte wohl die falsche Farbe erwischt beim Erstellen.

Das hat dazu geführt, das der Hintergrund noch etwas zu sehen war, und ich dachte er hat den Alphakanal nicht geladen.

Ok, nun funktioniert alles. Danke für Eure Hilfe :) !

Viele Grüße
Pascal


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]