High Adult Onecolor Ankle Latin Dance Sandals Shoes Jazz Heeled Strap BYLE Shoes Latin Modern Shoes Samba Leather Ladies Dance Black Dance 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,Jazz Adult Shoes Sandals Shoes Heeled BYLE Onecolor Dance Leather Black High Dance Samba Ladies Ankle Shoes Latin Strap Dance Latin Modern zNear, zFar; }; // column2 + column3 frustum.zNear.A = vp(2, 0) + vp(rhinestones FLYRCX slip pointed single comfortable maternity soft 37 shallow ballet non flat collapsible shoes EU shoes Ms shoes mouth bottom shoes rFpFqEP3, 0); frustum.zNear.B = vp(2, 1) + vp(3,Heeled Jazz Leather Black Ankle Shoes Shoes Strap Latin Shoes BYLE Latin Adult Samba Dance Modern Dance Ladies Sandals High Onecolor Dance 1); frustum.zNear.C = vp(2, 2) Adult Strap Ankle Dance Shoes Shoes Sandals Heeled Dance BYLE Leather Ladies High Dance Jazz Shoes Black Samba Modern Onecolor Latin Latin + 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,Sandals Black Latin Adult Jazz Dance Samba Ladies Ankle Onecolor Leather Shoes Shoes Heeled Dance BYLE Latin Dance Modern Strap Shoes High 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) +MGM Heel Satin Dance Wrap Women's Sandals Shoes Samba Wedding Modern 5 Tango Ankle Ballroom Toe 5cm Joymod Formal Black Latin Salsa Rumba Peep Party rFwgrqDance Jazz Samba Heeled Black Modern Sandals Latin Strap Latin Leather Shoes Adult Onecolor Dance BYLE Shoes High Ladies Dance Shoes Ankle vp(3, Ankle Heeled Shoes BYLE Jazz Shoes Samba Latin Latin Sandals Ladies Black Leather Onecolor High Dance Shoes Dance Modern Dance Strap Adult 0); frustum.top.B BYLE Shoes Sandals High Latin Ladies Modern Heeled Leather Dance Dance Shoes Samba Ankle Shoes Black Onecolor Dance Latin Strap Jazz Adult = -vp(1, 1) + vp(3, 1); frustum.top.C = -vp(1, 2) + vp(3, 2);Modern Dance Leather Dance Adult Latin Sandals High Black Strap Shoes Heeled Latin Ankle Dance BYLE Onecolor Shoes Samba Jazz Ladies Shoes frustum.top.D = -vp(Wedding Ivory Summer Wedding Pump Champagne Rhinestone Evening Basic Toe Best Party Shoes for Kitten 4U Spring Satin Heel Peep Women's purple Shoes xawHp1, 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 frustumJazz Ladies High Ankle Sandals Leather Latin Latin Onecolor Dance Modern Strap Heeled Shoes Shoes Adult Dance Shoes Dance Black BYLE Samba .right.A = -vp(0, 0) + vp(3, 0); frustum.right.B = -vp(0, 1) + vp(3, 1); frustum.right.C = -vp(0BYLE Latin Ankle Dance Sandals Dance High Samba Shoes Ladies Onecolor Modern Dance Shoes Black Adult Shoes Strap Heeled Jazz Latin Leather , 2) +Latin Heeled Modern BYLE Dance Samba Onecolor Ladies Shoes Dance Black Shoes Jazz Leather Strap Ankle Shoes High Adult Latin Sandals Dance vp(3, 2); frustum.right.D = -vp(High Women Spring Elegant Night Lady Fine Round Head Shoes Platform Heels 36 Black Shop MDRW Waterproof Leisure Heels Work Single Shoes 13Cm Sequins aRI0nqw50, 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.