title: Opengl: Viewport, clipping, matrixtmode confusion
body: <p>I've been studying Computer Graphics and I'm very confused about the role of the viewport, gluortho and when to use GL_MatrixMode and GL_Projection. 
  Here is a sample code I wrote that confuses me.</p>
  
  <pre><code>void init()
  {
      glClearColor(1.0,1.0,1.0,1.0);//Background Color of Viewport
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      glOrtho(-200,200,-200,200,-50,50);
      glMatrixMode(GL_MODELVIEW);
  }
  
  void wheel()
  {
      glClear(GL_COLOR_BUFFER_BIT);
      glColor3f(1,0.2,0.2);   
      glLoadIdentity();
      glViewport(0,0,200,200);
      glutSolidCube(100); 
      glFlush();
  }
  void main(int argc,char** argv)
  {
      glutInit(&amp;argc,argv);
      glutInitWindowSize(400,400);
      glutInitWindowPosition(400,400);//Position from the top left corner
      glutCreateWindow("Car");
      init();
  
      glutDisplayFunc(wheel);//Shape to draw
      glutMainLoop();
  }
  </code></pre>
  
  <p>When I change the Cube's size to 200 it disappears, why? Is that because it's larger than the z clipping?
  When I remove glMatrixMode(GL_MODELVIEW) the cube disappears why?
  If I don't flush at the end of the display function the cube disappears as well,why?
  When I make the viewport smaller the object get smaller does that mean the object coordinates are relative to the viewport and not the world coordinates?</p>