|
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,"
(http://www.ce.chalmers.se/staff/uffe/) : 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
http://www.supradyne.fr.st
Note that this is a part of a larger project named TOTTEUR, a (not finished
yet) 3d engine released under the GPL
(http://sourceforge.net/projects/totteur/)
|
|