Projective texture-mapping is a powerful tool for image-based rendering. However, visibility information must be obtained in order to project correct textures onto the geometric sturcture. This paper presents a novel visibility algorithm for determining which polygons are visible from each camera position. It has object-space precision, but operates in both image-space and object-space to get better performance. It generates much less polygons than traditional object-space algorithms to help accelerate the speed of texture-mapping. The techniques used to achieve these are conservative image-space occlusion testing and object-space shallow clipping. This algorithm has been successfully used to generate large-scale image-based rendering of a whole university campus, and image-based rendering of architectures under dynamic lighting.