Department of Computer Science
CS380: Computer Graphics (Spring 2014)

CS380: Computer Graphics (Spring 2014)

Instructor: Sung-eui Yoon

A picture taked at the last class around June, 2014

When and where: 4:00pm ~ 5:15pm on TTh, 111 at N1 building
First class: 4:00pm on Mar-4 (T) (please come to first class for more information )
Office Hours: right after class time or by appointment
  • DongHyuk Kim
  • SeHwan Kim
  • YeongBeom Lee
  •          * 2 or more lectures about OpenGL will be given by TAs at the practice class (see schedule)

    TA Office Hours: 6:30pm~8:00pm on Tue./Thur. 404 at N1 building

    Class Noah board
  • Previous Moodle or Noah boards: Spring 2012, Spring 2011, Spring 2010, Spring 2009, Spring 2008
  • Language in the board: The official language is English. If you want to use Korean, you can use it, but please also provide English-version of your questions.
  • Additional Materials: Intro. to Computer Graphics, Shaders using OpenGL, Modern OpenGL Programming (Link, this link is only available for accessing from IP address 143.248.*.*)
  • Prerequisites:
  • Basic knowledge of linear algebra
  • Basic programming skill, preferrably with C-like language (e.g., C, C++)
  • Textbook:
    Fundamentals of Computer Graphics, 1st or 2nd, and 3rd editions, P. Shirley et al., AK Peters
    Errata is available at the link.
    Third edition is available at the KAIST book store.
    Language in class: We will use English, but I'll use Korean if necessary.



  • Course overview
  • Lectures and tentative schedule
  • Additional reference materials
  • Line

    Course overview

    Fig. 1, Photo-realistic image generated by ray tracing method. (Image excerpted from PovRay homepage)

    In this course we will discuss various topics to create 2D images computationally generated from three dimensional model representations. Particularly, we will focus on the following topic:

  • Transformations and projections
  • Interaction
  • Rasterization
  • Hidden surface removal
  • Lighting, shadow, and shading
  • Model represetations (triangle meshes, curves, and surfaces)
  • Texture mapping
  • Ray tracing
  • Global illumination
  • Graphics hardware
  • What you will get at the end of the course:

  • Broad understanding on various topics related to computer graphics, geometric problems, and visualization
  • Programming skill and mathematical tools related to computer graphics and geometric problems.
  • Line

    Lecture schedule (subject to change)

  • Q&A file for all the lectures
  • # of lecture, date Topics and slides Notice
    Mar - 4 (Tue.) Overview on the course and course policy
    Mar - 6 (Thur.) Screen Space & World Space
    Mar - 11 (Tue.) Basic OpenGL Structure PA1-Spec.
    "Run away to Infinity" Criterion
    Mar - 12 (Wed.) 19:00 ~ 20:00 OpenGL Tutorial #1 (Room 201 in N1 bldg.) Slide
    Mar - 13 (Thur.) No class due to I3D attendance
    Mar - 18 (Tue.) No class due to I3D attendance
    Mar - 19 (Wed.) 19:00 ~ 20:00 OpenGL Tutorial #2 (Room 201 in N1 bldg.) Slide
    Mar - 20 (Thur.) 2D Imaging and Transformation Demo: ImagePlay
    Demo: Animation
    Mar - 25 (Tue.) 3D Transformation I
    Mar - 27 (Thur.) 3D Transformation II Quiz Assignment #1
    Apr - 1 (Tue.) Modeling Transformation PA2-Spec.
    Apr - 3 (Thur.) Viewing Transformation I Trackball codes
    Luxo Lamp codes
    Apr - 8 (Tue.) Viewing Transformation II PA3-Spec.
    PA3 reference EXE file
    Apr - 10 (Thur.) Interacting with a 3D World
    Apr - 15 (Tue.) Interacting with a 3D World PA4-Spec.
    PA4 reference EXE file
    Apr - 17 (Thur.) Clipping and Culling
    Apr - 22 (Tue.) Mid-term exam Sample mid-term exam
    Apr - 29 (Tue.) Triangle Rasterization
    May - 01 (Thur.) Triangle Rasterization
    May - 08 (Thur.) Triangle Rasterization
    May - 13 (Tue.) Illumination and Shading
    May - 15 (Thur.) Illumination and Shading PA5-Spec.
    PA5 reference EXE file
    May - 20 (Tue.) Texture Mapping Texture demo
    May - 22 (Thur.) Texture Mapping
    May - 27 (The.) Texture Mapping PA6-Spec.
    PA6 Reference EXE file
    May - 29 (Thur.) Texture Mapping
    Jun - 3 (Tue.) No class due to ICRA attendance
    June - 5 (Thur.)
    Ray tracing
    June - 10 (Tue.)
    Ray tracing
    Jun - 17 (Tue.) Final-term exam


    Additional reference materials and links

    CS380 homepage at spring of 2012
    CS380 homepage at spring of 2011
    CS480 homepage at spring of 2010
    CS480 homepage at spring of 2009
    CS480 homepage at spring of 2008


  • OpenGL.org: Has various documentation for OpenGL
  • OpenGL programming guide (the red book), Ver 1.1 or another site
  • OpenGL reference book (the blue book)
  • MSDN: A good reference for OpenGL functions
  • GLUT library for Win32
  • GLEW: OpenGL Extension Wrangler
  • GLUI: Simple OpenGL GUI Library
  • NeHe Productions: OpenGL Tutorials
  • Anton's OpenGL: OpenGL Tutorials(for OpenGL 4.x)
  • Useful information about computer graphics:

  • Real-time rendering resources
  • Paper search:

  • Google scholar
  • Tim Rowley's graphics paper collections
  • Ke-Sen Huang's graphics paper collections
  • Line

    Acknowledgements: The course materials are built upon previous efforts of whom organized computer graphics courses at Univ. of North Carolina at Chapel Hill. I'd like to thank all of them, particularly, Brandon LLoyd. Thanks! Line

    Copyright 2012. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the author.

    This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.