Re: [Algorithms] portal engines in outdoor environments
Brought to you by:
vexxed72
From: <Lea...@en...> - 2000-08-21 00:40:55
|
> I have been looking at something very similar. My version adds functions to > allows enscribed volumes to be set for each primative group. The occulion > list would start empty each frame. primative groups would then be tested > against the list as they pass though the pipeline, and be added to the list. > This means you would really have to be using front to back rendering for at > least 'major' objects but can be implemented totally in the geometry > subsystem. Some things that I did a few years ago that may interest people with gross culling of objects in screen space that worked quite well in the end, that may interest some people (and may not too... :) It was pretty much a mix of my own algorithms and the Occlusion Using Shadow Frusta paper. Sphere Shadow - a sphere that is projected into screen space that consists on the minimal volume that will fit entirely within an object... you can transform the centre of the sphere and keep a screen size radius structure (hardest bit was working out the volume that fits -- but this can be done offline) BBox Shadow - as per sphere, with a BBox in screen space. I found the screen space sphere shadow to be extremely fast, easy and accurate, although it is a very limited method with respect to the volume most spheres end up occupying... for complex objects you can have multiple spheres... The entire cull algorithm for objects is then something like transform object sphere to screen space, getting center and radius for each sphere shadow occluder compare object center + radius with shadow size + radius Advantages: * It's not reliant on getting info back from the buffers * It doesn't take long to check a lot of objects against several occluders * It's flippingly quick... :) Disadvantages: * For mirrored areas, you may need to check and transform twice * Reflective surfaces such as floors in Unreal have the same problem * Useless for transparent objects, but you get that anyway... * Long thin objects suck for shadow sphere occluders For trees and terrain you need to weigh up how visible objects are behind the vegetation -- for example, if a tree has really bushy leaves you can use a distance based shadow sphere occluder that comes into play at longer distances and then actually render a billboarded quad where the shadow sphere occluder is to not have objects just disappear behind the vegetation. (You will need to blend this over time for most effective results though). A simple view independent distance test does fine... Leathal. |