Jump to content
  • Advertisement
Sign in to follow this  
JorenJoestar

Indoor (cave like) culling

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

Hi guys! I'm moving forward in my (our) current project...we're developing a game that will contain parts inside caves environment, but also with open underground rooms. I just ask you: what techniques are used nowadays for frustum and occlusion culling? I know that Unreal Engine 1 and 2 used portal based-culling, but now they use Dynamic PVS (afaik), that I think is something of a summa of various techniques! What do you use for occlusion culling of your indoor scenes? I'm thinking about Image-Space Portal Culling, that seems really easy to me. Thanks!

Share this post


Link to post
Share on other sites
Advertisement
well i think portals + antiportals will rule for quite some time. maybe implementation details will change but general idea is so simple and efficient that even if you use some fancy occlusion query system it's still worth your time to implement it in some form.

Share this post


Link to post
Share on other sites
Good...portals and antiportals: this is what I am thinking about!
Can you point me to some link in which the math around it is explained?

And...are you using it? Image-space or creating volume projection?

Thanks!

Share this post


Link to post
Share on other sites
I personally dislike the using of portals.

Automatic generation of portals is pretty inefficient, expecially with the big assets used nowadays. Artists would be forced to manually specify them, and specify every item contained, limiting their freedom. Portals are good just in Quake1-like enviroments.

I'm trying, instead, to go somewhere else, utilizing image-space methods. Z-based occlusion culling systems, for me, work well. As far as I'm concerned, hierachical z-based rejections are a good idea.

Share this post


Link to post
Share on other sites
well noone generates portals automatically, you need to hire a graphics artist who will, it's not a lot of work if it's designed properly.
for example you can ask level designer to put boxes defining sectors and portals on their intersections, should be fast and simple.
as for rendering fastest way is to do it in world space by narrowing view frustum. you keep 6 clip planes and cull object with that, and when you look through the portal you just adjust clip planes to fit portal. (they will still form rectangle in screen space).
of course you can do some fancy culling using hardware occlusion query, HOM or something else, but remember that portals are almost free on modern machines (at the cost of small increase of work for level designer).
same applies to antiportals.

Share this post


Link to post
Share on other sites
there's not a lot of math in it.
all you need is to be able to test box-frustum intersection and to find reduced frustum going through portal.
for second thing check this thread: http://www.gamedev.net/community/forums/topic.asp?topic_id=384601
box-frustum intersections have been discussed in many places here on this forum

my suggestion is to start simple . for example only axis aligned boxes define sectors, level designer will put only those boxes and portals (axis aligned rectangles laying on 2 touching faces of 2 boxes) then while loading you intersect scene geometry with boxes so you know which objects belong to which sectors , then find center of each portal and move it a bit along normal in one direction and then in other , that way you get information about which sectors portal connects. after that you can use it for rendering.

Share this post


Link to post
Share on other sites
So basically you test portal-frustum intersection, and then create a new frustum starting from the portal and recursively reduce the frustum? Is it correct?

And...Box-Frustum intersection...because a Portal must be a 3d polygon (so at least a box)?

thanks biki!!!

Share this post


Link to post
Share on other sites
Quote:
Original post by JorenJoestar
So basically you test portal-frustum intersection, and then create a new frustum starting from the portal and recursively reduce the frustum? Is it correct?

yes

Quote:
Original post by JorenJoestar
And...Box-Frustum intersection...because a Portal must be a 3d polygon (so at least a box)?


well. box frustum or box-box is for culling and dividing scene objects into 'sectors' depending on which sector box it is in. portal is just rectangle (not box) it can be any flat shape but method i described will use it's screen space axis aligned rectangle.

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.

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

Sign me up!