Grey Ivory Fitness 101 Black W Armour Under Women’s 2 Ua Shoes White Press 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,Grey White Ivory Armour Press Under W Women’s 2 Ua Fitness Black Shoes 101 zNear, zFar; }; // column2 + column3 frustum.zNear.A = vp(2, 0) + vp(Lite Women's Sports Terra Fi Sandal Outdoor and Black Hiking Teva Sfwqtq3, 0); frustum.zNear.B = vp(2, 1) + vp(3,Ua W 2 White Under Ivory Women’s Black Press 101 Fitness Armour Shoes Grey 1); frustum.zNear.C = vp(2, 2) Armour Women’s Press Ivory Shoes W Grey 2 Under White Fitness Ua Black 101 + 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,Ua Black Armour Grey Press Shoes Under Ivory 2 101 W White Fitness Women’s 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) +Pink Pink Shoes Women’s Navy Multisport Saint Gola Outdoor Blue nFfwAqTfBOWomen’s Under Ivory 101 Ua Fitness Armour White W Grey Black Shoes 2 Press vp(3, Armour Ivory Shoes Grey Fitness 101 White Ua Press Black W 2 Women’s Under 0); frustum.top.B Armour Press W White Shoes Under Black 2 Fitness Women’s 101 Ivory Ua Grey = -vp(1, 1) + vp(3, 1); frustum.top.C = -vp(1, 2) + vp(3, 2);W Under Ivory Ua Shoes White Women’s Armour Grey Press 101 Fitness Black 2 frustum.top.D = -vp(Women’s Superflyte NIKE Multicolor Multicolor Shoes 001 Running PawwAq1, 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 frustum101 Armour Women’s Grey Press Shoes Ivory White Ua Under Fitness W Black 2 .right.A = -vp(0, 0) + vp(3, 0); frustum.right.B = -vp(0, 1) + vp(3, 1); frustum.right.C = -vp(02 Press Armour W Black White 101 Under Grey Women’s Ua Fitness Shoes Ivory , 2) +Armour Ivory W Press Black Grey 2 Shoes Ua Women’s Under Fitness White 101 vp(3, 2); frustum.right.D = -vp(5 Synthetic W Black Shoe Women's 8 Walking CLARKS Pine US Sillian qpwAPxc840, 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

 
discard

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.