University when there is an elective, to use OpenGL, very elementary content, the same introduction of the study of younger brother to apply
Recommended a learning Material Nehe OpenGL tutorial, very complete and have examples, speak very clearly. Better than some broken books.
can cooperate with the so-called "Red Book" to see, the Chinese wrote the book do not read, I have borrowed several of the contents are some mistakes.
Getting Started is enough.
English: http://nehe.gamedev.net/
English: http://www.yakergong.net/nehe/
Start to the chase:
Gltranslatef (x, y, z); Translate objects
Glrotatef (angle, x, Y, z), around developing vector rotation
Glscalef (x, Y, z), scaled Object 1.0 to original size
Glpushmatrix ();//Store the current view matrix
Glpopmatrix ();//Popup Last saved location
*glulookat (EYEX,EYEY,EYEZ,CENTERX,CENTERY,CENTERZ,UPX,UPY,UPZ); The position of the first three specified eyes, the middle three designated center point position, that is, the position of sight direction is usually 0, 0,0, the last three specifies which direction is above (use this to control the camera position.) If I'm wrong, I'm a beginner, so I think it's a good theory. But is the camera really in control? (recently learned that this function is encapsulated GLTRANSLATEF and GLROTATEF two functions are not recommended for use in the GL Standard library)
Example: glulookat ( -2.0f,5.0f,10.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f);
glpushmatrix ();
gltranslatef (0.0f,0.0f,3.0f);
glbegin (gl_quads); // draw a square
glvertex3f ( -1.0f, 1.0f, 0.0f); //left Upper
glvertex3f (1.0f, 1.0f, 0.0f); //Upper right
glvertex3f (1.0f,-1.0f, 0.0f); //left
glvertex3f ( -1.0f,- 1.0f, 0.0f); //right down
glend ();
glcolor3f (1.0f,0.0f,0.0f);
glpopmatrix ();
gltranslatef (0.0f,0.0f,-3.0f);
glbegin (gl_quads);
glvertex3f ( -1.0f, 1.0f, 0.0f), //upper left
glvertex3f (1.0f, 1.0f, 0.0f); //Upper right
glvertex3f (1.0f,-1.0f, 0.0f); //Bottom left
glvertex3f ( -1.0f,-1.0f, 0.0f); //right down
glend ();
Equivalent
Glulookat ( -2.0f,5.0f,10.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f);
Gltranslatef (0.0f,0.0f,3.0f);
Glbegin (gl_quads); Draw a square
glvertex3f ( -1.0f, 1.0f, 0.0f); Upper left
glvertex3f (1.0f, 1.0f, 0.0f); Top Right
glvertex3f (1.0f,-1.0f, 0.0f); Lower left
glvertex3f ( -1.0f,-1.0f, 0.0f); Lower right
Glend ();
glcolor3f (1.0f,0.0f,0.0f);
Glloadidentity ();
Glulookat ( -2.0f,5.0f,10.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f);
Gltranslatef (0.0f,0.0f,-3.0f);
Glbegin (gl_quads);
glvertex3f ( -1.0f, 1.0f, 0.0f); Upper left
glvertex3f (1.0f, 1.0f, 0.0f); Top Right
glvertex3f (1.0f,-1.0f, 0.0f); Lower left
glvertex3f ( -1.0f,-1.0f, 0.0f); Lower right
Glend ();
Reference a section of the tutorial:
When you call Glloadidentity (), you actually move the current point to the center of the screen, the x-axis from left to right, the y-axis from bottom to top, and the z-axis from inside to outside. The coordinate values for the center of the OpenGL screen are the 0.0f points on the x and Y axes. The center left coordinate value is negative and the right side is positive. Moving to the top of the screen is positive, and moving to the bottom of the screen is negative. Moving to the bottom of the screen is negative, and moving out of the screen is positive.
Gltranslatef (x, y, z) move along the X, y, and Z axes. According to the preceding order, the following code moves left 1.5 units along the x-axis, the y-axis does not move (0.0f), and finally moves into the screen 6.0f units.
Here is a free hand-drawn version of the OpenGL coordinate system, note that the z-axis is a vertical monitor outward.