Results 1 to 6 of 6

Thread: MetaCircles - simple entity demo

  1. #1
    Super Moderator Petr Schreiber's Avatar
    Join Date
    Aug 2005
    Location
    Brno - Czech Republic
    Posts
    6,790
    Blog Entries
    3
    Rep Power
    693

    Lightbulb MetaCircles - simple entity demo

    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
    Attached Thumbnails Attached Thumbnails Click image for larger version. 

Name:	MetaCircles_Sample.png 
Views:	187 
Size:	29.7 KB 
ID:	7340  
    Attached Files Attached Files
    Last edited by Petr Schreiber; 13-07-2011 at 18:34.
    Learn 3D graphics with ThinBASIC, learn TBGL!
    Windows 7 64bit - Intel Core 2 Duo T6600 @ 2.2GHz - 4 GB RAM - NVIDIA GeForce G210M 512MB
    Windows 8 64bit - Intel Core i5-3350P @ 3.1GHz - 8 GB RAM - NVIDIA GeForce GT640 3GB

  2. #2
    thanks Petr for the valuable subject and for the code, the referenced articles contains deep philosophical discussion how data can be represented, it is seems the metaballs is an old subject. needs more time to read. also the referenced Paul's projects site is very usefull. your code as always proves that thinbasic is a capable language, and can be used for any thing imaginable.

  3. #3
    thinBasic MVPs kryton9's Avatar
    Join Date
    Nov 2006
    Location
    Naples, Florida & Duluth, Georgia
    Age
    61
    Posts
    3,869
    Rep Power
    397
    Really cool demo Petr!! It is fun to watch that is for sure.

  4. #4
    thinBasic author ErosOlmi's Avatar
    Join Date
    Sep 2004
    Location
    Milan - Italy
    Age
    50
    Posts
    8,169
    Blog Entries
    2
    Rep Power
    10
    Great example Petr.
    I'm using it to optimize Core engine in some parts this script is able to push at the maximum.
    www.thinbasic.com | www.thinbasic.com/community/ | psch.thinbasic.com
    Win10Pro 64bit - 8GB Ram - Intel i7 M620 2.67GHz - NVIDIA Quadro FX1800M 1GB

  5. #5
    Super Moderator Petr Schreiber's Avatar
    Join Date
    Aug 2005
    Location
    Brno - Czech Republic
    Posts
    6,790
    Blog Entries
    3
    Rep Power
    693
    Thanks guys!,

    it is really surprising challenge from performance point of view.

    Regarding speed - before posting it here I had to do one minor optimization, which was replace function call on line 99 in animator_MetaCircleCollection.tBasicU with "expanded" function body. It brought significant speed increase, I guess the memory allocations during function invoke were the possible bottleneck, as the rest is the same.


    Petr
    Learn 3D graphics with ThinBASIC, learn TBGL!
    Windows 7 64bit - Intel Core 2 Duo T6600 @ 2.2GHz - 4 GB RAM - NVIDIA GeForce G210M 512MB
    Windows 8 64bit - Intel Core i5-3350P @ 3.1GHz - 8 GB RAM - NVIDIA GeForce GT640 3GB

  6. #6
    I was expecting it to run quite slow on my netbook but was quite surprised when I saw it running.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •