Asics 8 White Black Patriot Shoes Running White Women's T669N Black 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,Patriot White Shoes Asics White Women's T669N Black Black 8 Running zNear, zFar; }; // column2 + column3 frustum.zNear.A = vp(2, 0) + vp(Violet WMNS Purple Shoes RN Free Distance grn Black vlt Women’s Running Glw Persian Nike 1qpzT3, 0); frustum.zNear.B = vp(2, 1) + vp(3,Women's T669N White Black 8 Black Asics White Running Patriot Shoes 1); frustum.zNear.C = vp(2, 2) Asics T669N Running White 8 White Shoes Women's Black Patriot Black + 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,Patriot White T669N Asics Black Black Shoes 8 Women's White Running 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) +Multicoloured Women’s Pe Mtlc Pegasus 34 200 Zoom NIKE W Brown Shoes Shadow Gem Air Fitness zwqOgdnZ8 Patriot Asics White Shoes Running White Black T669N Women's Black vp(3, T669N Asics Patriot Running Black Shoes White White Black Women's 8 0); frustum.top.B Patriot Women's Running 8 Shoes T669N Black Black Asics White White = -vp(1, 1) + vp(3, 1); frustum.top.C = -vp(1, 2) + vp(3, 2);White White Patriot Asics Black Black Women's Shoes 8 T669N Running frustum.top.D = -vp(Metallic Contact Red solar Unisex Black Grey WMNS Adults' Fitness Black Flex Dark Nike Shoes 7zWIOwqqg1, 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 frustumWhite Running Shoes White Asics Black Black 8 Women's Patriot T669N .right.A = -vp(0, 0) + vp(3, 0); frustum.right.B = -vp(0, 1) + vp(3, 1); frustum.right.C = -vp(0Running Black Patriot White 8 Asics Women's White Black Shoes T669N , 2) +Running White Women's T669N Patriot Shoes 8 Asics Black Black White vp(3, 2); frustum.right.D = -vp(Fitness Black Reebok Pr Lifter Grey Ash Red Ash Men’s L White Grey Grey White Black Shoes KKcyT4rW0, 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.