Sign in to follow this  
stateOfDaniel

Defining an arbitrary rectangle from a normal

Recommended Posts

stateOfDaniel    103

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 this post


Link to post
Share on other sites
el junk    191

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 this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this