Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Don't forget to read Tuesday's email newsletter for your chance to win a free copy of Construct 2!


Defining an arbitrary rectangle from a normal


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 stateOfDaniel   Members   -  Reputation: 103

Like
0Likes
Like

Posted 10 February 2013 - 07:35 PM

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.



Sponsor:

#2 deekr   Members   -  Reputation: 191

Like
0Likes
Like

Posted 11 February 2013 - 01:04 AM

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. 



#3 stateOfDaniel   Members   -  Reputation: 103

Like
0Likes
Like

Posted 12 February 2013 - 06:04 PM

Thanks it worked! :)






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS