Kinesia Online Course
Computer Graphics
Kinesia LLC, 2003

    1. Introduction
    2. Line Drawing
    3. Drawing Objects
    4. More Drawing Tools
    5. Normal Vectors and Polygonal Models of Surfaces
    6. Viewing I -- Affine Transformations
    7. Viewing II -- Projections
    8. Color
    9. Lighting
    10. Blending, antialiasing, fog ..
    11. Display Lists, Bitmaps and Images
    12. Texture Mapping
    13. Curves and Surfaces
    14. Games and SDL

    Introduction

    1. Applications of Computer Graphics
    2. Computer Graphics and Image Processing The fields of computer graphics and image procesing are blending together more each year.
    3. Computer Graphics -- create pictures and images, synthesize them on the basis of some description, or model in a computer
    4. Image Processing -- improve or alter images that were created elsewhere

    5. Art, Entertainment, and publishing
      movie production, animation, special effects
      computer games
      browsing on the World Wide Web
      slide, book, and magazine design

    6. Monitoring a Process


    7. Displaying Simulations
      e.g. virtual reality


    8. Computer-aided Design
      e.g. Computer-aided Architectural Design, Electrical Circuit Design

    9. Scientific Analysis and Visualization
      presenting scientific information in the right way let you gain new insights into the investigating process

    10. Digital shape sampling and processing (DSSP)
        DSSP describes the ability to use scanning hardware and processing software to digitally capture physical objects and automatically create accurate 3D models with associated structural properties for design, engineering, inspection and custom manufacturing. What digital signal processing (DSP) is to audio, DSSP is to 3D geometry.

        see http://www.geomagic.com/news/articles/dssppart1.php3


    11. What is OpenGL?
    12. Application programming interface ( API )
      a collection of routines that the programmer can call, along with a model of how the routines work together to produce graphics
      250 distinct commands ( about 200 core, 50 utility )  

    13. Device-independent graphics programming
      • produce nearly identical outputs in various hardware platforms
      • no user-input commands in core
      • no high-level commands for 3-D objects, one must build model from primitives -- points, lines, and polygons
      • OpenGL Utility Library ( GLU ) provides many modeling features,

    14. Basics of OpenGL Code
    15. Rendering -- the process by which a computer creates images from models.
    16. Models or objects are constructed from geometric primitives like points, lines, polylines, polygons which are defined by one or more vertices.
    17. Functions calls between glBegin() and glEnd()
    18. Example -- drawing 3 points
      	glBegin( GL_POINTS );
      	  glVertex2i( 100, 40 );
      	  glVertex2i( 120, 50 );
      	  glVertex2i( 140, 80 );
      	glEnd();
      	
      glVertex2i(...)
      gl
      gl
      library  
      Vertex
      basic
      command  
      2
      number of
      arguments  
      i
      type of
      arguments  

    19. Data Types:
      Suffix    Data TypeCorresponding  
      C type
      OpenGL Type  
      Deinfition
      b8-bit Integersigned charGLbyte
      s16-bit IntegershortGLshort
      i32-bit Integerint or longGLint, GLsizei
      f32-bit Floating-pointfloatGLfloat, GLclampf
      d64-bit IntegerdoubleGLdouble, GLclampd
      ub8-bit Unsigned Integerunsigned charGLubyte, GLboolean
      us16-bit Unsigned Integersigned shortGLushort
      ui32-bit Unsigned Integer    unsigned int or
      unsigned long
      GLuint, GLenum, GLbitfield
        glVertex2i ( 7, 11 );
        glVertex2f ( 7.0, 11.0 );
        are the same

    20. Number of Arguments: 2, 3, 4

    21. Formats:
      • 'v' indicates vector format
      • absence of 'v' indicates scalar format
      • Example: glColor3f( 1.0, 0.0, 0.0 );

        GLfloat color_array[] = {1.0, 0.0, 0.0};
        glColor3fv( color_array );

    22. The Event Loop
    23. OpenGL as a State Machine
    24. Demo Programs