Come rendere le particelle 2D come fluide?


45

Supponiamo di avere un buon modo per spostare le particelle 2D al fine di simulare un fluido (come l'acqua). Qualche idea su come renderlo?

Questo è per un gioco 2D, in cui la prospettiva è laterale, in questo modo . L'acqua sarà contenuta in scatole che possono essere rotte per farla cadere e interagire con altri oggetti. Il modo più semplice che mi viene in mente è usare una piccola immagine per ogni particella. Sono interessato a sentire più modi di rendere l'acqua.

Risposte:



12

La risposta di George Duckett è molto più diretta e molto ben presentata se hai bisogno di acqua completamente simulata nel tuo gioco. Per la fisica simulata di acque poco profonde con una precisione minima (meno realismo, più giocoso), questa immagine mi ha dato un incredibile momento di chiarezza:

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


Semplice e carino! Non pensavo davvero di utilizzare un passaggio di post elaborazione così semplice ... mi chiedo solo se un dispositivo come iPhone lo gestirà. Sembra essere un buon punto di partenza. Grazie.
Luca

Posso garantire questo approccio. L'ho usato una volta in un progetto e ha funzionato magnificamente. Aggiungi un filtro smussato e puoi avere anche un bel menisco sui tuoi blob.
scriptocalypse,

Super cool! Ma non sono sicuro di quanto bene possa accogliere un personaggio che lo attraversa. Spingerebbe tutte le sfere da un lato, no?
Max

6

Oppure, per un approccio semplice e veloce: usa i metaballs !

Metaballs 3d


5

Grant Kot ha messo su Github parte del suo codice di simulazione fluido con implementazioni sia in javascript (canvas) che in C ++ con OpenFrameworks: https://github.com/kotsoft

Ha alcune demo sul suo account YouTube: http://youtu.be/HqWheJSEiaw

Non ho idea di come funzioni, ma so che funziona veloce e ci sono tutti i tipi di variazioni da costruire con esso. Una buona parola chiave da cercare potrebbe essere "particelle multigrid".


Mi piace molto come Grant Kot simula i fluidi! Anche se il rendering è minimo, almeno sull'applet su quelle pagine Web. Come molti paremeters per controllare la simulazione. Vale la pena dare un'occhiata più da vicino. Grazie.
Luca
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.