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

Aktuelle Zeit: Fr Jul 18, 2025 11:19

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Blending mir fremder Farbe / Alpha
BeitragVerfasst: Do Aug 14, 2003 15:31 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Hmm, ich weiß, dass die Antwort auf meine Frage hier schon irgendwann gegeben wurde, doch ich kann den Thread leider nicht emhr wiedefinden :-(
Naja:
An sich will ich nur wissen, wie man beim Blenden Opengl anweisen kann, einen anderen Alpha-Wert fürs Blenden zu verwenden... Das hat folgenden Grund:

Ich will in meiner Szene mehrer Objekte zeichen, welche theoretisch alle gleich sind (Vertexxe, Farben , usw) ... Nun lasse ich diese Obejkte in einer extra Prozedur schreiben (wäre auch sinnloch immer wieder denselben Source ins Programm zu tippen), blos habe ich nun ein Prob:

Einige dieser Obejklte sollen etwas (andere auch etzwas stärter) Transparent sein, d.h. ich will sie blenden... nun muss ich ne Lösung finden, wie ich vor jedem Blenden mir den Alpha-Wert selbst aussuchen darf, der zur berechnung des Blendfaktors verwendet wird (wäre ja leicht wieder sinnig, die Prozedur zu ändern, weil ich dann alle Obejkte ändern würde....)

Geht sowas? (Und wenn ja, wie? :roll: )

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 14, 2003 15:41 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Auch auf die Gefahr hin das ich dich jetzt komplett falsch verstanden (deine Beschreibung könnte etwas konkreter sein), aber macht glColor4f nicht genau das was du brauchst?Der letzte Wert den glColor4f bekommt ist ja der Alphawert und damit auch Blendfaktor.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 15, 2003 08:08 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Hmm ... da habe ich mich wohl wirklich etwas ungenau ausgedrückt ;-)

Das Ding ist:

Ich habe wie gesagt mehrere Objekte (nicht Texturiert), welche alle gleich aussehen...
Da ich ja recht schreibfaul bin, zeichne ich diese in einer extra Prozedure, welche ich dann blos nur noch aufrufen muss... Mein Problem: einige (nicht alle) dieser Obejkte sollen geblendet werden / einen Alpha-Wert haben (leider bei den geblendeten Obejkten nicht immer derselbe)....
Nun verwende ich bereits innerhalb meiner Zeichen-Prozedur (in der der "Objektsource" steht) mehrfach glcolor3f, da es sich nicht um Einfarbige Objekte handelt....
Mein Anliuegen ist nun dieses:
gibt es eine Methode, mit der ich den für das Blending zugrundeliegenden Alpha-Kanal bestimmen kann undzwar unabhänging von Farbe / Alphawert des Objektes selber (z.B. das Objekt hat einen Alpha-Wert von 1, ich will es nun aber so Transparent erscheinen lassen, als hätte es einen 0.5er Wert)

Ich hoffe das ist einigermaßen verständlich :?

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 15, 2003 09:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Aha...sowas in der Richtung hab ich schon vermutet.Aber AFAIK gibts ausser glColor4f keine Funktion mit der du den zugrundeliegenden Alphawert settzen kannst.Allerdings stellt das doch eigentlich kein Problem dar, und du musst dann doch nur deine Objekt-Zeichen-Routine ungefähr so anpassen :
Code:
  1. procedure DrawObject(pType : TObjectType; pAlpha : Singl);
  2. var
  3.  ...
  4. begin
  5. for i := 0 to High(Vertex) do
  6.  with Vertex[i] do
  7.   begin
  8.   glColor4f(R, G, B, pAlpha);
  9.   glVertex3fv(@Position);
  10.   ...
  11.   end;
  12. ...


Ich hoffe mal das bringst ungefähr rüber und du weisst was ich meine.Du hast ja in deiner Zeichenfunktion für deine Objekte berets glColor-Werte, und nun übergibst du dieser Funktion halt ganz einfach nen globalen Alphawert (pAlpha) und erweiterst deine glColor3f-Aufrufe auf glColor4f mit diesem globalen Alphawert.Das drüfte dein Problem lösen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 19 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.007s | 15 Queries | GZIP : On ]