Metaballs and Blobbies
CS-116A: Introduction to Computer Graphics
Instructor: Rob Bruce
Fall 2016

SLIDE 1: Metaball and Blobby Algorithms

  • Marching squares:
    - Approximating perimeter of 2D blobby surfaces through area sampling.
  • Marching cubes:
    - Approximating surface of 3D blobby surfaces through volumetric sampling.

SLIDE 2: 2D Blobs: comprised of circles

Screenshot of circles. The circles represent arbitrary blobs.

Screenshot derived from source: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/

SLIDE 3: 2D Blobs: sample the circles with squares

Screenshot of circles on a square grid. The squares are effectively sampling the circles.

Screenshot derived from source: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/

SLIDE 4: 2D Blobs: decrease square size

Screenshot derived from source: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/

SLIDE 5: Sample with squares

Screenshot derived from source: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/

SLIDE 6: Marching squares: 16 cases

Source: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/

SLIDE 7: Marching squares: 16 cases

Screenshot derived from source: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/

SLIDE 8: The Blob approximated

Screenshot derived from source: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/

SLIDE 9: Marching cubes algorithm

  • Construct 3D surface based on sampling with cubes!
  • Cubes are then sliced into triangles.
  • Triangles determine if we are on the surface of or inside the metaball object.

SLIDE 10: Marching cubes algorithm: cases

Source: Marching cubes: A high resolution 3D surface construction algorithm, p. 165.

SLIDE 11: Marching cubes: grid size samples

Screenshot derived from source: http://paulbourke.net/geometry/polygonise/

SLIDE 12: Metaball OpenGL source code

SLIDE 13: For Further Reading