glBlendEquation: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
()
 
(GL_MAX)
Zeile 48: Zeile 48:
 
|}</div>
 
|}</div>
 
Für die nachfolgenden Gleichungen wird angenommen, dass die Werte im Bereich [0, 1] liegen.
 
Für die nachfolgenden Gleichungen wird angenommen, dass die Werte im Bereich [0, 1] liegen.
 +
Die Ausgangs- und Ziel-Farbkomponenten werden als (Rs, Gs, Bs, As) (Source=Ausgangswerte) beziehungsweise (Rd, Gd,  Bd,  Ad) (Destination=Ziel-Werte) bezeichnet. Die resultierende Farbe wird als (Rr, Gr, Br, Ar) bezeichnet. Die Ausgangs- und Ziel-Blendfaktoren werden als (sR, sG, sB, sA) beziehungsweise (dR,  dG, dB, dA) bezeichnet.
  
<b><i>
+
:'''GL_FUNC_ADD'''
      In  the  equations that follow, source and destination color components
+
::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.  
      are referred to as (Rs, Gs, Bs, As ) and (Rd, Gd,  Bd,  Ad  ),  respec-respectively.
 
      tively.  The  result  color  is referred to as (Rr, Gr, Br, Ar ).  The
 
      source and destination blend factors are denoted (sR, sG, sB, sA )  and
 
      (dR,  dG, dB, dA ), respectively.  For these equations all color compo-components
 
      nents are understood to have values in the range [0, 1].
 
 
 
      GL_FUNC_ADD
 
              sets the blend equation so that the source and destination  data
 
              are  added.  Each component of the source color is multiplied by
 
              the corresponding source factor, then each component of the des-destination
 
              tination  color  is  multiplied by the corresponding destination
 
              factor. The result is the componentwise sum of  the  two  prod-products,
 
              ucts, clamped to the range [0, 1].
 
 
 
  
 
                     Rr=min(1,RssR+RddR)Gr = min (1, Gs sG + Gd dG )
 
                     Rr=min(1,RssR+RddR)Gr = min (1, Gs sG + Gd dG )
 
                     Br=min(1,BssB+BddB)Ar = min (1, As sA + Ad dA )
 
                     Br=min(1,BssB+BddB)Ar = min (1, As sA + Ad dA )
  
      GL_FUNC_SUBTRACT
+
 
              Is like GL_FUNC_ADD except the product of the destination factor
+
:'''GL_FUNC_SUBTRACT'''
              and the destination color is componentwise subtracted  from  the
+
::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.
              product  of  the source factor and the source color. The result
 
              is clamped to the range [0, 1].
 
  
 
                     Rr = max (0 , Rs sR - Rd dR )
 
                     Rr = max (0 , Rs sR - Rd dR )
Zeile 79: Zeile 64:
 
                     Br = max (0 , Bs sB - Bd dB )
 
                     Br = max (0 , Bs sB - Bd dB )
 
                     Ar = max (0 , As sA - Ad dA )
 
                     Ar = max (0 , As sA - Ad dA )
 
+
:'''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.
              Is like GL_FUNC_ADD except the product of the source factor  and
 
              the source color is componentwise subtracted from the product of
 
              the destination factor and the destination color. The result is
 
              clamped to the range [0, 1].
 
  
 
                     Rr=max(0,RddR-RssR)Gr = max (0 , Gd dG - Gs sG )
 
                     Rr=max(0,RddR-RssR)Gr = max (0 , Gd dG - Gs sG )
 
                     Br=max(0,BddB-BssB)Ar = max (0 , Ad dA - As sA )
 
                     Br=max(0,BddB-BssB)Ar = max (0 , Ad dA - As sA )
  
      The  GL_MIN and GL_MAX equations are useful for applications that ana-analyze
+
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]].
      lyze
 
      image data (image thresholding against a constant color, for  example).
 
      The  GL_FUNC_ADD equation is useful for antialiasing and transparency,
 
      among other things.</i></b>
 
  
 
Im Initialzustand ist die Blendgleichung auf '''GL_FUNC_ADD''' gesetzt.
 
Im Initialzustand ist die Blendgleichung auf '''GL_FUNC_ADD''' gesetzt.
  
 
<br>
 
<br>
 +
 
== Hinweise ==
 
== 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.
 
'''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.

Version vom 28. September 2005, 13:01 Uhr

Hinweis: Dieser Artikel ist noch unvollständig.
(Mehr Informationen/weitere Artikel)

{{{1}}}

Incomplete.jpg

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 angenommen, dass die Werte im Bereich [0, 1] liegen. Die Ausgangs- und Ziel-Farbkomponenten werden als (Rs, Gs, Bs, As) (Source=Ausgangswerte) beziehungsweise (Rd, Gd, Bd, Ad) (Destination=Ziel-Werte) bezeichnet. Die resultierende Farbe wird als (Rr, Gr, Br, Ar) bezeichnet. Die Ausgangs- und Ziel-Blendfaktoren werden als (sR, sG, sB, sA) beziehungsweise (dR, dG, dB, dA) bezeichnet.

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.
                    Rr=min(1,RssR+RddR)Gr = min (1, Gs sG + Gd dG )
                    Br=min(1,BssB+BddB)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.
                    Rr = max (0 , Rs sR - Rd dR )
                    Gr = max (0 , Gs sG - Gd dG )
                    Br = max (0 , Bs sB - Bd dB )
                    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.
                    Rr=max(0,RddR-RssR)Gr = max (0 , Gd dG - Gs sG )
                    Br=max(0,BddB-BssB)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


Siehe auch

glGetString, glBlendColor, glBlendFunc