Jump to content
  • Advertisement

Archived

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

Moh_Abed

Occluder Culling

This topic is 5091 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

does antbody know any good article (algorithm) for occluder culling? i am having an outdoors scene which uses Octree. i nees to add the capability of occluder culling which means polygons that in not seen or occluded by other polygons doesnt render.

Share this post


Link to post
Share on other sites
Advertisement
hm.. i seriously doubt you want to cull the occluders ,-)
in fact, i found every methode to calculate it at runtime too slow (meaning it takes more time than just rendering everything). if you can afford a big file with visibility data i think the idea is to store for each patch a volume from which it is visible. just search for terrain and occlusion culling.

Share this post


Link to post
Share on other sites
Actually, there''s a pretty good resource out there for runtime calculation of occlusion culling techniques. Most ones that run at (decient) speeds are image space algorithms. Here''s some to look into

Heirchial Occlusion Maps (Hansong Zhang)
PLP /cPLP (Game programming gems 3)

Those are good places to start. the PLP/cPLP is as basic as an image space occlusion can get. the HOM method that Zhang presents adds a grouping of acceleration techniques to avoid checking the entire section per pixel.

And of course, for those out there who love hardware, check on the hardware calls that the new GeForce cards support. NV_OCCLUSION_QUEARY and HP_OCCLUSION_TEST or something like that. It''s at nVidia''s website.

Hope that helps

~Main

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
HOM is not an ''extension'' based on the PLP (Prioritized-Layered Projection) algorithm. In fact, PLP and cPLP were published AFTER the HOM algorithm of Zhang

If you are interested into PLP/cPLP and methods to enhance it:

http://www.cs.utah.edu/~csilva/papers/vis2001a.pdf

Share this post


Link to post
Share on other sites
The way I do this is somewhat crappy, but it does work in the right situations. My overall geometry is described by a BSP/CSG system. In the polygon properties, there is an option to make it an occluder (optimally this would be disabled if the polygon is concave, but testing for convexity/concavity is tricky and its easy to eyeball it). if you do this, the polygon will occlude everything it can that is behind it.
To do this, you start at any vertex of the polygon. Create a plane with this vertex, the next vertex, and the camera's location, normal facing 'in' (toward the volume that will be created). move to the next vertex, and repeat. finally, make one more plane that is coplanar with the polygon, normal facing away from the camera. now you have a volume that you can test if objects are inside like a frustum. In fact, in my game both frustums and these occlusion volumes are the same class, both a list of planes. The functions to try and cull objects take a boolean saying whether the volume describes a visible area or an occluded area, because they are inverted from eachother. With the frustum, if something is inside all the planes, its visible, but with an occlusion volume, if something is inside its not visible, the boolean handles this.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!