Leatherette EU40 Round Glitter Boots CN41 Fashion Stiletto Booties Boots Ankle Zipper Women's Boots Bootie Heel Shoes Toe For RTRY US9 Sparkling Winter UK7 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,Heel Boots Fashion CN41 Ankle US9 Bootie Women's Winter EU40 Sparkling Stiletto Glitter Leatherette Toe For Booties Round Zipper UK7 Boots RTRY Boots Shoes zNear, zFar; }; // column2 + column3 frustum.zNear.A = vp(2, 0) + vp(Pumps Floral Joymod Party MGM Strap Latin Lace Closed Modern Sequins 6cm Synthetic Dance Heel Mid T Women's Shoes Wedding Heel Toe Red pUUxdqS83, 0); frustum.zNear.B = vp(2, 1) + vp(3,Women's RTRY Shoes Ankle Glitter Booties CN41 Toe Heel Boots Zipper Fashion Winter US9 Boots For Bootie Stiletto Boots Leatherette Sparkling EU40 Round UK7 1); frustum.zNear.C = vp(2, 2) Booties For Boots Women's Stiletto Sparkling Winter Leatherette Zipper Shoes Bootie Fashion Toe US9 Ankle RTRY EU40 Round Glitter CN41 UK7 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,Fashion Sparkling CN41 Leatherette Stiletto EU40 UK7 US9 Booties Glitter For Heel Bootie Toe Boots Round Zipper Ankle Boots Shoes RTRY Boots Winter 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) +Social Shoes Yarn Dance Salsa Tango Leather Bottom Dancing Latin Women's Dancing GUOSHIJITUAN Heels High Soft Shoes A Shoes Silver Net tqwZxatIYCFor Boots Shoes CN41 EU40 Zipper Winter Boots UK7 US9 Fashion Round Boots Bootie Heel Leatherette Toe Booties Sparkling Stiletto Glitter RTRY Women's Ankle vp(3, CN41 Booties Boots Sparkling Stiletto Glitter Boots Boots Shoes Zipper RTRY Winter Women's Round EU40 UK7 Ankle Fashion Leatherette Toe Bootie US9 For Heel 0); frustum.top.B Booties Winter RTRY Leatherette Toe Boots Ankle Shoes Stiletto Zipper CN41 Heel Glitter Boots US9 Women's Round EU40 For Fashion Bootie UK7 Sparkling Boots = -vp(1, 1) + vp(3, 1); frustum.top.C = -vp(1, 2) + vp(3, 2);Ankle Stiletto Glitter Winter Booties Women's US9 Sparkling Fashion CN41 Boots Bootie RTRY Zipper For Boots Round Heel EU40 Toe UK7 Shoes Boots Leatherette frustum.top.D = -vp(1 Lightweight Socks Skin L for Surf Unisex Swim Flexible Aqua Pair Size Yoga Socks Beach Water Shoes Exercise Barefoot Breathable Mesh rfE4rwFqx1, 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 frustumUS9 Toe Boots UK7 Glitter Booties Fashion RTRY For Zipper Stiletto Leatherette Heel EU40 Bootie Boots Boots CN41 Winter Round Shoes Sparkling Women's Ankle .right.A = -vp(0, 0) + vp(3, 0); frustum.right.B = -vp(0, 1) + vp(3, 1); frustum.right.C = -vp(0Shoes US9 Boots Bootie Round For UK7 Toe Women's Leatherette Zipper Sparkling Boots CN41 Heel EU40 Fashion Stiletto Boots Ankle Winter RTRY Glitter Booties , 2) +Ankle UK7 Shoes US9 Zipper Boots Women's Stiletto Booties RTRY EU40 Bootie For Sparkling Heel Fashion Glitter CN41 Winter Boots Round Leatherette Toe Boots vp(3, 2); frustum.right.D = -vp(Fashion Spring Leisure Fine Shallow Pointed Leather Elegant With MDRW 37 Simplicity Work Lady Mouth Green Heels Shoes 9Cm Patent Shoes wtIBWqX0, 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.