Objectives
• Broad introduction to Computer Graphics– Software– Hardware– Applications
• Top-down approach• Shader-Based OpenGL
– OpenGL 3.1– Open GL ES 2.0– webGL
Prerequisites
• Good programming skills in C (or C++)
• Basic Data Structures– Linked lists– Arrays
• Geometry• Simple Linear Algebra
Resources
• Can run OpenGL on any system– Windows: check graphics card properties
for level of OpenGL supported– Linux– Mac: need extensions for 3.1 equivalence
• Get GLUT from web if needed– Provided on Macs– freeglut available on web
• Get GLEW from web• WebGL: most newer browsers
References
• www.opengl.org– Standards documents– Sample code
• The OpenGL Programmer’s Guide (the Redbook) 7th Edition
• The definitive reference• Mixes 3.0 and 3.1
• OpenGL Shading Language, 3rd Edition• OpenGL ES 2.0 Programming Guide
Outline
• Part 1: Introduction• Text: Chapter 1• Lectures: 2
– What is Computer Graphics?– Applications Areas– History– Image formation– Basic Architecture
Outline (cont)
• Part 2: Basic OpenGL• Text: Chapter 2• Lectures: 4
– Architecture– GLUT– Simple programs in two and three
dimensions– Basic shaders and GLSL– Interaction
Outline (cont)
• Part 3: Three-Dimensional Graphics• Text: Chapters 3-5• Lectures: 10
– Geometry– Transformations– Homogeneous Coordinates– Viewing– Lighting and Shading
Outline (cont)
• Part 4: Implementation• Text: Chapter 6• Lectures: 2
– Approaches (object vs image space)– Implementing the pipeline– Clipping– Line drawing– Polygon Fill– Display issues (color)
Outline (cont)
• Part 5: Discrete Methods• Text: Chapter 7• Lectures: 2
– Buffers– Pixel Maps– Texture Mapping– Compositing and Transparency
Outline (cont)
• Part 6: Hierarchy and Procedural Methods
• Text: Chapters 8-9• Lectures: 3-4• Tree Structured Models
– Traversal Methods– Scene Graphs– Particle Systems