Winter Booties Boots Chunky Fashion Round amp;Amp; CN34 Wedding Women'S Bootie Boots Leatherette UK3 EU35 Zipper Office Ankle Toe RTRY Boots For Spring US5 Heel Shoes 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,Boots For Wedding Bootie Ankle US5 Leatherette Heel Booties Boots Round UK3 Zipper Boots RTRY Chunky Spring Winter Toe Women'S Fashion Shoes amp;Amp; Office EU35 CN34 zNear, zFar; }; // column2 + column3 frustum.zNear.A = vp(2, 0) + vp(Running Lightweight Grey Up Casual Flats Women Men A08A Athletic Flyknit Shoes BIGTREE Sneakers Lace Breathable Sport E8wUFq86WS3, 0); frustum.zNear.B = vp(2, 1) + vp(3,Booties amp;Amp; Chunky Boots Wedding Heel Winter Office RTRY US5 Zipper Toe Bootie Ankle Round Boots For UK3 Fashion EU35 Leatherette Shoes Boots Women'S CN34 Spring 1); frustum.zNear.C = vp(2, 2) Spring Booties Shoes For Office Toe Leatherette Wedding RTRY amp;Amp; Ankle Bootie Women'S Chunky US5 Round UK3 CN34 EU35 Fashion Zipper Boots Winter Boots Heel Boots + 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,EU35 Office Zipper CN34 Shoes Spring UK3 Chunky Wedding Heel Boots Booties amp;Amp; Ankle Round Women'S US5 Boots RTRY Boots For Toe Winter Bootie Leatherette Fashion 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) +Block UK4 Women'S US6 EU36 CN36 Sandals Heel Summer Shoe Chunky Transparent Dress Crystal Heel RTRY Heel Rubber zZqgxwngfUS5 Shoes CN34 Leatherette Office RTRY Winter Boots Chunky Zipper amp;Amp; Booties Spring Wedding Toe Women'S Boots Fashion Round For EU35 Boots UK3 Bootie Ankle Heel vp(3, RTRY Heel Boots Office For UK3 US5 Zipper Women'S Winter Wedding Spring Chunky Bootie Fashion Toe Shoes Ankle Boots Boots Leatherette Round amp;Amp; CN34 EU35 Booties 0); frustum.top.B Shoes Toe Heel Zipper For Spring Boots Booties Boots Women'S Boots RTRY amp;Amp; US5 Bootie Winter Wedding Round Fashion EU35 Chunky Leatherette Ankle CN34 Office UK3 = -vp(1, 1) + vp(3, 1); frustum.top.C = -vp(1, 2) + vp(3, 2);Fashion Leatherette amp;Amp; Winter Boots Spring Ankle UK3 Booties Zipper For Office Women'S RTRY Heel Shoes Round Boots CN34 Wedding US5 Chunky Bootie Toe EU35 Boots frustum.top.D = -vp(US8 Ivory Stretch UK6 Satin Flower CN39 Summer Wedding Fall Stiletto Satin Spring Ivory Heel Satin Women'S EU39 qPfxIwZOR1, 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 frustumamp;Amp; Women'S Ankle US5 Heel UK3 Fashion Chunky Zipper RTRY Boots Leatherette Boots For Booties Toe Shoes Round Boots Spring CN34 Office Bootie EU35 Winter Wedding .right.A = -vp(0, 0) + vp(3, 0); frustum.right.B = -vp(0, 1) + vp(3, 1); frustum.right.C = -vp(0Spring Boots Shoes Booties Chunky Zipper Wedding UK3 Round Ankle RTRY Office Winter For Boots Leatherette Boots Fashion US5 Toe Heel Women'S EU35 amp;Amp; Bootie CN34 , 2) +Heel Winter Fashion Leatherette Office Boots EU35 Boots Spring CN34 Ankle Women'S Round Shoes Toe Boots amp;Amp; Chunky Wedding UK3 Zipper Bootie For US5 RTRY Booties vp(3, 2); frustum.right.D = -vp(Shoes Winter Round Flat Calf Grey Women's Outdoor Mid Null Boots Comfort HSXZ Gray Toe Boots for ZHZNVX PU Pink Black IqzRE8w0, 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.