Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
[Script] Embaçamento e nitidez
4 participantes
Página 1 de 1
[Script] Embaçamento e nitidez
Efeitos de embaçamento e nitidez
Download link: http://the640kbworld.webng.com/gamemaker/gamemaker_blur_and_sharpen.zip
Fake blurriness
Na verdade, são dois scripts em um projeto. Essa não é uma técnica de embaçamento certa, mas é o que dá pra fazer no GML usando surfaces.
Blend modes não são necessários para o Blur porque ele é só um cálculo de média entre pixels adjacentes. Lá no 640kbw, postei o exemplo em Pascal, pixel a pixel, caso alguém queira pegar (Turbo Pascal).
No GM, usando surfaces fica fácil, porque dá pra tirar o cálculo da área inteira só usando alpha. Muito melhor do que pixel a pixel. Seria até mais fácil se o GM fosse um cara legal, mas sabe-se lá o porquê, o alpha dele é bizarro. Tive que usar uns blends pra fazer malabarismo com o alpha, mas acabou dando certo.
Blend modes não são necessários para o Blur porque ele é só um cálculo de média entre pixels adjacentes. Lá no 640kbw, postei o exemplo em Pascal, pixel a pixel, caso alguém queira pegar (Turbo Pascal).
No GM, usando surfaces fica fácil, porque dá pra tirar o cálculo da área inteira só usando alpha. Muito melhor do que pixel a pixel. Seria até mais fácil se o GM fosse um cara legal, mas sabe-se lá o porquê, o alpha dele é bizarro. Tive que usar uns blends pra fazer malabarismo com o alpha, mas acabou dando certo.
Fake shapen
Também não é o jeito certo, mas ficou até melhor do que eu esperava! O lance do sharpen é você tentar encontrar áreas com alto contraste entre pixels próximos. Com surface, é mamão com açúcar.
Quando você tem uma área onde um mesmo matiz e luminosidade predominam, isso se chama área contígua (tipo um céu sem nuvens, por exemplo). Sempre que, em áreas contíguas, há pontos adjacentes com alto valor de contraste, **pressupõe-se** que ali haja "algum contorno" da figura (também pus o fonte do Turbo Pascal no 640kbw).
São essas áreas de destaque que o sharpen realça. Usando blends, é fácil. Só que não é um sharpen real, é um fake bem enganador, mas dá pra brincar com isso. Esse é o efeito mais louco de todos, porque a partir dele, você faz outros duzentos só com experimentações.
Quando você tem uma área onde um mesmo matiz e luminosidade predominam, isso se chama área contígua (tipo um céu sem nuvens, por exemplo). Sempre que, em áreas contíguas, há pontos adjacentes com alto valor de contraste, **pressupõe-se** que ali haja "algum contorno" da figura (também pus o fonte do Turbo Pascal no 640kbw).
São essas áreas de destaque que o sharpen realça. Usando blends, é fácil. Só que não é um sharpen real, é um fake bem enganador, mas dá pra brincar com isso. Esse é o efeito mais louco de todos, porque a partir dele, você faz outros duzentos só com experimentações.
Daqui a uns dias, vou postar um projeto open aí (aliás, antigo, mas eu consegui melhorar), cheio dos efeitos. Tem até um dithering tosco que eu consegui programar. É um editorzinho, mas vai ser legal porque, quem baixar, vai poder usar GML pra desenhar:
GameMakerTutoriais- Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Script] Embaçamento e nitidez
Ótimas contribuições. Gostei mais do de nitidez (por questão de gosto mesmo).
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: [Script] Embaçamento e nitidez
Não entendo...você pode explicar como fez esse blur? O que você disse ficou vago.
Rodrigo Santiago- Games Ranking :
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Reputação : 73
Número de Mensagens : 1281
Prêmios :
x 0 x 0 x 0
x 3 x 1 x 3
x 0 x 0 x 0
Re: [Script] Embaçamento e nitidez
Ótimo Brendan. Eu uso uma técnica diferente para o blur, apenas desenho a imagem com resolução menor e aumento a escala proporcionalmente ao tamanho original. Mas só funciona se a interpolação estiver ativada. Gambiarra, é nóis.
Muito bom, apesar de estar em Inglês.
FLWS!
Muito bom, apesar de estar em Inglês.
FLWS!
Re: [Script] Embaçamento e nitidez
@Alex
Muito legal! É um artifício bem interessante, também. Aliás, é até mais cômodo de usar porque com certeza é mais rápido que o blur das surfaces.
@Rodrigo Santiago
Agora você me apertou. Eu vou tentar resumir...
Média de valores é o que a gente já sabe. Tirar a média é: somar todos os valores e dividir pela quantidade total de valores. Também sabemos que a cor é um valor e, pra tirar a média entre várias cores, nós vamos trabalhar com os componentes R, G e B de cada uma.brendan640 escreveu:Blend modes não são necessários para o Blur porque ele é só um cálculo de média entre pixels adjacentes.
Quando somamos uma cor com outra (X + Y), o resultado (Z) do cálculo é:
"Z_Red = (X_Red + Y_Red)/2" (isso é pra Red, mas é a mesma coisa com Green e Blue).
No Game Maker, você pode chegar a esse resultado sobrepondo o pixel X com Y usando alpha 0.5. Ou seja, quando você desenha um sprite A sobre B usando alpha 0.5, você está somando as cores da imagem A com B.brendan640 escreveu:No GM, usando surfaces fica fácil, porque dá pra tirar o cálculo da área inteira só usando alpha.
Se isso fosse feito pixel a pixel, teríamos que usar a função "merge_color". Por isso comentei que....
O script vai sobrepondo a imagem da surface usando alpha 0.5 "dentro dela mesma" e sempre usando uma diferença de distância MAIOR que 1 pixel (se você observar, o primeiro argumento do script é justamente essa distância). No exemplo está 0.25 porque o processo é feito de 8 em 8 vezes e a cor acaba sofrendo perda.brendan640 escreveu:Muito melhor do que pixel a pixel.
Por exemplo... Vamos mesclar A com B, mas vamos mover a imagem B em: 1 pixel para a direita e 1 pixel para baixo..
- Código:
Imagem A Imagem B
[A][B][C] [1][2][3]
[D][E][F] [4][5][6]
[G][H][I] [7][8][9]
Resultado:
[A][B][C]
[D][E + 1][F + 2][3]
[G][H + 4][I + 5][6]
[7][8][9]
GameMakerTutoriais- Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|