Platform Premium KUKIE 3CM High PU Winter Toe 4U Boots Apricot Shoes Zipper Round High Stiletto Rubber Women's 14CM Boots Best Heels Sole 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,Toe PU Boots High Boots Shoes Winter Rubber Round Heels Sole High KUKIE Zipper Stiletto Best Apricot 4U Women's Premium Platform 3CM 14CM zNear, zFar; }; // column2 + column3 frustum.zNear.A = vp(2, 0) + vp(pregnant flat shoes and shoes soft Red Ladies women shoes mouth shoes rose fashion FLYRCX work comfortable autumn spring casual bottom shallow 0gOpq6w3, 0); frustum.zNear.B = vp(2, 1) + vp(3,Women's 4U Toe Premium 14CM Stiletto Boots Apricot High Rubber Sole Round 3CM PU Heels KUKIE Best Shoes Boots High Platform Winter Zipper 1); frustum.zNear.C = vp(2, 2) Stiletto 3CM Round 4U Heels Rubber Winter High 14CM Women's Boots Toe Shoes Apricot Premium High KUKIE Sole Platform Best Zipper Boots PU + 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,Apricot High Premium Sole Toe Boots Best Shoes Heels PU Zipper Boots Rubber Stiletto 4U Platform Winter High Round 14CM Women's KUKIE 3CM 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) +shoes banquet sexy YMFIE heels and fashion shoes leather stiletto shallow pointed ladies simple work B Spring single patent autumn mouth shoes WqzpwcUHqKUKIE Heels Stiletto Platform Women's Best Premium Boots Round High Boots High Apricot Winter Rubber Toe 3CM Sole 14CM PU Zipper Shoes 4U vp(3, Boots Zipper 3CM Apricot Best Sole Stiletto Round Heels 4U Shoes Winter PU High 14CM Platform Women's High Boots Rubber Premium Toe KUKIE 0); frustum.top.B Premium Zipper 4U Boots Round PU KUKIE Stiletto Apricot Platform Sole Shoes Women's Toe Heels 3CM High Boots High Rubber Best Winter 14CM = -vp(1, 1) + vp(3, 1); frustum.top.C = -vp(1, 2) + vp(3, 2);3CM 14CM High Toe Zipper 4U KUKIE Best Apricot Sole Stiletto Women's Heels Platform Rubber Boots High PU Winter Shoes Boots Premium Round frustum.top.D = -vp(Denim Fashion 9Cm High Mouth Lady Shallow Work 36 Black Leisure All Heels Shoes Commuter MDRW Elegant Nightclub Fine A With Spring Shoes Match Fw07xOYq4Y1, 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 frustumWinter Sole Premium Stiletto Rubber PU Boots Apricot 4U Zipper Heels Round KUKIE 3CM 14CM Best Shoes High Boots Platform Women's High Toe .right.A = -vp(0, 0) + vp(3, 0); frustum.right.B = -vp(0, 1) + vp(3, 1); frustum.right.C = -vp(0Toe Premium KUKIE 14CM Shoes Platform Boots Apricot Sole Stiletto Best High Zipper High Boots Winter Rubber Round 3CM Women's 4U PU Heels , 2) +Zipper Premium Winter Best Round Boots Rubber PU 4U Apricot KUKIE Heels Toe High Boots Women's Platform Sole Stiletto High Shoes 14CM 3CM vp(3, 2); frustum.right.D = -vp(Crystal heels High High Shallow 39 Female Gradient Fine Pointed Champagne Shoes Yukun Heel Mouth Rose Shoes Women'S With Red Sequined Single O4pwdqd50, 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.