title: some opengl and glm explanation
body: <p>Can somebody explain me what the following lines do ? </p>
  
  <pre><code>glm::mat4 Projection = glm::perspective(45.0f, 1.0f, 0.1f, 100.0f);
  angle = (GLfloat) (i % 360);
  glm::mat4 View = glm::mat4(1.);
  View = glm::translate(View, glm::vec3(0.f, 0.f, -5.0f));
  View = glm::rotate(View, angle * -1.0f, glm::vec3(1.f, 0.f, 0.f));
  View = glm::rotate(View, angle * 0.5f, glm::vec3(0.f, 1.f, 0.f));
  View = glm::rotate(View, angle * 0.5f, glm::vec3(0.f, 0.f, 1.f));
  glm::mat4 Model = glm::mat4(1.0);
  glm::mat4 MVP = Projection * View * Model;
  glUniformMatrix4fv(glGetUniformLocation(shaderprogram, "mvpmatrix"), 1, GL_FALSE, glm::value_ptr(MVP));
  </code></pre>
  
  <p>They translate units to pixels but I am not sure if that is what they do. Another question I have, more general one, is how do I represent a number , i.e sin(90) = 1, to 10 pixels, or 40 or any number? And how do I specify that (0,0) will be in the middle of the screen ? Are all the above taken care by glm library?</p>