100 likes | 198 Views
Computer Graphics (fall 2009). School of Computer Science University of Seoul. OpenGL Program. 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?
E N D
Computer Graphics(fall 2009) School of Computer Science University of Seoul
OpenGL Program • 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?
How can we create a window? • Using GLUT library functions • glutInit • Initialize GLUT • glutInitDisplayMode • Set framebuffer • glutInitWindowSize, glutInitWindowPosition and glutCreateWindow • Create a window
How can we handle the events? • Using GLUT library • glut*Func() • Register event handler • Ex: glutDisplayFunc
What kind of objects can we render? • 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
How can we define / describe / specify the objects? • glBegin(…) ~ glEnd() • Specify vertices using glVertex*()
How can we specify the material/color of the objects? • glMaterial*() • glColor*() • Indexed color • Current states
How can we transform the objects? • Specify the transformations as 4x4 matrices (affine transformations) • Current state • Kept in the “Modelview” matrix stack • Hierarchical transformation supported • Special functions for transformations: glTranslate*(), glRotate*(), glScale*()
How can we set the camera? • Represented as a 4x4 matrix • Current state • Kept in the “projection” matrix stack • Special functions: glOrtho*(), glFrustum() • More functions in GLU (ex: gluPerspective)
How can we “map” what the camera sees onto the window? • glViewport() • Aspect ratio