Visibility computation is crucial for computer graphics from its very beginning and nowadays there is a plethora of visibility algorithms for solving various visibility problems. I will present a taxonomy of visibility problems based on the dimension of the associated set of lines. Then I outline a framework suitable for exact and efficient solution of several classes of visibility problems. The central idea of the framework is the occlusion tree representing an aggregated occlusion map by means of a hierarchical subdivision of line space. I will discuss two applications of the framework: computing exact from-region visibility in 2D and 3D scenes. Finally, I will show how to use the presented algorithms for visibility preprocessing, occluder synthesis, and discontinuity meshing.