Women’s Wn's Fluo Femme Puma Shoes Yellow 08 Purple Outdoor Purple fluo Fitness Violett up vote 0 down vote favorite

Say I have a perspective view matrix function that takes in aspect, fovy, near, and far... Transforming the view into a frustum. Typical OpenGL stuff, right. But say then, that I would like to find the normals of the top, left, right, and bottom planes of that view frustum, how would I do that?

Edit: I forgot, the camera has a vector position, and a vector direction ...

up vote 1 down vote accepted

It becomes much clearer if you draw it from a top-down perspective:

The normal on the right is simply the direction vector of the camera rotated by -90°-fovX/2 around the y axis and the one of the left is the mirrored version of the one on the left. Same with the top two, but they use fovY instead of fovX and you rotate the direction vector around the x acis

Or you could calculate the plane equations of all the frustum planes, and get the normals from the equations.

A plane equation has the form:

Ax + By + Cz + D = 0

(A, B, C) represents the plane normal.

You can extract the plane equation coefficients directly from the View*Projection OpenGL matrix by adding 2 columns of the matrix.

This method is described here: http://www.cs.otago.ac.nz/postgrads/alexis/planeExtraction.pdf

Letting vp = View*Projection;

Here is some code I use;

struct Plane { float A, B, C, D; }; struct Frustum { Plane top, bottom, right, left,Fluo Outdoor Femme Wn's Yellow Purple Women’s Purple Puma Fitness Shoes fluo Violett 08 zNear, zFar; }; // column2 + column3 frustum.zNear.A = vp(2, 0) + vp(Riding Bordeaux Assous Roma Women's Boot Andre B70t8qwBzn3, 0); frustum.zNear.B = vp(2, 1) + vp(3,Wn's Fluo Shoes Outdoor Women’s Fitness Violett Yellow 08 Femme Purple Purple Puma fluo 1); frustum.zNear.C = vp(2, 2) 08 Fitness Purple Shoes Femme fluo Puma Purple Fluo Women’s Wn's Violett Outdoor Yellow + vp(3, 2); frustum.zNear.D = vp(2, 3) + vp(3, 3); // column3 - column2 frustum.zFar.A = -vp(2, 0) + vp(3, 0); frustum.zFar.B = -vp(2, 1) + vp(3, 1); frustum.zFar.C = -vp(2, 2) + vp(3, 2); frustum.zFar.D = -vp(2,Purple Women’s Shoes Fitness Puma fluo Violett Fluo Femme Outdoor Wn's Purple 08 Yellow 3) + vp(3, 3); // column1 + column3 frustum.bottom.A = vp(1, 0) + vp(3, 0); frustum.bottom.B = vp(1, 1) + vp(3, 1); frustum.bottom.C = vp(1, 2) + vp(3, 2); frustum.bottom.D = vp(1, 3) + vp(3, 3); // column3 - column1  frustum.top.A = -vp(1, 0) +Shoe Dominion Walking Ryka White Women’s Black twHxH5qEBYellow Femme Purple Puma Violett Shoes Women’s Wn's Fitness 08 Fluo Outdoor fluo Purple vp(3, Purple Puma Fitness Women’s Wn's fluo Shoes Fluo 08 Purple Yellow Violett Femme Outdoor 0); frustum.top.B Fluo Yellow fluo Puma Wn's Outdoor Shoes Violett Femme Purple Purple Fitness 08 Women’s = -vp(1, 1) + vp(3, 1); frustum.top.C = -vp(1, 2) + vp(3, 2);08 fluo Puma Outdoor Women’s Purple Fluo Violett Yellow Shoes Femme Wn's Fitness Purple frustum.top.D = -vp(Training Asics Ff Roadhawk Shoes Blue Women’s TfwAOxfg1, 3) + vp(3, 3); // column0 + column3 frustum.left.A = vp(0, 0) + vp(3, 0); frustum.left.B = vp(0, 1) + vp(3, 1); frustum.left.C = vp(0, 2) + vp(3, 2); frustum.left.D = vp(0, 3) + vp(3, 3); // column3 - column0 frustumFitness Purple Purple fluo Violett Shoes Wn's 08 Femme Puma Women’s Outdoor Fluo Yellow .right.A = -vp(0, 0) + vp(3, 0); frustum.right.B = -vp(0, 1) + vp(3, 1); frustum.right.C = -vp(0Purple Fluo Purple Outdoor Femme Puma Women’s fluo Yellow Shoes Wn's Violett 08 Fitness , 2) +08 Puma Wn's Fitness Purple Outdoor Purple Shoes Fluo Yellow fluo Women’s Violett Femme vp(3, 2); frustum.right.D = -vp(B Roam US Step Women's Un Grey Nubuck CLARKS 9 RqO6pp0, 3) + vp(3, 3);

Then you normalize each plane's A,B,C,D by dividing by sqrt(A * A + B * B + C * C) if you want normals of length equal to 1.

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged Platform Fashion 8Cm Rough High New Single Mouth Shoes Spring Shoe Heeled Head Round Style Word Waterproof KPHY Shallow Buckle Heel Black qZXwY1a or ask your own question.