Destructible Sphere Using Marching Cubes


Russell Fritch

CSC 572

Cal Poly – Dr. Wood

Description:

For my final project I created a destructible sphere using the Marching Cubes Algorithm.


To Run:

$> make

$>./final


Commands:

b : launches a bullet from the current camera position

[ : Scales the larger sphere larger

] : Scales the larger sphere smaller

q : Rotate View Down

z : Rotate View Up

wasd : used for moving through environment

n : Increase cubes

m : Decrease cubes

c : Display Cubes

p : Randomly deform main sphere

'esc' : exit


Mouse is used to look around within scene.


Implementation:

Marching Cubes Summary

First the cubes are generated. Next for each cube corner the implicit equation of a sphere is used to determine if that corner is in or out of the sphere. The per cube binary code the previous step generates is used to look into a triangle table that specifies what geometry will exist within that cube.


I implemented a binary version of marching cubes. This allowed for easy manipulation of the cubes. One could also use scalar values at each cube corner in order to better interpolate edge intersections.


Destruction Summary

When a sphere is shot at the main sphere each of the vertexes that make the cubes that make up the main sphere are checked for collision. If there is collision the value at the corner is set to false.







Examples