1. A computer-implemented method for reconstructing a surface mesh, comprising: (a) obtaining photo image data from a set of overlapping photographic images; (b) obtaining scan data from a scanner, wherein the scan data comprises depth information; (c) generating a point cloud from a variety of sources, wherein the generating comprises combining the overlapping photo image data and the scan data; (d) estimating an initial rough mesh from the point cloud data, wherein the initial rough mesh is used as an input mesh; and (e) iteratively refining the input mesh into a refined mesh by: (1) computing a photo term that measures a surface reprojection error on the set of overlapping photographic images using a photo-consistency measure, wherein the photo-consistency measure determines a consistency between several of the overlapping photographic images; (2) computing a scan term that measures a three-dimensional (3D) distance between a surface of the input mesh and the point cloud; (3) combining, using a surface cost function, a photo term from the photo image data with a scan term from the scan data; (4) evolving the input mesh based on the surface cost function; and (5) repeating the above steps until the input mesh minimizes the surface cost function.