Kursusnavn (dansk):  Graphics Programming 
Kursusnavn (engelsk):  Graphics Programming 
Semester:  Forår 2018 
Udbydes under:  cand.it., spil (games) 
Omfang i ECTS:  7,50 
Kursussprog:  Engelsk 
Kursushjemmeside:  https://learnit.itu.dk 
Min. antal deltagere:  15 
Forventet antal deltagere:  0 
Maks. antal deltagere:  40 
Formelle forudsætninger:  Students must have experience with and be comfortable with programming, and be capable of independently implementing algorithms from descriptions in pseudocode. This corresponds to at least having passed an intermediatelevel programming course. The course will contain compulsory programming assignments.
High school level A (or equivalent) in mathematics is also required.
Moreover the student must always meet the admission requirements of the IT University. 
Læringsmål:  After the course, the student should be able to:
• Outline the software and hardware architecture of WebGL 
• Implement interactive graphics using JavaScript and WebGL
• Describe light/material interaction and how it relates to the Phong lighting model
• Program GLSL shaders for the Phong lighting model and other effects.
• Use linear algebra to perform the transformations between coordinate spaces in the graphics pipeline
• Implement applications with scene graphs, textures, shaders, and lights
• Explain the math and theory behind virtual cameras in computer graphics
• Describe advanced rendering techniques such as shadow maps, deferred shading, 
Fagligt indhold:  Changes to the course description can occur until semester start
This course provides a solid foundation in graphics programming at the implementation level. This is achieved by having the student implement the major components of a traditional projective rendering pipeline in JavaScript, such as:
 modeling and viewing transformations
 perspective projection
 shader programming
 Gouraud and Phong shading
 texture mapping and bump mapping
In addition, the student will be supervised in the acquisition of specialized knowledge in the graphicsprogramming area of their choosing. Example topics might include:
 parameterized surfaces
 physical simulation
 particle systems
 voxel rendering 
Læringsaktiviteter:  1) Eight weeks of foundational study in which text and online sources provide the background for indepth programming assignments.
2) Six weeks of supervised project work including introductions to advanced topics.
Besides traditional lectures the class will also include classbased discussions and small quizzes to make the students reflect about the topics.
Weekly exercises are not handed in, but their solutions are published after one week.
Both the weekly exercises and the final project are solved individually. 
Obligatoriske aktivititer:  Der er ingen obligatoriske aktiviteter. Vær venlig KUN at ændre denne tekst når der er obligatoriske aktiviteter./
There are no mandatory activities. Please, change this text ONLY when there are mandatory activities. 
Eksamensform og beskrivelse:  D22: Aflevering med mundtlig eksamen suppleret af aflevering., (7scale, external exam) Submission of an individual project including source code, binaries (if any) and a short report describing the implementation details and the theory used.
The exam will cover both the curriculum as well a project.
Oral exam: 20 min.

Litteratur udover forskningsartikler:  Interactive Computer Graphics with WebGL: Global Edition,
Edward Angel, Dave Shreiner
Published 2014, 7th edition
Pearson Education Limited / ISBN 9781292019345 
 