   GLSL: Why does this work?
  I was fiddling with some code, trying to create billboards with GLSL, and I saw this tutorial where they passed the cam-up and cam-right vectors as uniforms. Since I didn't have those vectors easy at hand yet, I just wrote a temporary camUp and camRight as vec3(0.0, 1.0, 0.0) and vec3(1.0, 0.0, 0.0).Then I got this idea to multiply these vectors with the modelview matrix before using them to create the billboard. I didn't know if this would work, since I'm not entirely certain what I'm doing here, but it seems to work, and the billboards do face the camera, so something must be right.Here is the code:vec3 camUp = (vec4(0.0, 1.0, 0.0, 0.0) * gl_ModelViewMatrix).xyz;vec3 camRight = (vec4(1.0, 0.0, 0.0, 0.0) * gl_ModelViewMatrix).xyz;vec3 pos = gl_MultiTexCoord1.x * camRight * boardSize +    gl_MultiTexCoord1.y * camUp * boardSize + gl_Vertex.xyz;gl_Position = gl_ModelViewProjectionMatrix * vec4(pos, 1.0);So, I'm really just wondering why this seems to be working, and if it's really working, or is it something that can go to hell if I keep using this.And also, why didn't any of the tutorials (that I read) suggest this? This must be somewhat more effective (or at least easier) to do.   
  as far as i know the modelviewmatrix is the camera   