45
\$\begingroup\$

Suppose you have a nice way to move your 2D particles in order to simulate a fluid (like water). Any ideas on how to render it?

This is for a 2D game, where the perspective is from the side, like this. The water will be contained in boxes that can be broken in order to let it fall down and interact with other objects. The simplest way that comes to my mind is to use a small image for each particle. I am interested in hearing more ways of rendering water.

\$\endgroup\$

4 Answers 4

29
\$\begingroup\$

Check out how PixelJunk Shooter did it (including simulation) in this presentation (PDF) at GDC2010.


Sample PixelJunk Shooter Image

\$\endgroup\$
5
  • 1
    \$\begingroup\$ Didn't know PixelJunk...really a nice pres. Thank you! \$\endgroup\$ Commented Mar 28, 2012 at 11:51
  • \$\begingroup\$ A link to the trailer :) \$\endgroup\$ Commented Mar 28, 2012 at 12:40
  • 2
    \$\begingroup\$ youtube.com/watch?v=HBPQ7GRPTEw \$\endgroup\$ Commented Mar 28, 2012 at 20:16
  • \$\begingroup\$ What are SPU, PPU, SPURS ? \$\endgroup\$ Commented Apr 2, 2012 at 15:35
  • \$\begingroup\$ @MartjinCourteaux: they're part of the PS3's Cell CPU. Think of them like GPU shaders, albeit there are some key differences. \$\endgroup\$ Commented Apr 3, 2012 at 19:13
12
\$\begingroup\$

George Duckett's answer is far more direct and really well presented if you need fully-simulated water in your game. For simulated shallow-water physics with minimal accuracy (less realism, more playful), this image gave me an incredible moment of clarity:

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

\$\endgroup\$
3
  • \$\begingroup\$ Simple and nice! Didn't really think to use such a simple post-processing step...just wonder if a device like iPhone will handle this. It seems to be a good starting point. Thx. \$\endgroup\$ Commented Mar 29, 2012 at 8:36
  • \$\begingroup\$ I can vouch for this approach. I used it once in a project and it worked beautifully. Add a bevel filter and you can have a nice meniscus on your blobs as well. \$\endgroup\$ Commented Apr 3, 2012 at 21:18
  • \$\begingroup\$ Super cool! But I'm not sure how well it would accommodate a character strolling through it. It would push all the spheres to one side, wouldn't it? \$\endgroup\$ Commented Sep 19, 2016 at 5:42
6
\$\begingroup\$

Or, for a quick and easy approach: Use metaballs!

3d metaballs

\$\endgroup\$
5
\$\begingroup\$

Grant Kot has put some of his fluid simulation code up on Github with implementations in both javascript (canvas) and C++ with OpenFrameworks: https://github.com/kotsoft

He has a few demos up on his youtube account: http://youtu.be/HqWheJSEiaw

I have no idea how it works, but I know it runs fast and there's all sorts of variations to build with it. A good keyword to search for might be "multigrid particles".

\$\endgroup\$
1
  • \$\begingroup\$ I really like how Grant Kot simulates fluids! Even if the rendering is minimal, at least on the applet on that web pages. It as a lot of paremeters to control the simulation. Worth a deeper look at it. Thx. \$\endgroup\$ Commented Mar 29, 2012 at 20:13

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.