B
glBlendFunc
Chapter 2
34
Parameters
In the table,
i = min(A
s
, k
A
- A
d
) / k
A
To determine the blended RGBA values of a pixel when drawing in RGBA mode, the
system uses the following equations:
R
d
= min(k
R
, R
s
s
R
+ R
d
d
R
)
G
d
= min(k
G
, G
s
s
G
+ G
d
d
G
)
B
d
= min(k
B
, B
s
s
B
+ B
d
d
B
)
A
d
= min(k
A
, A
s
s
A
+ A
d
d
A
)
Despite the apparent precision of the above equations, blending arithmetic is not exactly
specified, because blending operates with imprecise integer color values. However, a
blend factor that should be equal to 1 is guaranteed not to modify its multiplicand, and a
blend factor equal to 0 reduces its multiplicand to 0. For example, when sfactor is
GL_SRC_ALPHA, dfactor is GL_ONE_MINUS_SRC_ALPHA, and A
s
is equal to k
A
, the
equations reduce to simple replacement:
R
d
= R
s
G
d
= G
s
B
d
= B
s
A
d
= A
s
Table 2-1
Parameter
(f
R
, f
G
, f
B
, f
A
)
GL_ZERO (0, 0, 0, 0)
GL_ONE (1, 1, 1, 1)
GL_SRC_COLOR (R
s
/k
R
, G
s
/k
G
, B
s
/k
B
, A
s
/k
A
)
GL_ONE_MINUS_SRC_COLOR (1,1,1,1) - (R
s
/k
R
, G
s
/k
G
, B
s
/k
B
, A
s
/k
A
)
GL_DST_COLOR (R
d
/k
R
, G
d
/k
G
, B
d
/k
B
, A
d
/k
A
)
GL_ONE_MINUS_DST_COLOR (1, 1, 1, 1) - (R
d
/k
R
, G
d
/k
G
, B
d
/k
B
, A
d
/k
A
)
GL_SRC_ALPHA (A
s
/k
A
, A
s
/k
A
, A
s
/k
A
, A
s
/k
A
)
GL_ONE_MINUS_SRC_ALPHA (1, 1, 1, 1) - (A
s
/k
A
, A
s
/k
A
, A
s
/k
A
, A
s
/k
A
)
GL_DST_ALPHA (A
d
/k
A
, A
d
/k
A
,A
d
/k
A
,A
d
/k
A
)
GL_ONE_MINUS_DST_ALPHA (1, 1, 1, 1) - (A
d
/k
A
, A
d
/k
A
,A
d
/k
A
,A
d
/k
A
)
GL_SRC_ALPHA_SATURATE (i, i, i,1)