Update OCCLUSION_CULLING.md

This commit is contained in:
lawnjelly 2019-11-26 12:23:48 +00:00 committed by GitHub
parent 6200e20d47
commit 01e260e3d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 0 deletions

View File

@ -62,3 +62,13 @@ An alterative is to perform raster methods on the CPU. This can be done without
Raster methods have become relatively more common recently as techniques have improved, and the processing horsepower has become available. They have the advantage that in many cases there is less need to manually process game levels to take advantage of the culling. They also work well with totally dynamic worlds. Raster methods have become relatively more common recently as techniques have improved, and the processing horsepower has become available. They have the advantage that in many cases there is less need to manually process game levels to take advantage of the culling. They also work well with totally dynamic worlds.
## PVS ## PVS
As the calculations involved in occlusion culling can be quite time consuming, it is worth noting that there is an alternative to making these calculations at runtime. If the level is mostly static, and can be split up into zones or cells of some kind, it is possible to precalculate all the objects / areas that are potentially visible from each cell. Then at runtime instead of a complex calculation, you can simply lookup the objects that are potentially in view, cull them against the view frustum and render!
This is extremely fast, however there are a few disadvantages:
1) This only works for static geometry
2) The pre-processing to calculate the PVS can be time consuming (but it only need be done at design time)
3) The PVS can take significant memory - it may need to be compressed, or low resolution
4) As visibility is determined from a cell (with volume), the results cannot be as accurate as visibility determined from a single camera viewpoint
5) Without modification it can only give quite approximate culling of dynamic objects (similar problem to (4))