Archived

This topic is now archived and is closed to further replies.

Tirisfal

Let's talk about....Occlusion Culling

Recommended Posts

Tirisfal    122
I was wondering what occlusion culling techniques people are using in realtime apps at the moment, if its being implemented at all.... Post your thoughts! -Matt

Share this post


Link to post
Share on other sites
S1CA    1418
Hybrid Umbra (a.k.a. RenderWare dPVS):

http://surrender3d.com/umbra/

Download the demos from there.
Also download the reference manual, they describe their technique and design choices in great detail. It also contains a PhD thesis on occlusion culling. VERY interesting and impressive stuff if you''re interested in occlusion.





--
Simon O''''Connor
Creative Asylum Ltd
www.creative-asylum.com

Share this post


Link to post
Share on other sites
Renus    122
I just made a brute-force solution: world is divided into sections/nodes/grids (no matter if octree or quadtree or bsp. Every grid stores a list of visible grids. So during runtime just the visible nodes are rendered. The grid size defines then the tradeoff between memory and overdraw.

This solution is comparable to the Renderware link S1CA mentioned before. It is not that sophisticated, but is fast to implement and solves the problem good enough for a hobbyist
Furthermore, the problems of tree traversals for viewing frustum estimation can be rejected, you just take the node list and check which of these nodes are in sight which can be done by simple vector dot products, much faster than tree traversals.

A problem remains: the offline list generation of which grids are visible from other grids. Here I will follow the RenderWare idea of drawing all grids in a unique color and check the final image for those colors to see which grids are visible.

Occlusion culling of geometry hided behind dynamic objects is not included in this solution and needs extra attention - which I simply ignore.

- thomas

Share this post


Link to post
Share on other sites
Blueshift    122
We use hierarchical occlusion maps for our game engine. They are very efficient, both in terms of performance and culling efficiency. They also allow occluder fusion, an extremely important feature if you have lots of very small and complex geometry. It doesn''t need an octree and there is no preprocessing involved either. In one of our scenes, a city model of over 10 million faces, it culls around 90% of the geometry in almost no time.

There is a paper about it, it''s called "Effective Occlusion Culling for the Interactive Display of Arbitrary Models" by Hansong Zhang.

Don''t know where to D/L it though, you''ll have to search for it.

A.H aka Blueshift

Share this post


Link to post
Share on other sites