School of Computer Science University of Seoul
How can we create a window? How can we handle the events? What kind of objects can we render? How can we define/describe/specify the objects? How can we specify the material/color of the objects? How can we transform the objects? How can we set the camera? How can we map what the camera sees onto the window?
Using GLUT library functions glutInit Initialize GLUT glutInitDisplayMode Set framebuffer glutInitWindowSize, glutInitWindowPosition and glutCreateWindow Create a window
Using GLUT library glut*Func() Register event handler Ex: glutDisplayFunc
Points Lines, line strips, line loops Triangles, quadrilaterals, polygons Triangle strips, triangle fans, quad strips Simple & convex polygons only More complex objects supported by GLU & GLUT
glBegin(…) ~ glEnd() Specify vertices using glVertex*()
glMaterial*() glColor*() Indexed color Current states
Specify the transformations as 4x4 matrices (affine transformations)affine transformations Current state Kept in the Modelview matrix stack Hierarchical transformation supported Special functions for transformations: glTranslate*(), glRotate*(), glScale*()
Represented as a 4x4 matrix Current state Kept in the projection matrix stack Special functions: glOrtho*(), glFrustum() More functions in GLU (ex: gluPerspective)
glViewport() Aspect ratio