Conectar-se
Quem está conectado
21 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 21 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 26

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Conteúdo da surface desaparece do nada?

em Ter 22 Maio 2012, 16:55
E aí pessoal! Outra loucura do GM, só que essa é ainda mais cabulosa. Tenho uma sala onde uso uma surface pra inverter as cores da tela do jogo. Eu crio a surface normalmente e uso um screen_redraw() "dentro dela". Tudo ok, com isso já tenho o que eu preciso capturado.

Em seguinda, desenho uma tela em branco por cima do que eu havia sido capturado, porém, com o blend mode para inverter as cores. Eu poderia fazer isso direto no evento Draw, mas quero que seja feito na surface propositalmente.

É aí que acontece o problema. Simplesmente do nada, o conteúdo da surface some. Se eu gravá-la num arquivo, ela se mostra perfeita da maneira que eu queria. Mas se tentar desenhá-la na tela, nada acontece. Não é alpha, não é blend, não sei o que é. Eu fiz um exemplo rápido aqui só pra mostrar o que eu falei:

http://dl.dropbox.com/u/77818756/problema_com_surface.gmk

A primeira sala é onde captura o conteúdo pra surface e tenta desenhá-la. Apertando Enter, vai pra segunda sala que é onde fica claro o problema. Enter novamente salva ela num arquivo. Entretanto, arquivo fica ok.

Eu fiz algo errado? Realmente, não tenho ideia do que seja...


Última edição por Ninja8086 em Ter 22 Maio 2012, 17:44, editado 1 vez(es)
avatar
Data de inscrição : 07/03/2010
Número de Mensagens : 426
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 13

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Conteúdo da surface desaparece do nada?

em Ter 22 Maio 2012, 17:40
Concerta o link ae, não estou conseguindo baixar.
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 26

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Conteúdo da surface desaparece do nada?

em Ter 22 Maio 2012, 17:46

Foi mal Klior, eu tinha excluído porque o exemplo tava errado. Arrumei agora.

http://dl.dropbox.com/u/77818756/problema_com_surface.gmk

Eu consegui fazer de uma outra maneira, mas se fosse possível, eu queria fazer desse jeito que eu falei. Realmente, não sei o que pode ser.
avatar
Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 100

Prêmios
   : 3
   : 0
   : 1
Ver perfil do usuáriohttp://blackcapapps.blogspot.com.br/

Re: Conteúdo da surface desaparece do nada?

em Ter 22 Maio 2012, 21:24
Acho que sei o que é.
Apenas troquei/tirei a parte do blend é a surface ficou normal.

Esse tipo de blend "bm_inv_dest_color, bm_zero" deve estar invertendo ou apagando o alpha também, ou seja, se ele é 1 vai para 0 ai apaga a surface.
bm_zero: Blend factor is (0, 0, 0, 0).
bm_inv_dest_color: Blend factor is (1-Rd, 1-Gd, 1-Bd, 1-Ad).
Ali tem "1-Ad", então o alpha também é considerado nesse tipo de blend.
Já que o destino é bm_zero o resultado seria:

1-Ad + 0
1-1 + 0 (1 é o valor do alpha para o pixel)
0

bm_inv_src_color: Blend factor is (1-Rs, 1-Gs, 1-Bs, 1-As).
Em vez de bm_zero use bm_inv_src_color, desenhe o quadrado com alpha 0 e vai funcionar.

(1-Ad) + (1-As)
(1-1) + (1-0)
1

1 do alpha do pixel de destino, que no caso é tela redesenhada antes do blend e 0 do source que é o que esta desenhando depois te definir o blend.

Você pode ver a imagem quando salva em um arquivo provavelmente porque o GM ignora o alpha para salvar em bipmap.

Olha eu tenho que te agradecer! Razz
Graças a sua duvida agora que parei pra interpretar esse blend mode eu finalmente consegui entender a "mágica" por trás dele. O O O grande poder da matemática! nuu


Última edição por Kabeção em Ter 22 Maio 2012, 22:07, editado 1 vez(es)
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 26

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Conteúdo da surface desaparece do nada?

em Ter 22 Maio 2012, 22:05
Eu tentei trocar pelo "bm_inv_src_color" como você falou, mas mesmo assim não deu. Mesmo salvando em png, a imagem fica do mesmo jeito. Não sei se o GM salva o alpha também, mas não tem problema porque isso me deu uma ideia.

Ele inverteu o alpha mesmo. Smile Eu fiz um desenho de um retângulo preto por cima com "bm_src_alpha" e "bm_one" e agora deu certo.

---- Editado ----

Ah, agora eu entendi! Usando isso com alpha zero:

Em vez de bm_zero use bm_inv_src_color, desenhe o quadrado com alpha 0 e vai funcionar.

Perfeito! Agora sim, ficou do jeito que eu queria. Obrigado pela explicação e pela ajuda! Ficou perfeito agora, créditos garantidos! Tópico resolvido.

---- Editado ----

Very Happy Deu certo:

http://gmbr.forumeiros.com/t22454-exemplo-efeito-de-filtro-emboss-em-tempo-real#168798
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum