[Demonstração] Java 2D: Gerador de Partículas  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Fiz um pequeno gerador de partículas usando o Java 2D:
http://www.pontov.com.br/files/outros/vinigodoy/particles/particles.html

Cliquem com o botão direito para trocar de demonstração.
E com o esquerdo para interagir com a demonstração.

Precisa do Java Web Start para rodar.


Aguardo comentários e sugestões.

This message was edited 2 times. Last update was at 08/12/2010 10:44:00


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Naruffy
JavaEvangelist
[Avatar]

Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline

Ficou muito legal Vini, Parabens!

Principalmente o primeiro e o terceiro efeito,

Vou aguardar anciosamente o tutorial

[]s
Rummenigge
Debugger
[Avatar]

Membro desde: 24/09/2010 15:18:47
Mensagens: 70
Offline

Ficou muito louco meu!!! massa mesmo!

Depois você posta o código fonte aê, hehe!

Rummenigge_New_Metal
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Rummenigge wrote:Ficou muito louco meu!!! massa mesmo!

Depois você posta o código fonte aê, hehe!


Sim, como eu falei, depois vou postar uma série de artigos no Ponto V! explicando como o gerador funciona: a física por trás das partículas, os diferentes desenhos do gerador, a técnica de otimização da pintura, os padrões de projeto para torná-lo flexível, etc.

Então, lógico, posto os fontes completos.

Só não decidi ainda se farei isso em Java ou em C++ (linguagem onde desenvolvi esse gerador originalmente, usando a SDL_Gfx para o desenho das partículas). Se for em C++, provavelmente irei reescrever o mecanismo de pintura na OpenGL antes de postar. A vantagem é que com a OpenGL você pode fazer blending aditivo, e fazer partículas que brilhem mais quando estão juntas (ideal para partículas energéticas, como o fogo). No C++ uma das configurações do gerador também é o modelo de memória usado na alocação das partículas, coisa que o GC torna obsoleto em Java.

This message was edited 2 times. Last update was at 08/12/2010 10:43:03


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

Realmente excelente, com essa otimização então nem se fala. E eu achei que o desenho no Java2D ficou mais legal do que o do SDL.

Se eu fosse voce, faria em Java

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Com a otimização deu para deixar a qualidade do desenho das partículas no máximo, com anti-aliasing, dithering, e tudo mais que temos direito.
O algorítmo de blending do Java 2D é bem melhor que o da SDL também. =)

This message was edited 1 time. Last update was at 08/12/2010 11:17:13


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

PS: Aguardo ansiosamente pelos artigos.

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
lina
Moderador
[Avatar]

Membro desde: 23/12/2006 21:05:04
Mensagens: 3083
Offline

Oi,

Parabéns! Melhor do que o aplicativo presente no Iphone 4

Apenas algumas observações:

Não sei se você queria fazer assim, mais quando eu seguro o botão direito em "Candle Flames" o fogo altera de posição (vento para direita/esquerda)... E quando eu seguro o botão direito em "Ring of Fire" o fogo se apaga.

Um detalhe, é que no meu pc (em determinados momentos (quando seguro o botão direito)) na imagem "Ring of Fire" o FPS cai e chega a dar uma travada ao passar para próxima imagem.

Tchauzin!

Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
http://www.guj.com.br/posts/list/50115.java

Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão <Edit> de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]

@gujgirl

http://www.restartfans.hdfree.com.br

Meu blog:

http://www.runthecode.wordpress.com

Tchauzin!
[Email]
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline

Pergunta de leigo:

Reparei que, onde você faz efeito de fogo, você usa círculos. Mas isso me parece um tantinho artificial. Daria para fazer alguma coisa mais realista, tipo um losango que ia afinando até se tornar um ponto e, finalmente, apagar?

(Repare que eu sou bem leigo nessa parte de Java 2D).

[]´s

Alexandre Saudate
__________________________

Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.

Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate

Evite usar Axis2!!! Leia aqui para mais detalhes!

@alesaudate
Quer ler um blog especializado em web services e SOA?

juliocbq
GUJ Expert
[Avatar]

Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline

Parabéns vini. Aquele nosso debate de ontem possibilitou um ganho enorme no desempenho do gerador de partículas. Quando li o seu email explicando o novo algoritmo achei a lógica sensacional. Mais uma vez mostrando que o bom software não está na linguagem e sim no domínio dos algoritmos. Precisa transformá-lo em artigo.
Parabéns mais uma vez.

www.citrox.com.br
Ironlynx
Moderador
[Avatar]

Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline

Do "Baralho" Vini!

Muuito bacana o negócio.


Um detalhe, é que no meu pc (em determinados momentos (quando seguro o botão direito)) na imagem "Ring of Fire" o FPS cai e chega a dar uma travada ao passar para próxima imagem.

Engraçado, aqui o FPS mínimo está em 90(P.V.: Geforce 310GS).

Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

lina wrote:Não sei se você queria fazer assim, mais quando eu seguro o botão direito em "Candle Flames" o fogo altera de posição (vento para direita/esquerda)... E quando eu seguro o botão direito em "Ring of Fire" o fogo se apaga.


É isso mesmo. Na chama, quando vc clica, vc coloca vento sobre a chama. É como se vc "soprasse" ela. Quanto mais perto da chama, mais forte é o sopro.
No Anel de Fogo e na Cascata, eu desligo o emissor de partículas no clique do mouse.
E no Fireworks vc lança mais um foguete a cada clique.

asaudate wrote:Pergunta de leigo:

Reparei que, onde você faz efeito de fogo, você usa círculos. Mas isso me parece um tantinho artificial. Daria para fazer alguma coisa mais realista, tipo um losango que ia afinando até se tornar um ponto e, finalmente, apagar?

(Repare que eu sou bem leigo nessa parte de Java 2D).


Poderia sim. A biblioteca de partículas permite configurar o tamanho, forma, mudança de cor, transparência, forma do emissor e a física da partícula. Só que eu não perdi muito tempo para montar os demos.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team