COMP410/510 - Computer Graphics

Spring 2019

Computer Engineering Department, Koç University

Dr. Yücel Yemez


Office: Eng-139   Phone: (0212) 338 1585
Lectures: Tuesday & Thursday 10:00-11:15,  ENG-120

Office hours: Tue/Th 11:30-12:30


Course Description

This course aims to introduce theoretical and practical aspects of 3D computer graphics, with an emphasis on applications programming. After the course, students will be able to design and implement basic 3D interactive graphics applications.Topics include graphics systems and models; geometric representations and transformations; graphics programming; input and interaction; viewing and projections; compositing and blending; illumination and color models; shading; texture mapping; animation; rendering and implementation; hierarchical and object-oriented modeling; scene graphs; 3D modeling.

Syllabus (in pdf)


Course Prerequisites

Ability to write application programs in C or C++. Familiarity with elementary data structures and matrix algebra.


No mandatory textbooks, but we will mostly be following the material of the following books. Students are expected to do the reading that will be assigned from these references:

    - E. Angel and D. Shreiner, Interactive Computer Graphics: A Top-Down Approach With Shader-Based OpenGL, 6th edition.

    - OpenGL Programming Guide, 8th edition, The Official Guide to Learning OpenGL, The Khronos OpenGL ARB Working Group.

Honor Code

All code and documentation handed in exams, assignments and projects must be your own work. In programming assignments, you can exchange ideas, but you should not ever share your code, even partly.




Emre Ünal

Office: ENG-147
Office Hours: Tue 12:00-13:00
Th   13:00-14:00

You may make an appointment with your TA via email if you need assistance.



Programming assignments

Programming assignments will be posted here. All code must be written in C/C++ using OpenGL and GLUT libraries. 

Assignment 1, due to March 5, Tuesday.
Assignment 2, due to April 2, Tuesday.
Assignment 3, due to May 13, Monday.



By the end of March, each student will have chosen a topic for his/her project. Projects can be either research oriented or applications programming oriented addressing one of the computer graphics problems/concepts/applications covered throughout the course. Depending on the chosen topic, students may be expected to do a literature survey on different techniques aiming at solving the specified problem and then to implement and test one of these techniques. A software implementation is mandatory, using C/C++/OpenGL or Java3D or similar graphics APIs.

Students are expected to submit a project proposal (one page of description) at the latest before spring-break ends.

Some possible project topics will be proposed here.



Lecture Notes


Topic Reading from textbook (E. Angel)

Graphics Systems Chapter 1

Graphics Pipeline Chapter 1
Programming with OpenGL (Part 1) Chapter 2 - example code (simple)    simple_win (for windows)

Programming with OpenGL (Part 2) Chapter 2

Programming with OpenGL (Shaders) Chapter 2 - example code (spinCube)

Programming with OpenGL (3D example)

Input and Interaction Chapter 2  -  code (spinCube revisited) with reshape and timer callbacks
code (drawSmallSquares
code (simpleMultipleVAOs) demonstrates how to use multiple vertex arrays

code (picking)

Building 3D Models

Chapter 3 - code  (spinCube_fixedAxes)

Viewing and Projections
Chapter 4 - code (shadowing)

Chapter 5

OpenGL Shading
Chapter 5 - code (Gouraud shading) - code (Phong shading)

Texture mapping Chapter 7.4 - 7.10  -  code (texture mapping)
Hierarchical modeling & Scene Graphs Chapter 8 - code (hierarchical modeling)




OpenGL and GLUT