A method for processing three-dimensional data that defines a three-dimensional scene, and determining and displaying lines-of-sight (LOS) and viewsheds on all visible surfaces of the scene, includes: i) assigning at a user-selected location at least one viewpoint in the scene; ii) applying ray tracing from locations in the scene to the viewpoint to determine locations in the scene that are in a line of sight (LOS) and outside the LOS of the viewpoint, thus determining the viewshed relative to the viewpoint; and iii) color-coding every visible surface in the scene. The color coding then differentially indicates the locations in the line of sight (LOS) and outside the LOS of the viewpoint, producing a display of a color-coded viewshed relative to the viewpoint. Additionally ray tracing can be applied from locations above the scene to determine headroom contours for those locations in the scene.