• Advertisement
Sign in to follow this  

Indoor (cave like) culling

This topic is 3029 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
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
read thread i posted, you can do it without finding real screen space rectangle.

Share this post


Link to post
Share on other sites
Quote:
Original post by JorenJoestar
Yes I read it, the only thing I'm missing is how to know if the portal is visible: a simple box-frustum check? :D

for axis aligned rectangles yes, for general polygons use clipping (you need to clip it anyway to find reduced frustum)


Share this post


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

  • Advertisement