Many interesting application problems on terrains involve visibility computations; for example, the search for optimal locations of observation points, line-of-sight communication problems, and the computation of hidden or scenic paths. The solution of such problems needs techniques to answer visibility queries on a terrain efficiently, and/or the development of data structures encoding the visibility of a terrain from one or several viewpoints. In this Chapter, we introduce visibility structures such as the viewshed (representing the portions of a terrain visible from a single viewpoint) and the horizon (describing the distal boundary of the viewshed), as well as visibility structures related to several viewpoints. All these structures admit continuous and discrete encodings (mainly used on TINs and RSGs, respectively). We provide an overview of algorithms for building visibility structures on TINs and RSGs as well as for answering visibility queries on a terrain. Finally, we illustrate some application-specific problems involving visibility computation.