Do I need the 'w' component in my Vector class?
        Posted  
        
            by 
                bobobobo
            
        on Game Development
        
        See other posts from Game Development
        
            or by bobobobo
        
        
        
        Published on 2011-06-24T20:16:29Z
        Indexed on 
            2011/06/25
            0:33 UTC
        
        
        Read the original article
        Hit count: 294
        
Assume you're writing matrix code that handles rotation, translation etc for 3d space.
Now the transformation matrices have to be 4x4 to fit the translation component in.
However, you don't actually need to store a w component in the vector do you?
Even in perspective division, you can simply compute and store w outside of the vector, and perspective divide before returning from the method.
For example:
// post multiply vec2=matrix*vector
Vector operator*( const Matrix & a, const Vector& v )
{
  Vector r ;
  // do matrix mult
  r.x = a._11*v.x + a._12*v.y ...
  real w = a._41*v.x + a._42*v.y ...
  // perspective divide
  r /= w ;
  return r ;
}
Is there a point in storing w in the Vector class?
© Game Development or respective owner