Visibility culling is a fundamental problem of computer graphics, and is of crucial importance for many applications, like game development or architectural design. For example, interactively rendering a model containing hundreds of millions of polygons like the Boeing 777 model shown on the cover page is only possible when invisible parts of the model are "culled" away. Solving the visibility problem has been an important research topic for many years, and countless methods have been proposed. Amazingly, most approaches still have more or less serious issues that prevent their widespread use. Preprocessed visibility solutions attempt to solve the problem in an offline step, but are often slow, lack robustness, and are hard to implement. Online culling algorithms have a lot of potential since they can be used on arbitrary scenes, but they induce an overhead during rendering which is unacceptable for applications that strive for optimal performance. We believe that basic research problems remain unsolved until this day for preprocessed visibility as well as for online culling, and the goal of this project is to tackle and solve the majority of these problems. In order to do this, we have to gain more insight into the complex properties of visibility, which are still not entirely understood. Our proposed methods have applications in various fields, like game development, architectural design, urban visualization, or massive model visualization.