Several output-sensitive algorithms for hidden surface removal in a collection of n horizontal triangles, viewed from a point at z = -∞, are derived. If k is the combinatorial complexity of the output visibility map, then the result is a simple (deterministic) algorithm that runs in time O(n√k log n) and several improved and more sophisticated algorithms that use randomization. One of these algorithms runs in time O(n4/3log γn + k3/5n4/5+δ) for any δ > 0, where γ is some constant less than 3. The performance of the other algorithms is potentially even faster; it depends on other parameters of the structure of the given triangles, as well as on the output size. A variant of the simple algorithm performs hidden surface removal for n (nonintersecting) balls in time O(n3/2log n + k).