Occlusion Systems
11/20/07 - 16:00 PST - Posted by Mike Acton, Engine Director
In a Tech presentation, Al Hastings (CTO) shared the details of both the static and dynamic occlusion systems that we used for both Resistance: Fall of Man and Ratchet and Clank Future: Tools of Destruction.
Our static occlusion system is basically a straightforward grid-based PVS which has the advantage of being:
- Very fast to query at run-time - almost free
- Relatively low memory footprint
- Doesn't impose any restrictions on level construction techniques
But this method also comes with some disadvantages:
- Labor intensive and time intensive process
- Hard to keep it up-to-date during production
- Can't handle moving geometry, deforming geometry, destructible geometry
- Suffers from some over-inclusion (large ties are the biggest problem, compression error is a secondary problem)
- Monolithic database (hard to stream, etc)
Our dynamic occlusion system is another straightforward system. We pre-render the bounding volumes on the GPU to determine visibility. The advantages:
- Relatively lightweight system (rendering the bounding volumes usually takes a fraction of a millisecond)
- Works with any level design
- Typically it manages to cull that vast majority of objects that should be culled.
And the disadvantages:
- Basing occlusion on bounding volume visibility works poorly for some objects (long, thin mobys in particular)
- One frame lag issues
- Visibility spikes can occur after camera cuts and mode transitions
Check out Al's slides to find out more about how they're used and implemented in practice.
Download the presentation
[ 0 ]
|
|