glBlendEquation: Unterschied zwischen den Versionen
(→GL_MAX) |
Flash (Diskussion | Beiträge) (Teil war bereits in der Tabelle enthalten, Formeln als Tabelle) |
||
Zeile 47: | Zeile 47: | ||
|Die Quellblendfaktoren und Zielblendfaktoren. | |Die Quellblendfaktoren und Zielblendfaktoren. | ||
|}</div> | |}</div> | ||
− | Für die nachfolgenden Gleichungen wird angenommen, dass die Werte im Bereich [0, 1] liegen | + | Für die nachfolgenden Gleichungen wird weiterhin angenommen, dass die Werte im Bereich [0, 1] liegen. |
− | |||
:'''GL_FUNC_ADD''' | :'''GL_FUNC_ADD''' | ||
::legt die Blendgleichung so, dass die Ausgans- und Zielwerte addiert werden. Jede Komponente der Ausgangsfarbe wird mit dem entsprechenden Ausgangs-Faktor mulipliziert, anschließend wird jede Komponente der Zielfarbe mit dem entsprechenden Zielfaktor multipliziert. Das Ergbnis ist dann die Summer der zwei Produkte, angepasst an den [0,1]-Bereich. | ::legt die Blendgleichung so, dass die Ausgans- und Zielwerte addiert werden. Jede Komponente der Ausgangsfarbe wird mit dem entsprechenden Ausgangs-Faktor mulipliziert, anschließend wird jede Komponente der Zielfarbe mit dem entsprechenden Zielfaktor multipliziert. Das Ergbnis ist dann die Summer der zwei Produkte, angepasst an den [0,1]-Bereich. | ||
− | + | <div align="center"> | |
− | + | {| {{Prettytable}} | |
+ | !Rot | ||
+ | |Rr = min (1, Rs sR + Rd dR ) | ||
+ | |- | ||
+ | !Grün | ||
+ | |Gr = min (1, Gs sG + Gd dG ) | ||
+ | |- | ||
+ | !Blau | ||
+ | |Br = min (1, Bs sB + Bd dB ) | ||
+ | |- | ||
+ | !Alpha | ||
+ | |Ar = min (1, As sA + Ad dA ) | ||
+ | |}</div> | ||
Zeile 60: | Zeile 71: | ||
::Macht das selbe wie '''GL_FUNC_ADD''', außer, dass das Produkt von Zielfaktor und Zielfarbe komponentenweise vom Produkt von Ausgangsfaktor und Ausgangsfarbe abgezogen wird. Das Ergebnis wird wieder an den [0,1]-Bereich angepasst. | ::Macht das selbe wie '''GL_FUNC_ADD''', außer, dass das Produkt von Zielfaktor und Zielfarbe komponentenweise vom Produkt von Ausgangsfaktor und Ausgangsfarbe abgezogen wird. Das Ergebnis wird wieder an den [0,1]-Bereich angepasst. | ||
− | + | <div align="center"> | |
− | + | {| {{Prettytable}} | |
− | + | !Rot | |
− | + | |Rr = max (0 , Rs sR - Rd dR ) | |
+ | |- | ||
+ | !Grün | ||
+ | |Gr = max (0 , Gs sG - Gd dG ) | ||
+ | |- | ||
+ | !Blau | ||
+ | |Br = max (0 , Bs sB - Bd dB ) | ||
+ | |- | ||
+ | !Alpha | ||
+ | |Ar = max (0 , As sA - Ad dA ) | ||
+ | |}</div> | ||
+ | |||
+ | |||
:'''GL_FUNC_REVERSE_SUBTRACT''' | :'''GL_FUNC_REVERSE_SUBTRACT''' | ||
::Macht das selbe wie '''GL_FUNC_ADD''', außer, dass das Produkt von Ausgangsfaktor und Ausgangsfarbe komponentenweise vom Produkt von Zielfaktor und Zielfarbe abgezogen wird. Das Ergebnis wird wieder an den [0,1]-Bereich angepasst. | ::Macht das selbe wie '''GL_FUNC_ADD''', außer, dass das Produkt von Ausgangsfaktor und Ausgangsfarbe komponentenweise vom Produkt von Zielfaktor und Zielfarbe abgezogen wird. Das Ergebnis wird wieder an den [0,1]-Bereich angepasst. | ||
− | + | <div align="center"> | |
− | + | {| {{Prettytable}} | |
+ | !Rot | ||
+ | |Rr = max (0 , Rd dR - Rs sR ) | ||
+ | |- | ||
+ | !Grün | ||
+ | |Gr = max (0 , Gd dG - Gs sG ) | ||
+ | |- | ||
+ | !Blau | ||
+ | |Br = max (0 , Bd dB - Bs sB ) | ||
+ | |- | ||
+ | !Alpha | ||
+ | |Ar = max (0 , Ad dA - As sA ) | ||
+ | |}</div> | ||
+ | |||
Die '''GL_MIN'''-und '''GL_MAX'''-Gleichungen sind für Programme hilfreich, die Bilddaten analysieren - zum Beispiel das Annähern an eine konstante Farbe. Die '''GL_FUNC_ADD'''-Gleichung ist hilfreich, unter anderem, für [[Antialiasing]] und [[Transparenz]]. | Die '''GL_MIN'''-und '''GL_MAX'''-Gleichungen sind für Programme hilfreich, die Bilddaten analysieren - zum Beispiel das Annähern an eine konstante Farbe. Die '''GL_FUNC_ADD'''-Gleichung ist hilfreich, unter anderem, für [[Antialiasing]] und [[Transparenz]]. |
Version vom 28. September 2005, 18:43 Uhr
(Mehr Informationen/weitere Artikel) {{{1}}} |
Inhaltsverzeichnis
glBlendEquation
Name
glBlendEquation - setzt die Blendgleichung. (siehe Blending)
Delphi-Spezifikation
procedure glBlendEquation(mode: TGLenum);
Parameter
mode | Bestimmt wie Quell- und Zielfarbe miteinander kombiniert werden. Als Werte werden nur folgende symbolische Konstanten akzeptiert: GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MAX oder GL_MIN |
---|
Beschreibung
Die Blendgleichung bestimmt, wie neue Pixel (die "Quellfarbe") mit den Pixeln im Framebuffer (die "Zielfarbe") kombiniert werden.
GL_MIN
- setzt die Blendgleichung so, dass die Farbkomponenten von Quell- und Zielfarbe jeweils einzeln miteinander verglichen werden, und der kleinere Wert wird übernommen.
GL_MAX
- setzt die Blendgleichung so, dass die Farbkomponenten von Quell- und Zielfarbe jeweils einzeln miteinander verglichen werden, und der größere Wert wird übernommen.
Die restlichen Blendgleichungen benutzen die Quell- und Zielblendfaktoren die mittels glBlendFunc definiert wurden. Für nähere Erklärungen zu den Faktoren lesen Sie den Artikel glBlendFunc
In den nun nachfolgenden Gleichungen werden einige "Symbole" benutzt welche die folgenden Bedeutungen haben:
Symbol | Bedeutung |
---|---|
(Rs, Gs, Bs, As ) und (Rd, Gd, Bd, Ad ) | Die Farbkombonenten der Quellfarbe (Source) und Zielfarbe(destination). |
(Rr, Gr, Br, Ar ) | Die Farbkombonenten der resultierenden Farbe. |
(sR, sG, sB, sA ) und (dR, dG, dB, dA ) | Die Quellblendfaktoren und Zielblendfaktoren. |
Für die nachfolgenden Gleichungen wird weiterhin angenommen, dass die Werte im Bereich [0, 1] liegen.
- GL_FUNC_ADD
- legt die Blendgleichung so, dass die Ausgans- und Zielwerte addiert werden. Jede Komponente der Ausgangsfarbe wird mit dem entsprechenden Ausgangs-Faktor mulipliziert, anschließend wird jede Komponente der Zielfarbe mit dem entsprechenden Zielfaktor multipliziert. Das Ergbnis ist dann die Summer der zwei Produkte, angepasst an den [0,1]-Bereich.
Rot | Rr = min (1, Rs sR + Rd dR ) |
---|---|
Grün | Gr = min (1, Gs sG + Gd dG ) |
Blau | Br = min (1, Bs sB + Bd dB ) |
Alpha | Ar = min (1, As sA + Ad dA ) |
- GL_FUNC_SUBTRACT
- Macht das selbe wie GL_FUNC_ADD, außer, dass das Produkt von Zielfaktor und Zielfarbe komponentenweise vom Produkt von Ausgangsfaktor und Ausgangsfarbe abgezogen wird. Das Ergebnis wird wieder an den [0,1]-Bereich angepasst.
Rot | Rr = max (0 , Rs sR - Rd dR ) |
---|---|
Grün | Gr = max (0 , Gs sG - Gd dG ) |
Blau | Br = max (0 , Bs sB - Bd dB ) |
Alpha | Ar = max (0 , As sA - Ad dA ) |
- GL_FUNC_REVERSE_SUBTRACT
- Macht das selbe wie GL_FUNC_ADD, außer, dass das Produkt von Ausgangsfaktor und Ausgangsfarbe komponentenweise vom Produkt von Zielfaktor und Zielfarbe abgezogen wird. Das Ergebnis wird wieder an den [0,1]-Bereich angepasst.
Rot | Rr = max (0 , Rd dR - Rs sR ) |
---|---|
Grün | Gr = max (0 , Gd dG - Gs sG ) |
Blau | Br = max (0 , Bd dB - Bs sB ) |
Alpha | Ar = max (0 , Ad dA - As sA ) |
Die GL_MIN-und GL_MAX-Gleichungen sind für Programme hilfreich, die Bilddaten analysieren - zum Beispiel das Annähern an eine konstante Farbe. Die GL_FUNC_ADD-Gleichung ist hilfreich, unter anderem, für Antialiasing und Transparenz.
Im Initialzustand ist die Blendgleichung auf GL_FUNC_ADD gesetzt.
Hinweise
glBlendEquation ist Teil des GL_ARB_imaging Befehlssatzes. glBlendEquation ist nur vorhanden, wenn GL_ARB_imaging in dem String enthalten ist, der von glGetString mit dem Argument GL_EXTENSIONS geliefert wird.
Die GL_MIN und GL_MAX Gleichungen nutzen nicht die Quell- und Zielfaktoren sondern nur die Quell- und Zielfarben.
Fehlermeldungen
GL_INVALID_ENUM wird generiert wenn mode nicht GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MAX oder GL_MIN zugeordnet wurde.
GL_INVALID_OPERATION wird generiert wenn glBlendEquation innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit Token GL_BLEND_EQUATION