How Surface Difference works
Surface Difference works by performing a geometric comparison between the triangles of both input surfaces. The triangles from the first surface are classified as either completely above, below, or intersecting the second (reference) surface. When intersections are detected, triangles get subdivided into portions that are classified as above, below, or coplanar to the other surface. Contiguous triangles, and triangle parts, that have the same classification are grouped into polygons, and their volumetric contributions are summed to provide a total for each of these polygons. This information is then written to the output polygon feature class.
The difference surface is constructed using constrained Delaunay triangulation while performing the geometric comparison between the two input surfaces. The z values of this surface represent the height differential between the input surfaces. Z values of 0.0 occur where the input surfaces have coincident values. Positive values denote the areas where the first surface is above the second (reference) surface, and negative values reflect areas where the first surface is below the second.
When a difference raster is requested, the tool converts the triangulated difference surface to a raster using linear interpolation.
When an output TIN folder is specified, the triangulated difference surface will be written as a TIN to the specified workspace. If the resulting surface would contain too many nodes for one TIN to store, the tool may output multiple TINs.