# Defining an arbitrary rectangle from a normal

This topic is 1803 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

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.

##### Share on other sites

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.

##### Share on other sites

Thanks it worked! :)