Lecture17

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Visibility Culling Visibility David Luebke Computer Science Department University of Virginia <[email protected]> Motivation • • Like most other rendering acceleration techniques, the goal is to avoid rendering redundant geometry The basic idea: don’t render what can’t be seen – Off­screen: view­frustum culling – Occluded by other objects: occlusion culling D2 Motivation • The obvious question: why bother? – Off­screen geometry: solved by clipping – Occluded geometry: solved by Z­buffer • The (obvious) answer: efficiency – Clipping and Z­buffering take time linear to the number of primitives D3 The Goal • Our goal: quickly eliminate large portions of the scene which will not be visible in the final image – Not the exact visibility solution, but a quick­and­dirty conservative estimate of which primitives might be visible • Z­buffer& clip this for the exact solution – This conservative estimate is called the potentially visible set or PVS D4 Visibility Culling • The remainder of this talk will cover: – View­frustum culling (briefly) – Occlusion culling in architectural environments – General occlusion culling D5 View­Frustum Culling • An old idea (Clark 76): – Organize primitives into clumps – Before rendering the primitives in a clump, test a bounding volume against the view frustum • • If the clump is entirely outside the view frustum, don’t render any of the primitives If the clump intersects the view frustum, add to PVS and render normally D6 Efficient View­Frustum Culling • How big should the clumps be? – Choose minimum size so: cost testing bounding volume << cost clipping primitives – Organize clumps into a hierarchy of bounding volumes for more efficient testing • If a clump is entirely outside or entirely inside view frustum, no n...
View Full Document

This note was uploaded on 12/09/2011 for the course CS 561/661 taught by Professor Lubke during the Summer '11 term at Virginia Tech.

Ask a homework question - tutors are online