An efficient method for extracting isosurfaces from volume data is proposed. The method utilizes a modified branch-on-need octree to bypass regions of no current interest. In addition, during the generation of triangle meshes neighboring triangles are merged according to certain criteria. Methods are also given to significantly reduce the space required for octrees. The method is more efficient and generates far fewer triangles than the marching cube algorithm. The performance of the proposed method is compared with that of several existing methods.