Puede encontrar la fuente de las operaciones de mezcla aquí: surface.h
Básicamente, ADD suma los dos píxeles de origen y clips El resultado al 255. SUB resta los dos píxeles y clips a 0.
MULT
: result = (p1 * p2)/256
MIN
: Seleccionar el valor inferior de cada canal (no todo el píxel), por lo que si es pixel1 (100,10,0)
y pixel2 es (0,10,100)
, se obtiene (0,10,0)
MAX
: Opuesto a MIN (es decir (100,10,100)
)
Y hay un modo de mezcla adicional que no es obvio en los documentos: 0
(o simplemente deje el parámetro fuera). Este modo "sellará" la superficie de la fuente en el destino. Si la superficie de origen tiene un canal alfa, esto determinará qué tan "fuerte" es cada píxel (0
= sin efecto, 255
= copia de píxeles, 128
: result = .5*source + .5*destination
).
Efectos útiles: Para oscurecer un área determinada, utilice el modo de combinación 0, complete la fuente/superficie de sello negra y configure alfa en 10
: (0,0,0,10)
.
Para aclararlo, utilice blanco (255,255,255,10)
.
¿No debería ser el resultado para el ejemplo MIN (0, 10, 0)? –
@AleksiTorhamo: Tienes toda la razón. Fijo. –