Pergunta

Surface.blit tem um novo parâmetro em 1,8: mistura. Os seguintes valores são definidos:

  • BLEND_ADD
  • BLEND_SUB
  • BLEND_MULT
  • BLEND_MIN
  • BLEND_MAX
  • BLEND_RGBA_ADD
  • BLEND_RGBA_SUB
  • BLEND_RGBA_MULT
  • BLEND_RGBA_MIN
  • BLEND_RGBA_MAX
  • BLEND_RGB_ADD
  • BLEND_RGB_SUB
  • BLEND_RGB_MULT
  • BLEND_RGB_MIN
  • BLEND_RGB_MAX

Alguém pode explicar o que significa esses modos?

Foi útil?

Solução

Você pode encontrar a fonte para as operações de mistura aqui: surface.h

Basicamente, ADD adiciona os dois pixels de origem e clipes o resultado em 255. subtrai SUB os dois pixels e clips em 0.

MULT: result = (p1 * p2) / 256

MIN: Selecione o valor mais baixo de cada canal (não todo o pixel), por isso, se Pixel1 é (100,10,0) e pixel2 é (0,10,100), você começa (0,10,0)

MAX: frente de MIN (isto é (100,10,100))

E há um modo de mistura adicional que não é óbvio a partir docs: 0 (ou apenas deixar o parâmetro de saída). Este modo vai "carimbar" a superfície de origem para o destino. Se a superfície de fonte tem um canal alfa, isso será determinar como "forte" cada pixel é (0 = nenhum efeito, 255 = copiar pixel, 128: result = .5*source + .5*destination)

.

efeitos úteis: Para escurecer uma determinada área, o modo de utilização mistura 0, preencher o / black fonte selo superfície e alfa conjunto para 10:. (0,0,0,10)

Para iluminá-lo, use (255,255,255,10) branco.

Outras dicas

Esses são modos de mistura para a composição de imagens em cima uns dos outros. O nome do modo de mesclagem já diz que a operação subjacente.

As constantes BLEND_* são simplesmente nomes alternativos para as constantes BLEND_RGB_* e as variantes BLEND_RGBA_* operar em todos os quatro canais (incluindo o canal alfa), em oposição a somente RGB.

Para obter informações gerais sobre os diferentes modos de mistura e seus respectivos efeitos, consulte aqui .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top