View Full Version : Plane + Frustum Intersection

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?

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

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

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

Thanks V-man.

I think that will help me.

Powered by vBulletin® Version 4.2.2 Copyright © 2015 vBulletin Solutions, Inc. All rights reserved.