Hi,
as the Portal 2 game I played recently modelled liquids via isosurfaces, I could not wait to try to develop similar system.
For the start I picked 2D case of primitives I call MetaCircles. On the internet you can find them referenced as MetaBalls, but as it is simple 2D shape, the Circle suits better I think.
Very interesting article and source of inspiration and code can be read here:
http://www.gamedev.net/page/resource...es-in-2d-r2556
Below I attach sample code for 2D case. The download contains 3 files:
- MetaCircle_Demo.tBasic - the main application
- actor_MetaCircle.tBasicU - custom entity representing single meta circle, which can be instanced in any number of copies
- animator_MetaCircleCollection.tBasicU - custom entity serving as high level container for meta circles, taking care of calculating the whole effect
ThinBASIC 1.8.8.0 is required.
I hope you will like it. It is quite computionally expensive, and many further optimizations could be done (feel free to try), but I wanted to keep the code easy to navigate.
If it runs too slow on your machine, please tune parameter at line 41 in main code:
MetaCircleCollection_SetGridStep(%sScene, %eMetaCircleCollection, 0.15)
... to any bigger number, such as 0.2 and so on
I hope you will like it, it is quite hypnotic to watch.
Petr
Bookmarks