Erro com interpolation

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Erro com interpolation

Mensagem por Rodrigo Santiago em Ter 12 Fev 2013, 23:12

É para o pokemon legend.
A textura é dividida em quadrantes.
O erro so acontece quando uso interpolation, porque existem as vezes pontos um pixel antes ou um pixel depois da margem, quando o blur da interpolaton acontece os triangulos que usam esse ponto pegam o smoorf metade da cor do outro quadrante.
Veja a imagem da textura da ekans:

A seta e o circulo branco estão apontando para a posição, se você perceber ela é adjacente a outra cor, e alguns pontos ficam meio laranja-roxo(não sei acor que da disso). A , seria facil alterar a da ekans, mas é que eu já fiz 100pokemons, criar um calculo poderia comprometer alguns pontos que realmente necessitam ficar proximos a interseção para montar um quebra-cabeca de coordenadas.
Nem todos os pontos que estão na interseção dão erro e são justamente estes que acabei de falar

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: Erro com interpolation

Mensagem por GameMakerTutoriais em Ter 19 Fev 2013, 16:27


Nesse caso, o smooth é feito na textura inteira, por isso que está acontecendo essa "mistura". Acho que nesse caso, eu tentaria fazer o seguinte:

1 - Desativar a interpolação.
2 - A partir de cada quadrante, criar um sprite temporário com a imagem desse mesmo quadrante. Um único sprite usando sprite_replace daria certo.
3 - Pegar a textura desse sprite que foi criado e usar a interpolação nela.
4 - Desenhar essa nova textura interpolada numa surface, na mesma posição do quadrante original.
5 - Ir repetindo o processo pra todos os quadrantes.

Daí ele vai aplicar a interpolação em cada quadrante separado, sem afetar as cores das beiradas.

Depois a gente pegaria a surface, transformaria em um sprite substituindo a primeira textura original (essa que você postou a imagem). Isso gastaria só uma surface e um sprite a mais, porque você poderia repetir o processo em todos os desenhos usando um só loop.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum