Computer Engineering Department, Koç University
Office: Eng139
Phone: (0212)
338 1585
Email:
yyemez@ku.edu.tr
Lectures: Tuesday
& Thursday 11:3012:45, ENGB18
Office hours: Tue/Th 10:0011:00
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 objectoriented 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.
Textbook
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:
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.
TA: 
Emre Ünal 

Office:  ENG147 

Office Hours:  Mon 16:0017:00 Th 14:3015:30 

Email:  emunal@ku.edu.tr 
You may make an appointment with your TA via email if you need assistance.
Programming
assignments will be posted here. All code must be written in C/C++
using OpenGL and GLUT libraries.
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 or 3D modeling 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.
Students are expected to submit a project proposal (one page of description) at the latest before springbreak ends.
Some possible project topics will be proposed here.
Topic  Reading from textbook (E. Angel)  
Graphics Systems  Chapter 1 

Graphics Pipeline 
Chapter 1 

Programming with OpenGL (Part 1)  Chapter 2 

Programming with OpenGL (Part 2)  Chapter 2  code (simple square)  
Programming with OpenGL (Shaders) 
Chapter 2 

Programming with OpenGL (3D example)  code spinCube  code multipleVertexArrays 

Input and Interaction  Chapter 2  code (rotating cube revisited) code (draw small squares) code (picking)  
Transformations 
Chapter 3  code (rotating around fixed axes) 

Viewing and Projections 
Chapter 4  code (shadowing) 

Building 3D Models  
Shading 
Chapter 5 

OpenGL shading 
Chapter 5  code (per vertex Gouraud shading)  code (per fragment Phong shading)  
Texture mapping  Chapter 7.4  7.10  code (texture mapping)  
Pipeline Implementation  Chapter 6 

Hierarchical modeling & Scene Graphs 
Chapter 8 code (hierarchical modeling) 
OpenGL and GLUT
Mesa (a freeware version of OpenGL for linux and unix machines)
Resources
Java3D
General