Jump to content
  • Advertisement
Sign in to follow this  
UnshavenBastard

HW Occlusion Culling ?

This topic is 4517 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

Hallo there. Some years ago, there has been a thread about occlusion culling here, also the hardware occlusioon culling via GL extention was discussed and concluded it was still too slow. Well that's been over 2 years ago I think. How is it today? Fast enough? And btw., Will I still have to use the NVidia extension or is there a general GL one? thanks, unshaven

Share this post


Link to post
Share on other sites
Advertisement
There's a chapter in GPU Gems 2 that describes a relatively robust realtime hierarchical occlusion culling system that runs in hardware. So I'd say it's good enough now.

Share this post


Link to post
Share on other sites
The asynchronous nature of occlusion queries has not changed since they were first introduced, so you will get the same raw performance out of them like you always have. However, if you tweak it continuously, you can probably make it work. Personally, I regard other systems like PVS (or even simpler methods such as octrees and quadtrees) to be more effective, in terms of performance and ease of implementation.

Share this post


Link to post
Share on other sites
Occlusion queries are second-to-last-chance culling; they're not meant to substitute for BSP or portal-cell culling, and they don't partially cull partially occluded objects like Z-buffering. Because of this, they occupy a small--perhaps vanishingly small--niche. And given the difficulty of making them work well across a wide range of hardware, they may well not be worth it. I'd focus on all other levels of my visibility determination before I even started thinking about occlusion queries.

Share this post


Link to post
Share on other sites

HW Occlusion queries might be quite useful when creating PVS sets. They can save you from great deal of complicated and unprecise calculations.

Share this post


Link to post
Share on other sites
Quote:
Original post by Sneftel
Occlusion queries are second-to-last-chance culling; they're not meant to substitute for BSP or portal-cell culling, and they don't partially cull partially occluded objects like Z-buffering. Because of this, they occupy a small--perhaps vanishingly small--niche. And given the difficulty of making them work well across a wide range of hardware, they may well not be worth it. I'd focus on all other levels of my visibility determination before I even started thinking about occlusion queries.


I know of at least one commercial PC-nextgen engine that uses them as the primary (and I think only) technique.

Share this post


Link to post
Share on other sites
Quote:
Original post by Sneftel
Occlusion queries are second-to-last-chance culling; they're not meant to substitute for BSP or portal-cell culling, and they don't partially cull partially occluded objects like Z-buffering. Because of this, they occupy a small--perhaps vanishingly small--niche. And given the difficulty of making them work well across a wide range of hardware, they may well not be worth it. I'd focus on all other levels of my visibility determination before I even started thinking about occlusion queries.


I'm familiar with more "crude"/general visibility detection methods for real-time use and common data structures. But occlusion culling as such in addition to that can be damn powerful, and having hardware supporting it properly would be really nice.


Quote:
Original post by Demus79

HW Occlusion queries might be quite useful when creating PVS sets. They can save you from great deal of complicated and unprecise calculations.


Would you elaborate that? I'm not sure I understand.
The "occlusion culling" I know of is based on a view point and frustrum. Yes I know a method of PVS calculation where a camera is set to many points and angles to test for visibility, but this is, whatever you do, very inaccurate, no?

Share this post


Link to post
Share on other sites

Quote:

Quote:

HW Occlusion queries might be quite useful when creating PVS sets. They can save you from great deal of complicated and unprecise calculations.

Would you elaborate that? I'm not sure I understand.
The "occlusion culling" I know of is based on a view point and frustrum. Yes I know a method of PVS calculation where a camera is set to many points and angles to test for visibility, but this is, whatever you do, very inaccurate, no?


yes you are right about the fact that choosing some positions and directions is inaccurate, but the rendering accuracy is for the occlusion tests is outstanding (not perfect though).

I am not totally familiar with calculating the PVS sets, but with HW occlusion culling you can reduce the time when creating them. Consider the alternative of making your own rasterizer with z-buffer or some other PVS calculation system vs HW occlusion culling.

When making occlusion queries with HW, I think that you need to render only the z-buffer, which is rather fast.

Cheers

Share this post


Link to post
Share on other sites
Quote:
Original post by Demus79
I am not totally familiar with calculating the PVS sets, but with HW occlusion culling you can reduce the time when creating them. Consider the alternative of making your own rasterizer with z-buffer or some other PVS calculation system vs HW occlusion culling.


PVS are not calculated with renders IMHO because of the accuracy. BSP-like PVS are mathematically obtained using portals and antipenumbria volumes.

Share this post


Link to post
Share on other sites
Quote:
Original post by superpig
I know of at least one commercial PC-nextgen engine that uses them as the primary (and I think only) technique.

Huh... they do occlusion queries on every potentially visible piece of the level without regards to the player's position?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!