Como renderizar partículas 2D como fluido?


45

Suponha que você tenha uma boa maneira de mover suas partículas 2D para simular um fluido (como a água). Alguma idéia de como renderizá-lo?

Isto é para um jogo 2D, onde a perspectiva é do lado, assim . A água estará contida em caixas que podem ser quebradas para que caiam e interajam com outros objetos. A maneira mais simples que me vem à mente é usar uma pequena imagem para cada partícula. Estou interessado em ouvir mais maneiras de produzir água.

Respostas:


28

Confira como o PixelJunk Shooter fez isso (incluindo simulação) nesta apresentação (PDF) em GDC2010.


Amostra de imagem do PixelJunk Shooter


1
Não sabia PixelJunk ... realmente uma boa pres. Obrigado!
27412

A ligação ao reboque :)
David Gouveia


O que são SPU, PPU, SPURS?
Martijn Courteaux

@ MartjinCourteaux: eles fazem parte do CPU Cell do PS3. Pense neles como shaders de GPU, embora existam algumas diferenças importantes.
23812 Sean Sean Middleditch

12

A resposta de George Duckett é muito mais direta e muito bem apresentada se você precisar de água totalmente simulada em seu jogo. Para física de águas rasas simuladas com precisão mínima (menos realismo, mais brincalhão), essa imagem me proporcionou um incrível momento de clareza:

http://www.patrickmatte.com/stuff/physicsLiquid/


Simples e agradável! Realmente não pensei em usar uma etapa tão simples de pós-processamento ... apenas me pergunto se um dispositivo como o iPhone vai lidar com isso. Parece ser um bom ponto de partida. Valeu.
31412

Eu posso garantir essa abordagem. Eu usei uma vez em um projeto e funcionou lindamente. Adicione um filtro de chanfro e você poderá ter um bom menisco em seus blobs também.
Script12ypse

Muito legal! Mas não tenho certeza de quão bem isso acomodaria um personagem que passeava por ele. Empurraria todas as esferas para um lado, não?
Max

6

Ou, para uma abordagem rápida e fácil: use metaballs !

Metaballs 3d


5

Grant Kot publicou parte de seu código de simulação fluida no Github com implementações em javascript (canvas) e C ++ com OpenFrameworks: https://github.com/kotsoft

Ele tem algumas demos em sua conta do youtube: http://youtu.be/HqWheJSEiaw

Não tenho ideia de como funciona, mas sei que funciona rápido e há todo tipo de variação para criar com ele. Uma boa palavra-chave para procurar pode ser "partículas multigrid".


Eu realmente gosto de como Grant Kot simula fluidos! Mesmo que a renderização seja mínima, pelo menos no applet nessas páginas da web. É como muitos parâmetros para controlar a simulação. Vale uma olhada mais profunda. Valeu.
luke
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.