Advertisement

Defining an arbitrary rectangle from a normal

Started by February 11, 2013 01:35 AM
1 comment, last by stateOfDaniel 12 years ago

So I have been programming a top down zombie shooter and I made it in a city type area so I need to be able to generate buildings. I've made a class that makes a rectangular prism based on an x, y, and z position and the length width and height of the building. This has worked for now, but I added lighting to my shaders and need normals and texcoords and these buildings also always faced the same direction. so I wanted to make something more flexible. I wanted to make a function that makes an arbitrary quad that takes a normal vector, a position vector that lies on the center of the quad, and a width and height which correspond to the tangent and bitangent axis's respectively. I figure this is possible considering there is only one plane per vertex normal pair. My question is how would I do this.

I know the formula for deriving a plane from a normal but I cant figure out how to make the quad on it.

You can't derive a plane from a normal, you need another parameter like a point on the plane or a reference distance. The plane equation (the equation I think you are referencing) is useful for determining where a point lives with respect to the plane.

You need to create a tangent and bi-tangent on each plane of your prism. Then the corners look something like (1/2)((+/-) L*T (+/-) W * B). Just for an example, you could compute them in model space. For the sides: T = Z x N, B = N x T. For the top: T = X, B = Y. For the bottom: T = -X, B = Y.

Advertisement

Thanks it worked! :)

This topic is closed to new replies.

Advertisement