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

Aktuelle Zeit: Fr Jul 18, 2025 04:39

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Texturen langsam faden lassen?
BeitragVerfasst: Sa Sep 12, 2009 15:16 
Offline
DGL Member

Registriert: So Jun 01, 2008 16:06
Beiträge: 31
Wohnort: Nürtingen
Ich habe eine Spielfigur in 2D. Und als Effekt soll sie alle paar Zeiteinheiten "Abbilder" hinterlassen.
Das wollte ich eben so machen, dass da Texturen in der Luft stehen bleiben und langsam durchsichtig werden, aber wie macht man das?

Das einzige, was im dglwiki halbwegs passend aussah war Multitexturing. Aber ich wollte wissen, ob es andere Möglichkeiten gibt, weil ich ja keine Multitextur an sich will, sondern höchstens einen 2. Alphakanal, der großflächig immer dunkler wird..

Gibt es einen einfacheren Weg, beim Zeichnen des Objekts mit der Textur zu sagen, dass das gesamte Objekt nur die und die Sichtbarkeit besitzt?

_________________
blub.. ? oo''


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 12, 2009 15:54 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Die Lösung mit Multitexture insbesondere im Zusammenhang mit Shadern bietet einige sehr interessante Möglichkeiten Übergänge zu ermöglichen. Z.B. bei Landschaften erlaubt es ein regelrechtes Zeichnen der Alpha-Kanäle ohne das man selbst als Entwickler einen wirklichen Mehraufwand hat. Insbesondere mehrere Texturunits sollten alle heutigen Grafikkarten mehr haben und jene die es nicht haben, würde ich nicht mehr als "Zielgruppe" definieren.

Ganz sicher bin ich mir nicht, ob ich die Frage verstehe. Ist dein Problem das freistellen oder das Ausblenden selbst? Letzteres lässt sich problemlos mit Alpha Blending erzielen (siehe Tutorial). Für einen einfachen Übergang würde es ausreichen den Alpha-Kanal als vierte Farbe zu setzen und langsam zu verringern. Dies sollte sich dann als SRC_ALPHA verwenden lassen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 12, 2009 15:55 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 30, 2007 18:35
Beiträge: 331
Du kannst das einfach mit Blending machen:

Code:
  1. glEnable(GL_BLEND);
  2. glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  3.  
  4. glColor4f(1.0, 1.0, 1.0, alpha);
  5.  
  6. //zeichnen
  7.  
  8. glDisable(GL_BLEND);


Als erstes machst du das Blending an und sagst was es tun soll. Danach setzt du die Farbe auf weiß mit dem Alphawert alpha. 1.0 bedeutet komplett undurchsichtig, 0.0 bedeutet komplett transparent.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 12, 2009 18:25 
Offline
DGL Member

Registriert: So Jun 01, 2008 16:06
Beiträge: 31
Wohnort: Nürtingen
Und die Textur wird sich nicht mit dem weißen farbwert beißen?
Die Textur an sich hat halt schon ihren Alpha, weils eben die Spielfigur ist und kan Quadrat.

Ich probier des mal so, danke erstmal ^^

_________________
blub.. ? oo''


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 12, 2009 19:27 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Dieser weiße Farbwert und die Farbe der Textur sollten multipliziert werden. Da x * 1 = x sollte das funktionieren :)

_________________
Yeah! :mrgreen:


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.008s | 14 Queries | GZIP : On ]