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

Aktuelle Zeit: Sa Jul 05, 2025 23:02

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mo Aug 03, 2009 21:58 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
hi liebe com,

ich habe folgendes problem, ich habe eine textur aus ner tga datei geladen, diese hat den alphawert so, dass langsam je mehr man in die eine richtung geht der hintergrund durchschimmern soll ...
aber irgendwie gibt es bei mir nur ne "harte" kante, statt nem weichen verlauf ...

ich häng euch mal das bild in den anhang

cuz bubble


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

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 03, 2009 23:57 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Du darfst nicht den Alphatest nehmen sondern musst es blenden.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 04, 2009 00:24 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
klappt immernoch nich :'(

hier is erstma mein quelltext:
Code:
  1. var t:ttextur;
  2. begin
  3.   glDisable(GL_TEXTURE_2D);
  4.   glBegin(GL_QUADS);
  5.     glColor4f(1,1,1,1);
  6.     glVertex3f(-4.2,-2.9,0.003);
  7.     glVertex3f(-4.2,-2.3,0.003);
  8.     glVertex3f(+4.2,-2.3,0.003);
  9.     glVertex3f(+4.2,-2.9,0.003);
  10.   glEnd();
  11.   glEnable(GL_TEXTURE_2D);
  12.   glDisable(GL_ALPHA_TEST);
  13.   glDisable(GL_DEPTH_TEST);
  14.   glEnable(GL_BLEND);
  15.   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  16.   if gettextur(T_GUI_BACKGROUND,t)then
  17.   begin
  18.     t.textur.Bind();
  19.   end
  20.   else
  21.   begin
  22.     form1.gettextur(-1,t);
  23.     t.textur.Bind();
  24.   end;
  25.   glBegin(GL_QUADS);
  26.     glColor3f(1,1,1);
  27.     glTexcoord2f(0,0); glVertex3f(-4.2,-2.9,0.003);
  28.     glTexcoord2f(0,1); glVertex3f(-4.2,-2.3,0.003);
  29.     glTexcoord2f(1,1); glVertex3f(+4.2,-2.3,0.003);
  30.     glTexcoord2f(1,0); glVertex3f(+4.2,-2.9,0.003);
  31.   glEnd();
  32.   glDisable(GL_BLEND);
  33.   glEnable(GL_DEPTH_TEST);
  34.   glEnable(GL_ALPHA_TEST);


irgendwie wird aus dem alpha weiß, eigentlich logisch weil ja das eine quad weiß is, aber sobald ich dem ding nen alphawert <1 gebe blendet ogl die textur nur noch in den hintergrund (das glClearColor ding)...
und das is doof :/

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 04, 2009 10:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also, wenn ich das richtig sehe, dann zeichnest du zu erst ein weißes Quad und anschließend blendest du deine Textur darüber. Du hast jetzt das Problem, dass dein erstes Quad weg ist sobald du ihm einen Alphawert < 1 verpasst. Ich würde behaupten, dann ist dein Alphatest falsch eingestellt. Denn normal werden Alphawerte komplett immer ignoriert. Es sei denn sie werden durch den Alphatest oder Blending ausgewertet und verrechnet.

Ich vermute mal du möchtest das weiße Quad auch etwas transparent haben oder? Dann musst du das wie folgt vorgehen.
- Alphatest deaktivieren
- Blending aktivieren

- Weißes Quad zeichnen
- Tiefentest deaktivieren
- Texturiertes Quad zeichnen

- Blending deaktivieren


Generell würde ich dir aber eher ans Herz legen, dass du so etwas wie den Alphatest nicht dauerhaft aktiviert hast sondern nur dann, wenn du den auch brauchst. Sonst kanns leicht passieren, dass die Grafikkarte mehr machen muss bzw du dich auch mit den States verzettelst. Denn bei deinen Quads müsstest du jetzt genau wissen was du sonst irgendwann noch aktiviert hattest.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 04, 2009 10:48 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
so das ergebnis ist jetzt zwar schon besser aber immernoch nich das was ich will ...
also das alpha wird jetzt schon richtig angezeigt ... ich hab aber noch dahinter nen haufen andere texturierte quads, allerdings mit abstand ... statt diese durch zu sehen, sehe ich da wo transparenz is, nur die löschfarbe von glClearColor :(

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 04, 2009 11:42 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
thema hat sich erledigt xD

mein fehler war das ich das quad das geblendet wird als erstes gemalt hab und dann den rest >.<

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


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 6 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]