Question about portal/frustum clipping.

Started by
4 comments, last by Krypt0n 12 years, 2 months ago
I just want to make sure I am understanding this correctly.

Let's say that I am using portals. My understanding is that I clip the portals to the frustum and then create a sub-frustum from the clipped portal.

portallv.png

In this pic, the frustum is tilted to the right to clarify my problem. Maybe the character's head is tilted to the right or the spaceship has rolled to the right. Whatever. The resulting clipped portal has eight sides. This would mean that I then need to create a new 8-sided frustum from this portal to further test any other portals visible through the first portal.blink.png

I can see this getting out of hand quickly. Is there a point where it is acceptable to say "OK, n-sides is just too many!" or is there some other trick to reduce the complexity of the resulting frustum?
Advertisement
unless you are doing perfect portal clipping you can just use rectangular frustrum on every level.
just calculate AABB of the resulting portal and go on with that.

unless you are doing perfect portal clipping you can just use rectangular frustrum on every level.
just calculate AABB of the resulting portal and go on with that.


Is this what you're suggesting?

portal2a.png
Yeah, that works well enough as an approximation.

You dont necissarily need 100% perfect culling, as long as you dont undercut yourself and not render things that are supposed to be shown!

Yeah, that works well enough as an approximation.

You dont necissarily need 100% perfect culling, as long as you dont undercut yourself and not render things that are supposed to be shown!


What I am planning is to use this just to determine which cells are visible in a algorithmically generated level. All of the polygons in a visible cell will be sent to the GPU for processing. The only clipping being done on the CPU will be the portals.
In 99% of the cases, portals should not be rotated, and then you'll probably get away without any vertex-count explosion. for the actually culling it's ok to use a frustum based on the bounding rect of current clipped portal poly.

This topic is closed to new replies.

Advertisement