Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

[Shader] Posterização / Alto Contraste

Sprites, Modelos 3D, Exemplos, Áudios, Extensões e outros Recursos
Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

[Shader] Posterização / Alto Contraste

Mensagem por All-x » Ter Mai 03, 2016 7:13 pm

Nome: Posterização / Alto Contraste 
Versão: GameMaker: Studio
Imagens e Videos: 


Imagem
Vertex Shader: Clique para ver o conteúdo
Fragment Shader: Clique para ver o conteúdo
Script: Clique para ver o conteúdo
Instruções de uso: 

Esse efeito tem o nome de 'Posterizar' ou também podemos falar em 'alto/baixo contraste'. Ele faz uma limitação de cores a serem usadas através de cálculos de aproximação.  No Exemplo uso um script (srcColorAmount) para modificar a quantidade de cores por canal (RGB), ou seja se colocar o valor 2 cada canal poderá usar usar dois valores (0 ou 255) tendo no máximo 8 cores disponíveis (Preto, Branco, Vermelho, Magenta, Ciano, Azul, Amarelo e Verde), ou seja a paleta de 3 bits SECAM.

Se quiser simular algo perto do Nintendinho (NES) coloque o valor 4 e teremos 64 cores (4 * 4 * 4). Porém o NES possui apenas 54 cores usáveis, ou seja o resultado fica parecido, porém não idêntico.

O valor máximo é 256 cores por canal, ou seja 24 Bits - TrueColor.

Para usar o Shader em toda a tela (Como no exemplo) basta:

- Selecionar o Shader no Evento Draw Begin (Pois deve ser ativado antes de qualquer coisa ser desenhada [Ver referência]);
- Usar o script srcColorAmount para trocar quantidade de cores;
- Coloque o shader_reset no Evento Draw End.

Para usar em algumas sprites ou backgrounds (No evento Draw):

- Selecionar o Shader;
- Usar o srcColorAmount para trocar quantidade de cores;
- Desenhar o que você quer;
- Reiniciar o Shader com shader_reset().

Download:

DOWNLOAD - EXEMPLO
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante