1. A method of extracting an isosurface wherein points on the isosurface have a constant value, the method comprising: dividing a volume into a grid of voxels; identifying intersecting edges in the voxels, wherein the intersecting edges intersect the isosurface; generating patches for the intersecting edges; tessellating the patches, using a graphics processing unit, based on a spatial relationship between primitives representing the patches and data representing the isosurface and generating a grid of tessellated vertices; determining intersection points of the tessellated vertices with the isosurface; and moving the tessellated vertices to the intersection points of the tessellated vertices with the isosurface to form a finer approximation of the isosurface.