Submitted by , posted on 13 November 2001

Image Description, by

Just a little screen shot from a little effect :)

Features :
  • OpenGL rendering
  • mesh is constructed by recursing in an octree (only stores bounding boxes and field intensities, there is a custom memory allocator for the nodes so rather large trees can be generated without mem alloc penalty)
  • recursion takes into account visibility and metaballs bounding spheres, it stops inside the volume (negative metaballs are not handled yet)
  • metaballs field values calculation is writen in asm (~10% performance gain)
  • "highly" optimized bounding boxes view frustum culling (used ideas from Ulf Assarsson and Tomas Möller, "Optimized View Frustum Culling Algorithms," ( : implemented frustum planes masking, temporal coherency (easy one but did not gave good results on the allways changing octree), and tests on n-p vertices)
  • mesh is generated using marching cubes algorithm
  • There are 12 metaballs moving in a rather large cube, mapped with an animated texture. The app runs at ~60FPS on my athlon 1GHz, geforce 256, 512Mo.

    You can get the win32 executable and source code at

    Note that this is a part of a larger project named TOTTEUR, a (not finished yet) 3d engine released under the GPL (

    Image of the Day Gallery



    Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
    Please read our Terms, Conditions, and Privacy information.