PDA

View Full Version : Plane + Frustum Intersection



Gdo
06-28-2002, 01:15 PM
Hi,

I need some help to find the intersections, I mean (x,y,z) of the points, between a plane and my frustum.

Thank you.

knackered
06-29-2002, 01:43 AM
A plane is infinite, and a frustum is made up of 6 infinite planes.
What x,y,z points are you after?

Gdo
06-29-2002, 04:33 AM
You're right.
The 6 infinite planes of the frustum define a finite volume.
Now, suppose I have a box (ok, not an infinite plane), what I need is (when the box intersects the frustum) the (x,y,z) of the points which define the volume of the part of the box inside the frustum.
Do you see what I need ?

dUckmAnn
06-29-2002, 05:18 AM
Ulf Assarsson and Tomas Möller, "Optimized View Frustum Culling Algorithms" http://www.ce.chalmers.se/staff/uffe/vfc.pdf

Gdo
06-29-2002, 08:33 AM
Thank you for your answer dUckmAnn, BUT I am not looking for a fast test inside/outside, what I need is the exact points of intersection.

V-man
06-29-2002, 08:53 AM
The intersection between a frustum plane and your plane will either yeild, nothing, a line, or a plane.

Intersection between a plane and a frustum will give nothing, or a polygon.

This requires basic knowledge of linear algebra.

V-man

Gdo
06-29-2002, 10:04 AM
Yes V-Man, that's what I am looking for.
Have you got an algorithm ?
A piece of source code ?
An url ?

knackered
06-29-2002, 12:55 PM
Look up line intersection with a plane on google - then think a little about how this will help you solve your problem.

V-man
06-30-2002, 05:57 AM
I don't have code that specifically does this, but line to plane intersection will give you the vertices of the polygon:
www.GameTutorials.comhad (http://www.GameTutorials.comhad) some demoes with source. His code is very simple but gives you an idea of the math. The problem with his code is that there is nothing about the precision of floats, and I don't know if it's entirely correct.

You will be surprised of how short the code is.

V-man

Gdo
06-30-2002, 08:01 AM
Thanks V-man.
I think that will help me.